WEM Changelog
Download release builds from this page.
Versions with no release builds can be downloaded from this link as a development build.
→ 0.14.0
-
New
icmd:lineInFile, to ensure a line is in the given file -
New
icmd:findAndReplace, to find and replace text in a file -
Began using
golangci-lint(with a large number of nonstandard linters enabled) against the WEM codebase and fixed all related issues that were surfaced - Fixed a nil pointer dereference that prevented doing “wem cfg”
→ 0.13.1
- Fixed a problem that prevented downloading DXVK or VKD3D-Proton
-
Made further improvements to detecting if the selected
WineExeis 64-bit capable- Notably, this fixes a bug where WEM wouldn’t recognize non-WOW64, amd64 Kron4ek builds as 64-bit
→ 0.13.0
-
Added the
getsubcommand for downloading curated env configurations -
Added the
get-listsubcommand for viewing available curated envs that can be downloaded -
Added the
get-htmlsubcommand for generating HTML pages for each curated env -
Added the
get-viewsubcommand for viewing detailed information about a specific curated env from inside a terminal -
Added the
EnvRepoURLoption for thewem.cfgfile, it’s the source for downloadable curated envs -
Added the
icmdfield toInstallPre/InstallPost/RunPre/RunPostfor running internal helper commands- These are documented on the WEM Options documentation page
-
Added the
ifexistsandifnotexistsfields toInstallPre/InstallPost/RunPre/RunPostfor only executing a command if something exists or doesn’t exit -
Added the
workdirfield toInstallPre/InstallPost/RunPre/RunPostfor setting the working directory for these actions -
Added the
--explorerarg for therunsubcommand for running explorer in an env’s context (similar to--winecfg) -
Added the
--regeditarg for therunsubcommand for running regedit in an env’s context (similar to--winecfg) -
Added the
--uninstallerarg for therunsubcommand for running uninstaller in an env’s context (similar to--winecfg) -
Removed the
buildsubcommand- Its usefulness is debatable with the availability of good wine builds and umu-laumcher
- It had gone relatively unused and untested for some time
-
DXVK and VKD3D-Proton DLLs and DLL overrides are now dynamically
generated versus being hardcoded
- This will prevent lacking coverage for new DLLs that are added or removed
-
Fixes not enabling
d3d8.dllfor DXVK when it’s provided -
Fixes not enabling
d3d12core.dllfor VKD3D-Proton when it’s provided
-
Fixed
RunArgsnot actually being used -
Fixed
WineExenot properly being populated when using Kron4ek builds or umu-launcher -
Fixed issues with arg-supplied values not properly taking effect or
being rendered (via the
cfgsubcommand) -
The
WINEenvironment variable is now set when using--winetrickswith therunsubcommand - Changed the log prefix from the Go default
- Several under the hood changes and optimizations
→ 0.12.0
-
Made
InstallPre,InstallPost,RunPre, andRunPostinto more complex data structures. Please see the documentation for examples.- Previously WEM would naively split given commands on spaces, but this would break if for example you had a file path with a space in it, as well as prevent other possible command executions.
- These can still be passed in via CLI args, but doing so will fall back to the old naive behavior. For complex commands and better usage, stick to the new config format.
-
QuietRunis now automatically disabled forInstallPre,InstallPost,RunPre, andRunPostsince it can break some commands - Improved stderr/stdout handling
→ 0.11.0
-
Removed the
RunSuffixoption-
It wasn’t actually used in the code, and functionally
RunArgsis probably more fitting
-
It wasn’t actually used in the code, and functionally
-
Try to emit a more sensible error when enabling DXVK/VKD3D-Proton
and the configured
RunExedoesn’t exist -
When used with
--sandbox*,--single-corewill prefer firejail’s CPU affinity handling -
Fixed a regression on setting the default
WINEARCH - Fixed DXVK/VKD3D-Proton version having an extra “v” if you added it to your version
- Fixed install-pre/post commands not running when an env was already installed
→ 0.10.3
-
Fixed a problem with generating the path to a
wineexecutable for Kron4ek wine builds
→ 0.10.2
-
--dry-runnow accurately reflects usage of--install-only-preand/or--install-only-post -
Improved code for determining if
InstallPreandInstallPostshould run -
Fixed
--no-kron4ekand--no-umu-versionnot working - Fixed problems with detecting wine64 capabilities
- Fixed umu or Kron4ek versions/types passed in via command-line not working
→ 0.10.1
-
Added missing env completions for the
checkcommand - Fixed a problem with detecting whether the configured wine is 32 or 64-bit
- Fixed installation happening when it should not have
→ 0.10.0
-
Added
--install-only-preand--install-only-postthat allow skipping the main install process and only do the pre or post processes, or both - Improved detection of 32 or 64-bit wine executables
-
Added support for using Kron4ek Wine Builds as
a wine runner
-
Set
Kron4ekTypeto a valid Kron4ek Wine release version and WEM will automatically download and extract it, then use it asWineExefor the given env
-
Set
-
Added the
infosubcommand to print out WEM program configuration and information -
Added the
checksubcommand for checking that options in a given env are valid -
Added support for using umu-launcher
as a wine runner
-
Set
UmuVersionto a valid umu release version and WEM will automatically download and extract it, then use it asWineExefor the given env
-
Set
-
Refactored
actions/run.goto be vastly simpler code -
RunPreno longer ran when using--exec -
The
RunPreandRunPostoptions have been changed from one command (a single string) to multiple commands (an array of strings) -
Added
InstallPreandInstallPostoptions to run a list of commands before and after installation -
Removed the
ge-winesubcommand- Those builds are no longer maintained
-
The pattern of using a subcommand to install wine runners has proven
to be suboptimal; in the future when other runners are supported they
will be implemented similarly to how umu-launcher has been (configure a
version to use, it’s then automatically set as the
WineExefor the env)
-
The firejail CLI generated for
--dry-runis no longer created with its own logic (it’s now generated from the actual CLI that gets ran) - Build against Go 1.24 (from 1.16)
-
Fixed a bug where
--cpu=0was always set when using a firejail sandbox - Sandbox names are sanitized to conform to new firejail requirements
- Only warn about install options if relevant ones are set
- The generic binary (not any of the the distro packages) is now compressed with UPX for a significant size reduction
→ 0.9.6
-
Fixed the
--no-dlloverridesoption
→ 0.9.5
- Don’t break exes with spaces in their names
→ 0.9.4
-
Don’t excessively warn about
InstallExe - Only try to set sandbox DNS when the option is used explicitly
→ 0.9.3
-
Added
--sandbox-dnsfor setting a DNS resolver in a sandbox via Firejail -
Added
--sandbox-cpufor limiting CPUs in a sandbox via Firejail -
Added the
--no-unchangedoption for thecfgcommand to not print settings that haven’t been changed from the default value -
An extra newline is no longer printed with the
cfgcommand - Improved fish completions
- Moved bash and fish completions to separate files, use the embed directive to include their content
→ 0.9.2
- Fixed several typos
-
Removed the
SandboxCapsDropAll,SandboxPrivateDev, andSandboxSeccompoptions since they are provided by the Firejail wine profile -
Made the error for a missing
GeWineDiroption give a clue about how to fix it - Made several required args required at the go-args level rather than doing custom validations all over the place
-
wem manwill now give an error message when it fails due to missing themandocbinary -
Doing
--no-sandboxnow fully disables all other sandbox options -
The install workflow is now more forgiving when you don’t have a
value for
InstallExpectedorRunExe- It’s likely you won’t know what exe to expect until after you install and check what you actually have
→ 0.9.1
- Remove man2roff from the build process, keep the raw traff file in version control instead
→ 0.9.0
- Generate new wine prefixes with the system wine when it’s available, warn about it when it’s not
- Support installing GE Wine binary packages
-
Support using
firefailfor sandboxing features if the executable is available -
RunPrefixis now split on spaces and processed as a command that potentially has args (useful for things likefirejail) -
Pre run is now ran when doing
--exec - Added escapes to the tutorial init example run exe
→ 0.8.9
- Updated documentation that was out of date, including the manpage and tutorial
→ 0.8.8
- Created this changelog
- Give the correct warning when an invalid var is used in a cfg (don’t say the env doesn’t exist..)
- Adjusted some common wording
-
InfoDateisn’t printed in run output if it isn’t set - Spaces are now escaped in dry-run output
- String rendering is now recursive
-
Fix a bug with
--execwhere giving no exec args would pass""as an arg - Package docs and the license in build tarballs
-
Renamed the
cmdpackage toactionsto better follow go conventions
→ 0.8.7
- The build pipeline now sets the app version at compile time
- Added additional build flags
→ 0.8.6
-
Changed the
wem protondeprecation message
→ 0.8.5
- Properly handle executables with spaces in their names
→ 0.8.4
-
Set
WINE_LARGE_ADDRESS_AWARE=1when DXVK is in use (#10) -
Allow
-in env names
→ 0.8.3
- Fixed several dry-run bugs
-
Stop recommending
go getas an install method
→ 0.8.2
- Allow setting an env’s “Info Date” from the command line (#37)
- Fixed bugs with saving an env after editing it via the CLI
-
Deprecated
wem proton;wem binaryto replace it -
Added
--exec-args
→ 0.7.1
- Fixed some new prefix creation bugs (#16)
- Added a reasonably thorough integration test that runs WEM against an actual win32 binary (#32)
- General code cleanup
→ 0.7.0
- Improved file handling code
- Added more tests
→ 0.6.3
-
Fixed dry-run output for
--exec - Include missing wine command args in dry-run output
→ 0.6.2
- Added more missed completions
→ 0.6.1
- Fixed some wording
- Added missed completions
→ 0.6.0
- Made code more compatible with older go versions
- Exposed more useful errors
- Made win64 the default env arch instead of win32
- Pretty print things (tab-aligned)
→ 0.5.2
- Exposed some errors that were accidentally ignored
-
WEM now tries to detect when
installhas successfully happened
→ 0.5.1
- Added missing go module data
→ 0.5
Initial public release