Phoenicis Winebuild is a python library and a command line tool that compiles winehq automatically. It is the designated successor of PlayOnLinux Winebuild service.
We also provide pre-built binaries for Linux and macOS: https://www.playonlinux.com/wine/binaries/phoenicis/
Phoenicis Winebuild can:
- run on any OS (Linux and Mac OS)
- build wine for any target OS (see prerequisites).
- Python 3
- Docker <<<<<<< HEAD
- docker-py =======
docker-py
3b409a4892875922bc993ca8d2f9cf9d13bbc649
pip install docker
Ensure that your current user belongs to the docker group. You might need to restart your session
- Install Docker
- Install homebrew
brew install Python3
pip3 install docker
- Download XCode 9.4.1
- Follow the SDK Packing section
- Copy
MacOSX10.13.sdk.tar.xz
into darwin/SDK directory
After setup, run examples/interactive_builder.py
PYTHONPATH="$PWD" python examples/interactive_builder.py
After setup, run examples/interactive_builder.py
PYTHONPATH="$PWD" python3 examples/interactive_builder.py
An Environment is a pre-installed operating system where wine can be built. It corresponds to a docker image. We support currently two environment:
- linux-x86-wine is a x86 environment containing all tools required to build wine for Linux
- darwin-x86-wine is a x86 environment containing all tools required to cross-compile wine for MacOS
A container is the instanciation of an environment. It corresponds to a docker container. Thanks to containers, you can run multiple compilation inside a given environment at the same time
A Builder is the components that builds wine. A builder needs a container to operate. We currently support one kind of builder :
- WineBuilder downloads the source of wine into
/root/wine-git
and runs a script
A script can be run inside a context initiated by a builder. We have two scripts:
- builder_darwin_x86_wine
- builder_linux_x86_wine
After setup, run run_web_server.py
- Go to the endpoint
/environments
(http://localhost:5000/environments) - Grab the docker name of a supported environment (example: phoenicis/winebuild/linux-x86:wine)
- Create an environment creation task
curl -d '{"type": "EnvironmentCreationTask", "argument": "phoenicis/winebuild/linux-x86:wine"}' -H "Content-Type: application/json" -X POST http://localhost:5000/tasks
- Go to the endpoint
/tasks
to track the task creation process: http://127.0.0.1:5000/tasks. You should get a response like this one:
[{
BuilderStageReaderTest.py"argument": {
"docker_name": "phoenicis/winebuild/linux-x86:wine_osxcross"
},
"description": "Environment creation: phoenicis/winebuild/linux-x86:wine_osxcross",
"end_date": null,
"id": "698ed9bd-f0af-4ed4-9063-d058fb7ec391",
"last_update_date": "Sun, 21 Oct 2018 14:22:51 GMT",
"progress": 94,
"running": true,
"start_date": "Sun, 21 Oct 2018 14:18:39 GMT",
"type": "EnvironmentCreationTask"
}]
Make a POST request to the /tasks
endpoint:
curl -d '{"type": "PhoenicisWinePackageCreationTask", "argument": {"os": "darwin", "distribution": "upstream", "arch": "x86", "version": "wine-3.0.3"}}' -H "Content-Type: application/json" -X POST http://localhost:5000/tasks
You have two example python files (example_linux.py
and example_darwin.py
). If you need to tweak your build (select the version, use custom script, ...) you'll probably need to use the python API (See Key Concepts)
#!/usr/bin/env python
from packagers.PhoenicisWinePackageCreator import PhoenicisWinePackageCreator
builder = PhoenicisWinePackageCreator()
## Builds wine 4.0 x86 for darwin aka macOS
builder.build("upstream", "wine-4.0", "darwin", "x86")
Try to export this environment variable:
export FREETYPE_PROPERTIES="truetype:interpreter-version=35"