Skip to content

Releases: Benehiko/protium

protium v0.5.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 06:28
v0.5.0
de745fe

An Xbox controller rumbles, over USB and over Bluetooth.

Changed

  • The runtime is now wine-11.0-cx26.3-p6, built with the two rumble
    patches below. protium runtime install installs it beside the runtime you
    have and does not make it the default. With no default set, every command
    then stops and asks you to pick a runtime; with -p4 or older set as the
    default, protium keeps using that one, without rumble. Either way, switch
    with protium use --runtime wine-11.0-cx26.3-p6. A prefix moves between
    -p2, -p4 and -p6 freely: the new patches change only how controllers
    are driven.

Fixed

  • An Xbox controller on USB did not rumble. The controller Wine decodes
    from macOS's raw Xbox protocol (GIP) had no rumble, so a game was told there
    was none. patches/0005 sends the controller GIP's rumble command. Apple's
    driver accepts it only as output report 0x01, and passes the bytes to the
    controller unchanged.
  • An Xbox controller over Bluetooth did not rumble. Over Bluetooth the
    controller takes rumble through its own report, 0x03, which Wine's XInput
    did not look for. patches/0006 finds that report and sends each rumble
    request through it.

Both were felt on an Xbox Wireless Controller (045e:0b12 on USB,
045e:0b13 over Bluetooth) through XInput's XInputSetState. A game driving
the rumble, and DirectInput force feedback over Bluetooth, have not been
tried yet. See docs/controllers.md.


What is in this download

For Apple silicon Macs:

  • protium-v0.5.0-macos-aarch64.tar.gz: the protium binary and its
    licence texts. This is the one you download.
  • wine-…-macos-x86_64.tar.gz: the Wine runtime this release was built with.
    You need not download it yourself: protium runtime install fetches it and
    installs it only if its SHA-256 matches the one compiled into protium. It
    loads on macOS 15 and later. It was checked on macOS 15 by the workflow that
    built it, and played on macOS 26. Its licence texts are inside it, in
    licenses/.
  • The source archives that runtime was built from: CrossOver's published
    sources, which carry Wine and the libraries it links in, and FreeType,
    GnuTLS, Nettle and GMP.

It does not hold D3DMetal, which comes from Apple's Game Porting Toolkit
and which you download yourself (see the README); protium d3dmetal install
then installs it into the runtime. Apple's D3DMetal 4.0b2 needs macOS 26.4 or
later. Wine Mono, Wine's .NET runtime, is fetched by
protium prefix new when it creates a prefix.

This software is based in part on the work of the Independent JPEG Group.

Verifying this download

Every release is signed by the GitHub Actions workflow that built it. The
signature covers SHA256SUMS, which pins the archive by hash, and travels
beside it as SHA256SUMS.sigstore.json. Download the archive, SHA256SUMS and
SHA256SUMS.sigstore.json into one directory, then run these two steps from
it, in this order.

1. Check the signature over the checksums. Install
cosign
(brew install cosign), then:

cosign verify-blob SHA256SUMS \
  --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Benehiko/protium/.github/workflows/release.yml@refs/tags/v0.5.0 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

It must print Verified OK. Anything else means SHA256SUMS was not signed by
the release workflow for this tag: stop, and do not run anything from the
download.

The identity is the workflow file in this repository at this tag, and the
issuer is GitHub Actions. There is no person's key or account behind it, and
the signature is recorded in Sigstore's public transparency log.

2. Check the archive against the checksums.

shasum -a 256 -c --ignore-missing SHA256SUMS

The archive must be listed as OK. SHA256SUMS also lists the runtime and its
sources, and --ignore-missing skips the ones you did not download.

Step 1 is what makes step 2 mean anything: checksums downloaded from the same
page as the archive only prove the two agree, not that either came from us.

Installing

Once both checks pass:

tar -xzf protium-v0.5.0-macos-aarch64.tar.gz
sudo install -m 755 protium-v0.5.0-macos-aarch64/protium /usr/local/bin/protium
protium version

Any directory on your PATH will do in place of /usr/local/bin; without
sudo, ~/.local/bin works if it is on your PATH.

Then let protium tell you what is left to do:

protium runtime install   # the Wine this release was built with, and Rosetta 2
protium d3dmetal install  # Apple's D3DMetal, from the toolkit DMG in ~/Downloads
protium status            # where the installation is, and the next step

