Debian's multi-arch support is great... in theory. In practice a lot of packages don't support multi-arch or have broken multi-arch support which makes it hard to compile the 32 and 64 bit versions of Wine.
Since this is something the TestBot needs to do and it would be nice if anyone could replicate the TestBot infrastructure I wrote Ansible playbooks. One of those configures a Debian 9 system so it has all the 32 and 64 bit dependencies needed to compile Wine (except for GStreamer due to extensive breakage, and vkd3d which is too new).
I don't know if that would help people using Ubuntu or other versions of Debian but here are the playbooks in case anyone wants to try them.
Here's how one would use the attached tar file to configure their own system:
* Unpack the tar file.
* Install ansible on your machine.
* Tell ansible to set up you machine.
cd ansible mkdir inventories/devel vi inventories/devel/inventory Write the following
[unix-winebuild] localhost
[my_ansible] localhost
[my_ansible:vars] ansible_become=yes
* Then either (if I remember correctly) run the following command line as root: ./playbooks/unix-winebuild.yml
Or if you can sudo root you could also run it as follows: ./playbooks/unix-winebuild.yml --ask-become-pass
And of course, since this is ansible, if you have your credentials set correctly you can apply this to any number of remote host with just that same command. Also note that you only need to install ansible on the machine you will use to set up your remote hosts or virtual machines.
Here's some more details about what you'll find in the tar file:
Playbooks: * unix-winebuild: To set up the system to compile the 32 and 64 bit versions of Wine. This installs all the reauired development packages, works around the development packages that cannot be installed because of multi-arch issues, etc. So this is the playbook you want! * unix-winepe: Configures a host to build Wine PE binaries.
Roles: * setup_multiarch: To enable the amd64 and i386 architectures. * fix_pymultiarch: To fix Debian packages that have broken prerm or postinst scripts that totally break the packaging system once they are installed for more than one architecture. winebuild needs it for gir1.2-ibus-1.0. * apt_multiarch: A multiarch aware role for installing packages. * solink: To create missing .so symbolic links for development packages. * apt_bad_dev: To install development packages and workaround issues for those that are not multiarch-compatible. * winebuild: To set up the system to compile the 32 and 64 bit versions of Wine. * winebuildtools: Configures a host to be able to build Wine's native tools. * winepe: Configures a host to build Wine PE binaries.