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.
On 1 July 2018 at 11:34, Francois Gouget fgouget@codeweavers.com wrote:
32 and 64 bit dependencies needed to compile Wine (except for GStreamer due to extensive breakage, and vkd3d which is too new).
This is only tangentially related, but since vkd3d is something we develop ourselves, and I think would eventually like to have TestBot support for, would it make sense to just build vkd3d from source?
On Tue, 3 Jul 2018, Henri Verbeet wrote:
On 1 July 2018 at 11:34, Francois Gouget fgouget@codeweavers.com wrote:
32 and 64 bit dependencies needed to compile Wine (except for GStreamer due to extensive breakage, and vkd3d which is too new).
This is only tangentially related, but since vkd3d is something we develop ourselves, and I think would eventually like to have TestBot support for, would it make sense to just build vkd3d from source?
So the vkd3d packages are missing from Debian 9. However I could install the current packages from Debian Testing. Would that be ok or would you prefer to have them be updated more regularly which would imply building from source?
On 6 July 2018 at 08:32, Francois Gouget fgouget@free.fr wrote:
On Tue, 3 Jul 2018, Henri Verbeet wrote:
This is only tangentially related, but since vkd3d is something we develop ourselves, and I think would eventually like to have TestBot support for, would it make sense to just build vkd3d from source?
So the vkd3d packages are missing from Debian 9. However I could install the current packages from Debian Testing. Would that be ok or would you prefer to have them be updated more regularly which would imply building from source?
For the time being using the testing packages is probably fine, but I was hoping that in the longer term we'd have TestBot support for vkd3d as well, in which case we'd already be building from source anyway.
Hi all
On 7/1/18 9:04 AM, Francois Gouget wrote:
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.
On WineConf I told some people about a way to build a Debian package which depends on Wine's build-dependencies. I don't know if this helps for ansible here (but I hope to give it a good look out of general interest soon), or is just helpful generally to install and manage Wine's build-dependencies:
One way to install build-dependencies on Debian is "mk-build-deps" from the package "devscripts".
If you are happy with official Debian build-dependencies just do:
$ mk-build-deps wine $ sudo apt install ./wine-build-deps_3.0.2-1_amd64.deb
But you may also do this with any customized debian/control file. E.g.:
## Get Debian's control.in (or just clone our complete repo) $ wget https://salsa.debian.org/wine-team/wine/raw/master/debian/control.in
## Create valid control file: $ sed "s/VERSION//g;s/DEBSUFFIX//g" control.in > control
[ Then edit it to your needs. ]
## Create and install $ mk-build-deps control $ sudo apt install ./wine-build-deps_1.0_amd64.deb
Hope this helps. We may put that to the Wiki, including an example for "edit to your needs", if this helpful for you (my needs are different, so I really don't know).
Greets jre