protium d3dmetal install also takes a path: the Game Porting Toolkit .dmg,
the evaluation environment inside it, either one mounted, or its redist/lib
folder. It opens a disk image in your terminal, where hdiutil asks you to
accept Apple's licence.

To build the same Wine on your Mac instead, run protium doctor build and then
protium build in place of protium runtime install.

If you downloaded the runtime archive from this page yourself, give its path:
protium runtime install ~/Downloads/wine-…-macos-x86_64.tar.gz. It is checked
against the same SHA-256, and the installed files are not quarantined. Do not
unpack it in Finder and copy the folder into place: that skips the check, and
Archive Utility passes the download's quarantine on to every file it extracts.

The README covers where to get Apple's download, and protium shell-init
prints the line that makes prefixes automatic in every new terminal.

"cannot be opened" or "Apple could not verify"

protium is signed ad hoc, not with an Apple Developer ID, and is not
notarized. A web browser marks what it downloads as quarantined, and macOS
refuses to run a quarantined binary it cannot trace to a registered developer.
The message reads "protium" cannot be opened because the developer cannot be
verified
, or, on macOS 15 and later, Apple could not verify "protium" is free
of malware
.

Verify the download first (above), then clear the quarantine from the
unpacked directory, before installing:

tar -xzf protium-v0.5.0-macos-aarch64.tar.gz
xattr -dr com.apple.quarantine protium-v0.5.0-macos-aarch64

Or, after the first refusal: System Settings → Privacy & Security → scroll to
the message about protium → Open Anyway.

Downloads made with curl or gh release download are not quarantined and
need neither step.

protium v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 21:11
v0.4.0
991691c

Game controllers reach Windows games, over Bluetooth and USB.

Changed

  • The runtime is now wine-11.0-cx26.3-p4, built with the two controller
    patches below. protium runtime install installs it beside the
    wine-11.0-cx26.3-p2 you have and does not make it the default. With no
    default set, every command then stops and asks you to pick a runtime; with
    -p2 set as the default, protium keeps using -p2, without the controller
    fixes. Either way, switch with
    protium use --runtime wine-11.0-cx26.3-p4. A prefix moves between -p2
    and -p4 freely: the new patches change only how controllers are read.
  • protium run now writes two registry values into a prefix that lacks
    them,
    Enable SDL=0 and DisableInput=1 under the winebus service. It
    says so the one time it does.

Fixed

  • A paired controller did nothing in a game. Wine saw it and then dropped
    it, because winebus refuses a gamepad over the one path this build has —
    IOHID — unless told SDL and evdev are not there. protium now says so in
    every prefix: when it creates one, and the first time protium run
    launches something in an older one. A prefix that is already running needs
    protium prefix stop once. See docs/controllers.md.
  • An Xbox controller over Bluetooth had no right stick, its stick moved
    the triggers, its triggers did nothing, and its bumpers read as Back and
    Start. patches/0003 reads the layout it uses.
  • An Xbox controller on USB was not a controller at all. macOS hands it
    to Wine as raw Xbox protocol (GIP) packets, which nothing in Wine read.
    patches/0004 decodes them; over USB the controller reports every 8 ms,
    against 30 ms over Bluetooth. Rumble is not implemented.

What is in this download

For Apple silicon Macs:

  • protium-v0.4.0-macos-aarch64.tar.gz: the protium binary and its
    licence texts. This is the one you download.
  • wine-…-macos-x86_64.tar.gz: the Wine runtime this release was built with.
    You need not download it yourself: protium runtime install fetches it and
    installs it only if its SHA-256 matches the one compiled into protium. It
    loads on macOS 15 and later. It was checked on macOS 15 by the workflow that
    built it, and played on macOS 26. Its licence texts are inside it, in
    licenses/.
  • The source archives that runtime was built from: CrossOver's published
    sources, which carry Wine and the libraries it links in, and FreeType,
    GnuTLS, Nettle and GMP.

It does not hold D3DMetal, which comes from Apple's Game Porting Toolkit
and which you download yourself (see the README); protium d3dmetal install
then installs it into the runtime. Apple's D3DMetal 4.0b2 needs macOS 26.4 or
later. Wine Mono, Wine's .NET runtime, is fetched by
protium prefix new when it creates a prefix.

