How I'm Earning My Beer, part 1

2 October 2015 by Caron WillsCaron Wills
St. Stephen's CathedralI had the pleasure of attending WineConf 2015 in Vienna, Austria. The weather was better than I could have asked for, the food was excellent. The company of thirty five other contributors to Wine was encouraging and appreciated. It's the first WineConf in years and it was well overdue.

Photo credit: Marcus Meissner, WineConf 2015 Everyone's reports are trickling in and we're all scurrying to do the work asked of us to help move the project along. The coming weeks and months should reveal the community is more driven than ever. We've re-united with those who had trickled to Wine-Staging and there's a flurry of updates going to wiki pages, blogs, and articles all around. Not to mention the process changes, thinking around bugs and forums, and so much more.

My little piece has to do with what we are called to action over every time we meet.

Every WineConf, we fret over this page and it's various friends:

Wine's Conformance Test Results Page
Ideally, we would have every single test passing on each version of Windows that's running our tests AND we would have it passing on Linux and Mac systems. As you can see, we're a little remiss in Mac test results in the last two months. Wine's test suite isn't (wasn't) running successfully enough on any Mac to report its results.

This year's idea is that next year we *might* insist that before anyone can have a beer on Friday night, they have to fix one test on this page. Granted, I'm a little early and arguably submitting more tests to the page is not fixing tests themselves... but it is making it so everyone else has something to fix. Hopefully that's where I'm earning my beer... and I'm not even sure I want a beer, to be truthful. Maybe I want a nice glass of Wine, seriously.

It is not to say that I'm going it alone, getting Wine's tests to run on any system means that tests have to be written well by the Wine community. It means that I have to have a way to install dependencies on OS X. And, it means I drag my peers through reviewing the problems I'm seeing even if they are caused by my own human error.

For the Wine community, it means OS X results that run in some reliable fashion. It means a contribution in a different form. It's something I'm proud of because the task isn't all that easy. If you're looking for a way to contribute to Open Source, understand that contributions come in many forms. They come from community support, testing, spreading the word, development, and so much more. After I release this blog post into the world, the absolute best thing I can do is go back to WineHQ and ensure that my method of getting Wine's Conformance Tests to run is logged on one of the many wiki pages. With that, I will have come full circle and made a decent suggestion on how others can help too.



Wine's Conformance Tests on my fleet of Macs

First, install Xcode. This is most easily done through Apple's App store. Once you have it installed, launch Xcode to agree to the license or open a terminal and give the command:

sudo xcodebuild -license
XQuartz Logo
Next, install XQuartz
.

XQuartz is not actually needed to run Wine's Conformance Tests on OS X if you're only interested in the Mac Driver. It is a pre-requisite for Homebrew and that's the method I chose to get Wine's dependencies on my Mac.

Version 2.7.7 comes as a typical .dmg file and can easily be installed. No worries, no fuss, this piece was easy!

Now that those pieces are done, it's time to get Wine's dependencies. There are various routes to do this that range from doing it all yourself to having it fully automated.


Then, open up a terminal and install Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Verify that all dependencies for Homebrew are met:

brew doctor

WineHQHomebrew is ready to install Wine. If all has gone well, Wine will install and run with Homebrew and can be used as most Linux users would expect. However, I only want the dependencies for Wine, so I told Homebrew to install the dependencies for the development branch of Wine:

brew install --only-dependencies --devel wine

Next, teach the system how to find the FreeType font library. If Wine or the Conformance tests ran now, the error message would likely be:

Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5.

This is because Wine can't find the FreeType library, not because it isn't there. For my system, I made a permanent setting with the fallback libraries.
* Note that a temporary export is enough to run one time.

echo export DYLD_FALLBACK_LIBRARY_PATH=/usr/X11/lib:/usr/lib >> ~/.bash_profile

Load the new shell configuration in terminal:

source ~/.bash_profile

Wine Test Daily is the newest way to run WineTest. It's written by Francois Gouget, one of many esteemed developers contributing to the Wine Project, and it truly makes life with WineTest easy. It keeps a clean version of Wine within it's folders and if it is setup with launchd or cron or any other automator, it will run every day, faithfully.
Then, go get it:

git clone https://github.com/fgouget/wt-daily.git

Create your configuration file:

cd wt-daily
nano wt-daily.config

In this file set the following environment variables:

email="your email address here"
tag="a-tag"
tagmac="a-different-tag"
desc="A description of your system for Wine developers"
descmac="A description of your system for Wine developers"
shutdown="suspend"

Then run wt-daily when your system has spare cycles:

./wt-daily

Congratulations, WineTest is running! Getting it to report results is discussed in Part 2.

About Caron Wills
Caron has been working in the computer software industry for over 10 years. She joined CodeWeavers in 2008 and became the Quality Assurance Manager for CodeWeavers in 2009. Contact Caron at caron@codeweavers.com and learn more about her professional accomplishments on LinkedIn.

About Caron Wills

Caron has been working in the computer software industry for over 10 years. She joined
CodeWeavers in 2008 and became the Quality Assurance Manager for CodeWeavers in 2009. Contact Caron at caron@codeweavers.com and learn more about her professional accomplishments on LinkedIn.

About CodeWeavers
Founded in 1996 as a general software consultancy, CodeWeavers focuses on the development of Wine – the core technology found in all of its CrossOver products. The company's goal is to bring expanded market opportunities for Windows software developers by making it easier, faster and more painless to port Windows software to Mac and Linux. CodeWeavers is recognized as a leader in open-source Windows porting technology, and maintains development offices in Minnesota, the United Kingdom and elsewhere around the world. The company is privately held.

The following comments are owned by whoever posted them. We are not responsible for them in any way.


New Comment

Please Wait...
eyJjYXJ0IjowLCJ0enMiOi01LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNTM4NzY3MzM4fQ==