Ansible: Compiling Wine 32 and 64 bit on Debian made easy

Francois Gouget fgouget at codeweavers.com
Sun Jul 1 02:04:49 CDT 2018


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.


-- 
Francois Gouget <fgouget at codeweavers.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine-ansible.tar.xz
Type: application/x-xz
Size: 5452 bytes
Desc: wine-ansible.tar.xz
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20180701/2d75c1cd/attachment.xz>


More information about the wine-devel mailing list