This software is based in part on the work of the Independent JPEG Group.

Verifying this download

Every release is signed by the GitHub Actions workflow that built it. The
signature covers SHA256SUMS, which pins the archive by hash, and travels
beside it as SHA256SUMS.sigstore.json. Download the archive, SHA256SUMS and
SHA256SUMS.sigstore.json into one directory, then run these two steps from
it, in this order.

1. Check the signature over the checksums. Install
cosign
(brew install cosign), then:

cosign verify-blob SHA256SUMS \
  --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Benehiko/protium/.github/workflows/release.yml@refs/tags/v0.4.0 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

It must print Verified OK. Anything else means SHA256SUMS was not signed by
the release workflow for this tag: stop, and do not run anything from the
download.

The identity is the workflow file in this repository at this tag, and the
issuer is GitHub Actions. There is no person's key or account behind it, and
the signature is recorded in Sigstore's public transparency log.

2. Check the archive against the checksums.

shasum -a 256 -c --ignore-missing SHA256SUMS

The archive must be listed as OK. SHA256SUMS also lists the runtime and its
sources, and --ignore-missing skips the ones you did not download.

Step 1 is what makes step 2 mean anything: checksums downloaded from the same
page as the archive only prove the two agree, not that either came from us.

Installing

Once both checks pass:

tar -xzf protium-v0.4.0-macos-aarch64.tar.gz
sudo install -m 755 protium-v0.4.0-macos-aarch64/protium /usr/local/bin/protium
protium version

Any directory on your PATH will do in place of /usr/local/bin; without
sudo, ~/.local/bin works if it is on your PATH.

Then let protium tell you what is left to do:

protium runtime install   # the Wine this release was built with, and Rosetta 2
protium d3dmetal install  # Apple's D3DMetal, from the toolkit DMG in ~/Downloads
protium status            # where the installation is, and the next step

protium d3dmetal install also takes a path: the Game Porting Toolkit .dmg,
the evaluation environment inside it, either one mounted, or its redist/lib
folder. It opens a disk image in your terminal, where hdiutil asks you to
accept Apple's licence.

To build the same Wine on your Mac instead, run protium doctor build and then
protium build in place of protium runtime install.

If you downloaded the runtime archive from this page yourself, give its path:
protium runtime install ~/Downloads/wine-…-macos-x86_64.tar.gz. It is checked
against the same SHA-256, and the installed files are not quarantined. Do not
unpack it in Finder and copy the folder into place: that skips the check, and
Archive Utility passes the download's quarantine on to every file it extracts.

The README covers where to get Apple's download, and protium shell-init
prints the line that makes prefixes automatic in every new terminal.

"cannot be opened" or "Apple could not verify"

protium is signed ad hoc, not with an Apple Developer ID, and is not
notarized. A web browser marks what it downloads as quarantined, and macOS
refuses to run a quarantined binary it cannot trace to a registered developer.
The message reads "protium" cannot be opened because the developer cannot be
verified
, or, on macOS 15 and later, Apple could not verify "protium" is free
of malware
.

Verify the download first (above), then clear the quarantine from the
unpacked directory, before installing:

tar -xzf protium-v0.4.0-macos-aarch64.tar.gz
xattr -dr com.apple.quarantine protium-v0.4.0-macos-aarch64

Or, after the first refusal: System Settings → Privacy & Security → scroll to
the message about protium → Open Anyway.

Downloads made with curl or gh release download are not quarantined and
need neither step.

protium v0.3.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 05:38
v0.3.0
de3fce5

The easy way in: protium runtime install is the whole of getting Wine.

New

  • protium runtime install sets up Rosetta 2 as well. protium's Wine is
    x86-64, because D3DMetal is, so it checks for Rosetta before downloading
    anything and, if it is missing, runs Apple's softwareupdate --install-rosetta in your terminal, where Apple asks you to accept its
    licence. protium never accepts it for you. protium prefix new checks too,
    before it boots a prefix, rather than failing inside Wine.
  • --yes (-y) answers a command's question, on prefix new, prefix remove, prefix migrate-user and install clean. Every check still runs.
    --force (-f) now only means redo or do it harder: install, d3dmetal install and prefix stop.
  • Short options: -y, -f, -p <prefix> and -r <runtime>.
  • protium doctor checks what running protium's Wine needs — Apple
    silicon and Rosetta. protium doctor build checks what protium build
    needs, which is Xcode's command line tools: the build fetches its own bison
    and llvm-mingw.
  • protium status and runtime install say where Apple's download goes:
    the Game Porting Toolkit's .dmg in ~/Downloads, or any path given to
    protium d3dmetal install. On a release build, status suggests
    protium runtime install rather than protium build.

