Building wine 1.9.20

Damjan Jovanovic damjan.jov at gmail.com
Sat Mar 28 01:06:05 CDT 2020


Hi

Some time ago, I wrote a tool that could build Wine binaries for every Git
commit, then commit them into a separate Git repository, so that for a
bisection test, you only binary search the pre-built binaries and run them
directly, no building source (ie. bisect-run-bisect-run, no building).

I've been trying to update this tool lately, and you're right, old versions
of Wine often don't build. What I've had to do is "reverse regression test"
for the build regressions (
https://wiki.winehq.org/Reverse_Regression_Testing) and then backport those
commits to older versions. So far I can get Wine to compile as far back as
5 February 2014, which was just before version 1.7.12. Sadly the build
system was completely rewritten in January 2014, making many of the commits
unable to backport further; I would like to get back to 2008. On my
previous attempt I succeeded in building all (buildable) binary versions
from Wine 1.0 in June 2008, to October 2011, about 35000 binary versions in
total, and successfully used it for rapid regression testing in that
timeframe.

The long list of commits I had to backport to build up to 5 February 2014
(some of which are for FreeBSD) is as follows, in the order they have to be
applied. Note that you only apply commits that come AFTER the commit you're
building, not the ones from before (ie. "git rev-list --max-count=1
HEAD..<commit>" produces some output instead of silently exiting). My tool
also automates that.

        // makedep: Generate rules for bitmap fonts based on pragmas in the
.sfd file.
        // Wed Feb 5 12:15:07 2014 +0100
        new Patch("1cccb5594a5adab129bb2c10db796db14199936b"),

        // makedep: Add support for specifying an object directory
different from the current directory.
        // Thu Apr 10 10:03:03 2014 +0200
        new Patch("dcf6060ab8aab4724ada508db295a85634ca51d4"),

        // makedep: Pass a makefile pointer to all internal functions.
        // Thu Apr 10 13:41:23 2014 +0200
        new Patch("f9ddafa807b95f743764dea0f3bddf4acf71dcbc"),

        // configure: Always build wine.inf even if we don't install it.
        // Thu Jul 3 21:20:38 2014 +0200
        new Patch("3bbbb6d5a73d8c45329d72f1f980377ede79f4c8"),

        // makefiles: Do not run update-desktop-database on make
install/uninstall.
        // Sun May 31 08:03:54 2015 +0200
        new Patch("ffabfd492ffc4bdca3ca0deaead238670e6fdcaf"),

        // secur32: Use gnutls_cipher_get_block_size to get cupher block
size.
        // Tue Jun 16 13:46:46 2015 +0200
        new Patch("dedbd1883611b1c72abeb05d9f93cd5ac8af2e90"),

        // secur32: Fixed compilation on with gnutls.
        // Wed Jun 17 13:01:14 2015 +0200
        new Patch("72747526b1242f436db9e68d319c37484ce02109"),

        // secur32: Fixed compilation on very old gnutls versions.
        // Thu Jun 18 13:06:08 2015 +0200
        new Patch("cae3f98c6938663aab248f6551e9cc7cfbc1ce09"),

        // makefiles: Move wine.desktop to the loader directory.
        // Mon Oct 26 23:03:08 2015 +0900
        new Patch("2207a8907ca71792ab27acf9bb61efa80431ea84"),

        // makefiles: Generate rules for building tool binaries.
        // Tue Oct 27 12:13:26 2015 +0900
        new Patch("7626728b562fae32f6d0f0c5d01589e5861f09dd"),

        // makefiles: Automatically add RPATH support for programs that use
libwine.
        // Wed Oct 28 10:56:21 2015 +0900
        new Patch("a1515c68d4d4b4334f44b098debba2548a16ca38"),

        // secur32: Provide a static declaration for
gnutls_cipher_get_block_size.
        // Thu Jun 16 00:21:13 2016 -0500
        new Patch("bf5ac531a030bce9e798ab66bc53e84a65ca8fdb"),

        // winspool.drv: Include <cups/ppd.h> to fix building against the
macOS 10.12 SDK.
        // Mon Jun 27 15:34:07 2016 -0500
        new Patch("10065d2acd0a9e1e852a8151c95569b99d1b3294"),

        // fonts: Increase the Em size to fix a build failure with freetype
2.8.1.
        // Thu Sep 28 00:23:42 2017 +0200
        new Patch("40166848a7944383a4cfdaac9b18bd03fbb2b4f9"),

        // configure: Link wineserver to libinotify if necessary.
        // Sat Apr 20 15:14:53 2019 +0200
        new Patch("07c2e8581a2745725cd7ce4282eedb9a8084a1e4"),

        // iphlpapi: Account for structs inpcb and tcpcb being unavailable
for userland in FreeBSD 12.
        // Sat Aug 17 10:32:31 2019 +0200
        new Patch("424e1e71cac268cc2db8483d84474f88d61b67d1")

Maybe I should also send you my tool in a form that just applies the
relevant patches?

Good luck
Damjan



On Sat, Mar 28, 2020 at 12:44 AM Bronze Alibi <bronze.alibi at startmail.com>
wrote:

> Hello everybody,
>
>
>
>
> This is my first time trying to figure out if something is a regression ,
> so I need to build an older version of wine.
>
> The application involved was reported to work in the past on wine 1.9.20.
> As that was also an older version of the application it is not clear
> weather a change in wine or a change in the application broke support, so I
> want to run the current version on wine 1.9.20.
>
>
>
>
> Sadly that build fails. The part from where the red text started appearing
> is attached below.
>
> The system is a current installation of Archlinux.
>
> Can anyone help me out here with what needs to be adjusted here.
>
> This is my first time posting to this list, so if this is the wrong place
> or information is missing, please tell and I will adjust.
>
>
>
>
> (following https://wiki.winehq.org/Regression_Testing#Preliminary_notes I
> went back to the winehq-packaged wine 2.0.4 version to test on debian
> buster, but that seems not far back enough sadly.)
>
>
>
>
> Thanks!
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200328/f22d334f/attachment-0001.htm>


More information about the wine-devel mailing list