Monday, January 4, 2016

WineHQ Wine Mac OS X binary downlad packages now available

We here at wine-staging are happy to announce an initial version of our Mac OS X >= 10.8 Wine builds. So far the packages have not yet received that much testing, so please give them a try, and report any issues you encounter.

The packages are available at: https://dl.winehq.org/wine-builds/macosx (Some mirrors don't show all files yet, just append random arguments to the url like ?whereismypackage to trick the cache)

For inexperienced users, it is recommended to install Wine using the *.pkg files. Just double-click on the package, and the usual Mac OS X installer wizard should open. As pointed out by Austin, I am not a registered Apple Developer and therefore the packages aren't signed. This will result in an error if you configured gate keeper to block unsigned packages. The installation itself should be self-explaining, so I will not go into too much detail here. It is possible to install the package either for all users (needs administrator privileges), or just for your current user. If you haven't installed XQuartz >= 2.7.7 yet (our package supports the x11drv as well as the macdrv), the installer will complain. Just install the missing dependency, and restart the installation, if this is the case.

After the installation is finished, you should find an entry "Wine Staging" or "Wine Devel" in your Launchpad. By clicking on it, a new Terminal window opens with a short introduction into some important wine commands. You can now directly start wine/winecfg/... from the Terminal, as the PATH variable is set correctly. For user convenience, the package also associates itself with all *.exe files, which means you can run windows executable s just by double-clicking on them. This might not work for all executable s though, since OS X doesn't seem to pass the current working directory to the "Open With" handler.

Some experienced users on the other hand might prefer a raw wine version without those gimmicks, so we also provide tarball archives. They basically contain the same files (except packaging related stuff), and can be unpacked in any directory. There is no need to set DYLD_* environment variables, all paths are relative, so it should work as long as the directory structure is preserved (you can skip the /usr prefix though using --strip-components 1). Also make sure to install XQuartz >= 2.7.7 in this case.

For those who are wondering, here a couple more technical aspects:

-------- Dependencies --------

The following dependencies are shipped as precompiled *.dylib-libraries directly with Wine:

    * libjpeg-turbo
    * liblcms2
    * liblzma
    * libopenal-soft
    * libtiff
    * libxml2
    * libxslt
    * [libtxc-dxtn-s2tc]
      This is the patent free implementation of dxtn as used by many
      linux distros. Only included in Wine Staging.

-------- Scripts --------

You can find all scripts and build files at https://github.com/wine-compholio/wine-packaging/tree/master/macosx Those files allow you to build the packages on Debian Jessie as host system, starting from a patched clang compiler (to support ms_hook_prologue), tools necessary to create OS X packages, cross compilation of the Wine build dependencies and finally cross compiles Wine itself. You only have to provide MacOSX10.8.sdk.tar.xz and xquartz-2.7.7.tar.xz, everything else is built from source. However, the generated scripts are meant to be run inside our build VMs, so realistically speaking it requires some effort to setup such a system and is not suitable for an average user.

------------------------

There are also some features I am planning to implement in the future (depending on how much time I have):

-------- Auto updater --------

There is no common system to provide automatic updates for packages besides the Store, so I think it would be good to come up with some solution for this problem. Especially if the user installed the package into his home directory, he could easily update it without entering a password. I don't have much knowledge about objective-c or cocoa, so if someone else wants to implement this, I am more then glad to add it as an optional feature to the installer.

-------- Desktop integration --------

So far Wine does not create desktop entries that are shown in Launchpad, but instead creates useless entries at ~/.local/share/applications/. I think it shouldn't be too hard to dynamically create a proper entry at ~/Applications/ using a wrapper like I did for the main wine executable.

-------- Package signing? --------

This is basically something I could fix in 5 minutes, but I don't feel like paying 99$/year if I basically don't use Mac OS X myself.

------------------------

The Wine Devel and Wine Staging packages can be installed in parallel. When started correctly (using Launchpad or the Dock), they will work no matter which other Wine versions are on the same system. Technically this is implemented by prepending the $PATH environment variable with the installation directory of our Wine version.

Please note that it is very important here that users use the Launcher, typing "wine" in a regular terminal will either not work, or run a Wine version installed via other sources like Macports/Fink/Homebrew. At least Homebrew installs to /usr/local, which means that "wine" typed in a regular terminal has a different meaning than "wine" typed in a terminal spawned by clicking on "Wine Devel" or "Wine Staging". Only in the second case, the WineHQ packages will be used.

In order to start WineHQ from a terminal without going through our Launcher, the user either has to:

* Prepend $PATH himself with the installation directory. For an installation into the home directory, the following command should work:

export PATH="$HOME/Applications/Wine Devel.app/Contents/Resources/wine/bin:$PATH"

export PATH="$HOME/Applications/Wine Staging.app/Contents/Resources/wine/bin:$PATH"

* Use the Mac OS X specific "open" command, which will search for the executable by program name.

open -a "Wine Devel" program.exe
open -a "Wine Devel" --args winecfg
open -a "Wine Staging" program.exe
[...]

The only (non-critical) "conflict" is that the Devel and Staging packages (and also Play On Mac) register themselves for .exe files. The first installed application is then the default application to open .exe files. But like on all other systems, you can do a right click on such a file and use the "Open With" menu entry to select the application you want to use. The user can also change the default application for the .exe extension, if they want to always use Wine Devel or Wine Staging.

Regards,
Michael
The newest CodeWeavers CrossOver coupon promo codes are
( WEAVEME ) and ( CRIMBO25 ) save 25% off CrossOver Mac or Linux today!

1 comment:

Unknown said...

I've had a bumpy road trying to get wine installed with your pkg installer to run comskip in KMTTG. I was beside myself trying to figure out why all the posts I could find about how to set path for Wine would not work until I found this page. Now I can get comskip to run by using the "open -a "Wine Devel" comskip.exe" thing but I can't get it to work in a script file to plug into KMTTG.