Changed

  • --force on prefix new, prefix remove, prefix migrate-user and
    install clean still answers the question, with a note to use --yes.
    It
    will stop doing so in a later release.
  • An option a command does not take is an error, where it used to be
    ignored, and so is an unknown one starting with a single dash: prefix remove games -x no longer reads -x as a name.
  • protium doctor no longer looks for bison, flex and llvm-mingw on your
    PATH.
    Nothing used them: protium build fetches its own.

What is in this download

For Apple silicon Macs:

  • protium-v0.3.0-macos-aarch64.tar.gz: the protium binary and its
    licence texts. This is the one you download.
  • wine-…-macos-x86_64.tar.gz: the Wine runtime this release was built with.
    You need not download it yourself: protium runtime install fetches it and
    installs it only if its SHA-256 matches the one compiled into protium. It
    loads on macOS 15 and later. It was checked on macOS 15 by the workflow that
    built it, and played on macOS 26. Its licence texts are inside it, in
    licenses/.
  • The source archives that runtime was built from: CrossOver's published
    sources, which carry Wine and the libraries it links in, and FreeType,
    GnuTLS, Nettle and GMP.

It does not hold D3DMetal, which comes from Apple's Game Porting Toolkit
and which you download yourself (see the README); protium d3dmetal install
then installs it into the runtime. Apple's D3DMetal 4.0b2 needs macOS 26.4 or
later. Wine Mono, Wine's .NET runtime, is fetched by
protium prefix new when it creates a prefix.

This software is based in part on the work of the Independent JPEG Group.

Verifying this download

Every release is signed by the GitHub Actions workflow that built it. The
signature covers SHA256SUMS, which pins the archive by hash, and travels
beside it as SHA256SUMS.sigstore.json. Download the archive, SHA256SUMS and
SHA256SUMS.sigstore.json into one directory, then run these two steps from
it, in this order.

1. Check the signature over the checksums. Install
cosign
(brew install cosign), then:

cosign verify-blob SHA256SUMS \
  --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Benehiko/protium/.github/workflows/release.yml@refs/tags/v0.3.0 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

It must print Verified OK. Anything else means SHA256SUMS was not signed by
the release workflow for this tag: stop, and do not run anything from the
download.

The identity is the workflow file in this repository at this tag, and the
issuer is GitHub Actions. There is no person's key or account behind it, and
the signature is recorded in Sigstore's public transparency log.

2. Check the archive against the checksums.

shasum -a 256 -c --ignore-missing SHA256SUMS

The archive must be listed as OK. SHA256SUMS also lists the runtime and its
sources, and --ignore-missing skips the ones you did not download.

Step 1 is what makes step 2 mean anything: checksums downloaded from the same
page as the archive only prove the two agree, not that either came from us.

Installing

Once both checks pass:

tar -xzf protium-v0.3.0-macos-aarch64.tar.gz
sudo install -m 755 protium-v0.3.0-macos-aarch64/protium /usr/local/bin/protium
protium version

Any directory on your PATH will do in place of /usr/local/bin; without
sudo, ~/.local/bin works if it is on your PATH.

Then let protium tell you what is left to do:

protium runtime install   # the Wine this release was built with, and Rosetta 2
protium d3dmetal install  # Apple's D3DMetal, from the toolkit DMG in ~/Downloads
protium status            # where the installation is, and the next step

protium d3dmetal install also takes a path: the Game Porting Toolkit .dmg,
the evaluation environment inside it, either one mounted, or its redist/lib
folder. It opens a disk image in your terminal, where hdiutil asks you to
accept Apple's licence.

To build the same Wine on your Mac instead, run protium doctor build and then
protium build in place of protium runtime install.

If you downloaded the runtime archive from this page yourself, give its path:
protium runtime install ~/Downloads/wine-…-macos-x86_64.tar.gz. It is checked
against the same SHA-256, and the installed files are not quarantined. Do not
unpack it in Finder and copy the folder into place: that skips the check, and
Archive Utility passes the download's quarantine on to every file it extracts.

The README covers where to get Apple's download, and protium shell-init
prints the line that makes prefixes automatic in every new terminal.

"cannot be opened" or "Apple could not verify"

protium is signed ad hoc, not with an Apple Developer ID, and is not
notarized. A web browser marks what it downloads as quarantined, and macOS
refuses to run a quarantined binary it cannot trace to a registered developer.
The message reads "protium" cannot be opened because the developer cannot be
verified
, or, on macOS 15 and later, Apple could not verify "protium" is free
of malware
.

Verify the download first (above), then clear the quarantine from the
unpacked directory, before installing:

tar -xzf protium-v0.3.0-macos-aarch64.tar.gz
xattr -dr com.apple.quarantine protium-v0.3.0-macos-aarch64

Or, after the first refusal: System Settings → Privacy & Security → scroll to
the message about protium → Open Anyway.

Downloads made with curl or gh release download are not quarantined and
need neither step.

protium v0.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 20:22
v0.2.0
f641c91

The first release that carries Wine itself.

New

  • protium runtime install installs the Wine runtime this release was
    built with, instead of building one on your Mac. protium downloads it from
    this release and installs it only if its SHA-256 matches the one compiled
    into protium, which the release's signature covers. Because protium downloads
    it rather than a browser, macOS does not quarantine it. protium build still
    builds the same Wine on your Mac.
  • The runtime is built by the release itself, on a GitHub macOS 15 runner,
    and published with the exact source archives it was built from. It carries
    every licence text its contents need, in licenses/.
  • macOS 15 and later. The runtime is built for macOS 15.0. It was checked
    on macOS 15 by the workflow that built it, and played on macOS 26.
  • protium build builds FreeType, GnuTLS, Nettle and GMP itself, from
    pinned, signature-checked sources, where it used to require them prebuilt.
    Every download is pinned by SHA-256, and retried when the failure may pass.
  • New prefixes get Wine Mono without Wine's "download Wine Mono?" dialog:
    protium prefix new fetches it once and checks it against the hash Wine
    pins. .NET programs run in a new prefix.
  • protium run finds Steam games in every Steam library, deeper, and by
    title, and sets SteamAppId from Steam's manifest.
  • protium d3dmetal install replaces protium redist. It takes Apple's
    Game Porting Toolkit .dmg, the evaluation environment in it, either one
    mounted, or its redist/lib folder, and with no path uses the
    Game_Porting_Toolkit_*.dmg in ~/Downloads. It checks Apple's payload and
    merges it into the runtime, keeping Wine's own Direct3D modules aside, so
    there is no longer a second, destructive install method to choose between.
    protium d3dmetal check reports the runtime's D3DMetal, or what Apple's
    download holds. Tab-completion knows both. protium redist is gone.

Fixed

  • A program protium finds is started in its own directory, as Steam and
    Explorer start it. Elden Ring 2.7.1.0 stopped at start-up when it was started
    anywhere else.
  • The Wine build no longer picks up Homebrew's libraries through
    pkg-config. It linked Homebrew's GnuTLS headers on a Mac that had them, and
    failed on a machine whose Homebrew FreeType was arm64.

Known issues

  • Elden Ring ends in a Wine crash report when you quit it from its menu, after
    the game has already stopped. See docs/quit-crash.md.

Licences

  • THIRD-PARTY-NOTICES.md lists the eighteen libraries Wine links into its
    own DLLs, the libraries a runtime carries in lib/, and Wine Mono, which is
    fetched and never shipped.

What is in this download

For Apple silicon Macs:

  • protium-v0.2.0-macos-aarch64.tar.gz: the protium binary and its
    licence texts. This is the one you download.
  • wine-…-macos-x86_64.tar.gz: the Wine runtime this release was built with.
    You need not download it yourself: protium runtime install fetches it and
    installs it only if its SHA-256 matches the one compiled into protium. It
    loads on macOS 15 and later. It was checked on macOS 15 by the workflow that
    built it, and played on macOS 26. Its licence texts are inside it, in
    licenses/.
  • The source archives that runtime was built from: CrossOver's published
    sources, which carry Wine and the libraries it links in, and FreeType,
    GnuTLS, Nettle and GMP.

It does not hold D3DMetal, which comes from Apple's Game Porting Toolkit
and which you download yourself (see the README); protium d3dmetal install
then installs it into the runtime. Apple's D3DMetal 4.0b2 needs macOS 26.4 or
later. Wine Mono, Wine's .NET runtime, is fetched by
protium prefix new when it creates a prefix.

This software is based in part on the work of the Independent JPEG Group.

Verifying this download

Every release is signed by the GitHub Actions workflow that built it. The
signature covers SHA256SUMS, which pins the archive by hash, and travels
beside it as SHA256SUMS.sigstore.json. Download the archive, SHA256SUMS and
SHA256SUMS.sigstore.json into one directory, then run these two steps from
it, in this order.

1. Check the signature over the checksums. Install
cosign
(brew install cosign), then:

cosign verify-blob SHA256SUMS \
  --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Benehiko/protium/.github/workflows/release.yml@refs/tags/v0.2.0 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

It must print Verified OK. Anything else means SHA256SUMS was not signed by
the release workflow for this tag: stop, and do not run anything from the
download.

The identity is the workflow file in this repository at this tag, and the
issuer is GitHub Actions. There is no person's key or account behind it, and
the signature is recorded in Sigstore's public transparency log.

2. Check the archive against the checksums.

shasum -a 256 -c --ignore-missing SHA256SUMS

The archive must be listed as OK. SHA256SUMS also lists the runtime and its
sources, and --ignore-missing skips the ones you did not download.

Step 1 is what makes step 2 mean anything: checksums downloaded from the same
page as the archive only prove the two agree, not that either came from us.

Installing

Once both checks pass:

tar -xzf protium-v0.2.0-macos-aarch64.tar.gz
sudo install -m 755 protium-v0.2.0-macos-aarch64/protium /usr/local/bin/protium
protium version

Any directory on your PATH will do in place of /usr/local/bin; without
sudo, ~/.local/bin works if it is on your PATH.

Then let protium tell you what is left to do:

protium runtime install   # the Wine this release was built with
protium d3dmetal install  # Apple's D3DMetal, from the toolkit DMG in ~/Downloads
protium status            # where the installation is, and the next step

protium d3dmetal install also takes a path: the Game Porting Toolkit .dmg,
the evaluation environment inside it, either one mounted, or its redist/lib
folder. It opens a disk image in your terminal, where hdiutil asks you to
accept Apple's licence.

To build the same Wine on your Mac instead, run protium doctor and then
protium build in place of protium runtime install.

If you downloaded the runtime archive from this page yourself, give its path:
protium runtime install ~/Downloads/wine-…-macos-x86_64.tar.gz. It is checked
against the same SHA-256, and the installed files are not quarantined. Do not
unpack it in Finder and copy the folder into place: that skips the check, and
Archive Utility passes the download's quarantine on to every file it extracts.

The README covers where to get Apple's download, and protium shell-init
prints the line that makes prefixes automatic in every new terminal.

"cannot be opened" or "Apple could not verify"

protium is signed ad hoc, not with an Apple Developer ID, and is not
notarized. A web browser marks what it downloads as quarantined, and macOS
refuses to run a quarantined binary it cannot trace to a registered developer.
The message reads "protium" cannot be opened because the developer cannot be
verified
, or, on macOS 15 and later, Apple could not verify "protium" is free
of malware
.

Verify the download first (above), then clear the quarantine from the
unpacked directory, before installing:

tar -xzf protium-v0.2.0-macos-aarch64.tar.gz
xattr -dr com.apple.quarantine protium-v0.2.0-macos-aarch64

Or, after the first refusal: System Settings → Privacy & Security → scroll to
the message about protium → Open Anyway.

Downloads made with curl or gh release download are not quarantined and
need neither step.

protium v0.2.0-rc1

protium v0.2.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Oct 18:13
v0.2.0-rc1
b988895

The first release that carries Wine itself.

New

  • protium runtime install installs the Wine runtime this release was
    built with, instead of building one on your Mac. protium downloads it from
    this release and installs it only if its SHA-256 matches the one compiled
    into protium, which the release's signature covers. Because protium downloads
    it rather than a browser, macOS does not quarantine it. protium build still
    builds the same Wine on your Mac.
  • The runtime is built by the release itself, on a GitHub macOS 15 runner,
    and published with the exact source archives it was built from. It carries
    every licence text its contents need, in licenses/.
  • macOS 15 and later. The runtime is built for macOS 15.0. It was checked
    on macOS 15 by the workflow that built it, and played on macOS 26.
  • protium build builds FreeType, GnuTLS, Nettle and GMP itself, from
    pinned, signature-checked sources, where it used to require them prebuilt.
    Every download is pinned by SHA-256, and retried when the failure may pass.
  • New prefixes get Wine Mono without Wine's "download Wine Mono?" dialog:
    protium prefix new fetches it once and checks it against the hash Wine
    pins. .NET programs run in a new prefix.
  • protium run finds Steam games in every Steam library, deeper, and by
    title, and sets SteamAppId from Steam's manifest.

Fixed

  • A program protium finds is started in its own directory, as Steam and
    Explorer start it. Elden Ring 2.7.1.0 stopped at start-up when it was started
    anywhere else.
  • The Wine build no longer picks up Homebrew's libraries through
    pkg-config. It linked Homebrew's GnuTLS headers on a Mac that had them, and
    failed on a machine whose Homebrew FreeType was arm64.

Known issues

  • Elden Ring ends in a Wine crash report when you quit it from its menu, after
    the game has already stopped. See docs/quit-crash.md.

Licences

  • THIRD-PARTY-NOTICES.md lists the eighteen libraries Wine links into its
    own DLLs, the libraries a runtime carries in lib/, and Wine Mono, which is
    fetched and never shipped.

What is in this download

For Apple silicon Macs:

  • protium-v0.2.0-rc1-macos-aarch64.tar.gz: the protium binary and its
    licence texts. This is the one you download.
  • wine-…-macos-x86_64.tar.gz: the Wine runtime this release was built with.
    You do not download it yourself: protium runtime install fetches it and
    installs it only if its SHA-256 matches the one compiled into protium. It
    loads on macOS 15 and later. It was checked on macOS 15 by the workflow that
    built it, and played on macOS 26. Its licence texts are inside it, in
    licenses/.
  • The source archives that runtime was built from: CrossOver's published
    sources, which carry Wine and the libraries it links in, and FreeType,
    GnuTLS, Nettle and GMP.

It does not hold D3DMetal, which comes from Apple's Game Porting Toolkit
and which you download yourself (see the README). Apple's D3DMetal 4.0b2 needs
macOS 26.4 or later. Wine Mono, Wine's .NET runtime, is fetched by
protium prefix new when it creates a prefix.

This software is based in part on the work of the Independent JPEG Group.

Verifying this download

Every release is signed by the GitHub Actions workflow that built it. The
signature covers SHA256SUMS, which pins the archive by hash, and travels
beside it as SHA256SUMS.sigstore.json. Download the archive, SHA256SUMS and
SHA256SUMS.sigstore.json into one directory, then run these two steps from
it, in this order.

1. Check the signature over the checksums. Install
cosign
(brew install cosign), then:

cosign verify-blob SHA256SUMS \
  --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Benehiko/protium/.github/workflows/release.yml@refs/tags/v0.2.0-rc1 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

It must print Verified OK. Anything else means SHA256SUMS was not signed by
the release workflow for this tag: stop, and do not run anything from the
download.

The identity is the workflow file in this repository at this tag, and the
issuer is GitHub Actions. There is no person's key or account behind it, and
the signature is recorded in Sigstore's public transparency log.

2. Check the archive against the checksums.

shasum -a 256 -c --ignore-missing SHA256SUMS

The archive must be listed as OK. SHA256SUMS also lists the runtime and its
sources, and --ignore-missing skips the ones you did not download.

Step 1 is what makes step 2 mean anything: checksums downloaded from the same
page as the archive only prove the two agree, not that either came from us.

Installing

Once both checks pass:

tar -xzf protium-v0.2.0-rc1-macos-aarch64.tar.gz
sudo install -m 755 protium-v0.2.0-rc1-macos-aarch64/protium /usr/local/bin/protium
protium version

Any directory on your PATH will do in place of /usr/local/bin; without
sudo, ~/.local/bin works if it is on your PATH.

Then let protium tell you what is left to do:

protium runtime install   # the Wine this release was built with
protium status            # where the installation is, and the next step

To build the same Wine on your Mac instead, run protium doctor and then
protium build in place of protium runtime install.

The README covers D3DMetal, which comes from Apple, and protium shell-init
prints the line that makes prefixes automatic in every new terminal.

"cannot be opened" or "Apple could not verify"

protium is signed ad hoc, not with an Apple Developer ID, and is not
notarized. A web browser marks what it downloads as quarantined, and macOS
refuses to run a quarantined binary it cannot trace to a registered developer.
The message reads "protium" cannot be opened because the developer cannot be
verified
, or, on macOS 15 and later, Apple could not verify "protium" is free
of malware
.

Verify the download first (above), then clear the quarantine from the
unpacked directory, before installing:

tar -xzf protium-v0.2.0-rc1-macos-aarch64.tar.gz
xattr -dr com.apple.quarantine protium-v0.2.0-rc1-macos-aarch64

Or, after the first refusal: System Settings → Privacy & Security → scroll to
the message about protium → Open Anyway.

Downloads made with curl or gh release download are not quarantined and
need neither step.

protium v0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 19:17
v0.1.0
89cc439

protium v0.1.0

First release. Apple silicon (macOS aarch64) only.


What is in this download

One archive, protium-v0.1.0-macos-aarch64.tar.gz, for Apple silicon Macs.
It holds the protium binary and its licence texts. It does not hold Wine
or D3DMetal: protium build builds Wine on your Mac from CodeWeavers' published
sources, and D3DMetal comes from Apple's Game Porting Toolkit, which you
download yourself (see the README).

Verifying this download

Every release is signed by the GitHub Actions workflow that built it. The
signature covers SHA256SUMS, which pins the archive by hash, and travels
beside it as SHA256SUMS.sigstore.json. Download the archive, SHA256SUMS and
SHA256SUMS.sigstore.json into one directory, then run these two steps from
it, in this order.

1. Check the signature over the checksums. Install
cosign
(brew install cosign), then:

cosign verify-blob SHA256SUMS \
  --bundle SHA256SUMS.sigstore.json \
  --certificate-identity https://github.com/Benehiko/protium/.github/workflows/release.yml@refs/tags/v0.1.0 \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

It must print Verified OK. Anything else means SHA256SUMS was not signed by
the release workflow for this tag: stop, and do not run anything from the
download.

The identity is the workflow file in this repository at this tag, and the
issuer is GitHub Actions. There is no person's key or account behind it, and
the signature is recorded in Sigstore's public transparency log.

2. Check the archive against the checksums.

shasum -a 256 -c SHA256SUMS

The archive must be listed as OK.

Step 1 is what makes step 2 mean anything: checksums downloaded from the same
page as the archive only prove the two agree, not that either came from us.

Installing

Once both checks pass:

tar -xzf protium-v0.1.0-macos-aarch64.tar.gz
sudo install -m 755 protium-v0.1.0-macos-aarch64/protium /usr/local/bin/protium
protium version

Any directory on your PATH will do in place of /usr/local/bin; without
sudo, ~/.local/bin works if it is on your PATH.

Then let protium tell you what is left to do:

protium doctor   # does this Mac have what building Wine needs?
protium build    # build Wine from CodeWeavers' sources
protium status   # where the installation is, and the next step

The README covers D3DMetal, which comes from Apple, and protium shell-init
prints the line that makes prefixes automatic in every new terminal.

"cannot be opened" or "Apple could not verify"

protium is signed ad hoc, not with an Apple Developer ID, and is not
notarized. A web browser marks what it downloads as quarantined, and macOS
refuses to run a quarantined binary it cannot trace to a registered developer.
The message reads "protium" cannot be opened because the developer cannot be
verified
, or, on macOS 15 and later, Apple could not verify "protium" is free
of malware
.

Verify the download first (above), then clear the quarantine from the
unpacked directory, before installing:

tar -xzf protium-v0.1.0-macos-aarch64.tar.gz
xattr -dr com.apple.quarantine protium-v0.1.0-macos-aarch64

Or, after the first refusal: System Settings → Privacy & Security → scroll to
the message about protium → Open Anyway.

Downloads made with curl or gh release download are not quarantined and
need neither step.