# 'Wine-to-rule-them-all' - Wine-TkG config file - external config example ## ## This config file is an example of external config (typical path: ~/.config/frogminer/wine-tkg.cfg) ## It contains all available options in a centralized way ## #### NON-MAKEPKG OPTIONS (Won't affect makepkg builds) #### # Set to the desired installation path for your build(s). A versioned dir containing your build will be created inside that target. # Example: _nomakepkg_prefix_path="/home/frog" will install your build in /home/frog/wine-tkg-******** _nomakepkg_prefix_path="/home/david" # Set to true to disable versioning in the installation path of your builds. To change the base name of your build dir, see _PKGNAME_OVERRIDE option. _nomakepkg_nover="false" # Set to true to get a prompt after the 64-bit part is built, enabling package switching before building the 32-bit side. # This is a workaround for distros shipping broken devel packages that can't coexist as multilib _nomakepkg_midbuild_prompt="false" # Set to the distro of your choice to attempt dependency resolution. Valid options are "debuntu" (for debian, ubuntu and similar), "fedora" or "archlinux". _nomakepkg_dep_resolution_distro="debuntu" #### COMPILER/BUILD OPTIONS #### # Override config with one of the presets from /wine-tkg-profiles dir. # Custom presets : "fo4", "legacy", "mwo", "sims2", "oldnvidia-sims3", "protonified", "unity". # Clean presets (untouched) : "mainline", "staging". _LOCAL_PRESET="" # Set to a string of your choice to override the default dynamic pkgname. Example: "awkward_frog" will result in "wine-tkg-git-awkward_frog" pkgname. You can also use "none" to only get a plain "wine-tkg-git" pkgname. # On non-makepkg builds, it'll change the base name of the build's dir in a similar fashion. _PKGNAME_OVERRIDE="" # Custom compiler root dirs - Leave empty to use system compilers # Example: CUSTOM_MINGW_PATH="/home/frog/PKGBUILDS/mostlyportable-gcc/mingw-mostlyportable-9.2.0" # Example: CUSTOM_GCC_PATH="/home/frog/PKGBUILDS/mostlyportable-gcc/gcc-mostlyportable-9.2.0" CUSTOM_MINGW_PATH="" CUSTOM_GCC_PATH="" # Set to true to use custom flags defined by _GCC_FLAGS and _LD_FLAGS. All CPU threads will also be used for building independently of your settings. # Setting this to false will use your system-wide makepkg flags set in /etc/makepkg.conf (not recommended). _LOCAL_OPTIMIZED="true" # Custom GCC flags to use instead of system-wide makepkg flags set in /etc/makepkg.conf. Default is "-pipe -O2 -ftree-vectorize". Don't use -march=native if you want to share your builds accross different machines! _GCC_FLAGS="-pipe -O2 -ftree-vectorize" # Custom LD flags to use instead of system-wide makepkg flags set in /etc/makepkg.conf. Default is "-pipe -O2 -ftree-vectorize". _LD_FLAGS="-Wl,-O1,--sort-common,--as-needed" # Same as _GCC_FLAGS but for cross-compiled binaries. _CROSS_FLAGS="-pipe -O2 -ftree-vectorize" # Same as _LD_FLAGS but for cross-compiled binaries. _CROSS_LD_FLAGS="-Wl,-O1,--sort-common,--as-needed" # By default, tests are disabled to speed up compilation. If you need them for development purposes, set to "true" _ENABLE_TESTS="false" # Strip libs for smaller footprint (--strip-unneeded) - Not recommended for debugging _pkg_strip="true" # Set to "debug" to enable incremental building for debugging/development. Set to "false" to skip cleanups. Default "true" will enable housecleaning and sanity tasks. _NUKR="true" # Set to "true" to generate patchsets for each parts of the tree patching steps, found in `src/wine source dir` (default src/wine-mirror-git) # 01-reverts - 02-pre-staging - 03-staging - 04-post-staging - 05-hotfixes - 06-userpatches - 07-tags-n-polish _generate_patchsets="false" # Set to true to disable 32-bit wine. Doing so will disable WoW64 and break ALL 32-bit apps. Default is "false". _NOLIB32="false" # Set to true to disable 64-bit wine. Doing so will only build 32-bit wine and no SUPPORT for 64-bit apps. Default is "false". _NOLIB64="false" # Set to true to disable using mingw-gcc to build PE files on 4.9+. Will pass "--without-mingw" to wine's configuration flags. _NOMINGW="false" # Set to true if you do not want to compile your build after its source is ready - For source sharing/debugging _NOCOMPILE="true" # Set to true if you want to skip the initial prompt _NOINITIALPROMPT="false" # Optionally set additional make dependencies for makepkg builds. Multiple elements should be separated by a space. # Only affect makepkg _user_makedeps="" # In case your Faudio libraries are frogged, set to "true" to ignore the check. You'll be able to build, but xaudio2 support will be frogged. # Only use this in a case similar to this : your lib32-faudio libs are not found by wine, but you don't care because your game is 64-bit. _faudio_ignorecheck="false" # Set to true to remove trailing patchmsg strings in logs - Useful to review the list of patches used without fluff _nopatchmsg="false" #### EXTERNAL INSTALLATION SETTINGS - !! ONLY AFFECTS MAKEPKG !! #### # Set to true to install into external path instead of /usr. This allows you to install multiple different versions in parallel. # !!! Don't forget that you'll have to use /opt/wine-something/bin/wine instead of just wine (same for winecfg etc.) !!! _EXTERNAL_INSTALL="false" # "opt" path _DEFAULT_EXTERNAL_PATH="/opt" # Set to true to disable versioning in path for external install. For example, this would strip "opt/wine-tkg-opt-git-4.0.r11.gd2a48f1a" to "opt/wine-tkg-opt-git". _EXTERNAL_NOVER="false" #### GENERATE DEBIAN PACKAGE #### # Set to true if you want to generate a debian package after building. Currently doesn't work with _EXTERNAL_INSTALL option. # This generates a debian package from build files ready to be packaged. _GENERATE_DEBIAN_PACKAGE="false" #### WINE FLAVOUR SETTINGS #### # Set to the path of a custom wine source repo if desired. Leave empty to use official wine source. # Use the _plain_version option to target a specific commit for this source # ! Make sure to disable staging if your source isn't compatible with it or it will fail to apply ! _custom_wine_source="" # To build a local source instead of cloning from wine repos, copy the root dir of your build to wine-tkg-git/wine-tkg-git/src/ and set the variable below to the name of that dir # Example: For a "wine-froggy" dir containing my wine source, I copy it to wine-tkg-git/wine-tkg-git/src/wine-froggy and set _localbuild="wine-froggy" # Leave empty to use wine repos (default) _localbuild="" # plain wine commit (short) or version tag if you want to use a specific wine version. Can use e.g. "64d9f30", "wine-3.16" or "wine-4.0" # !!! Only affects non-staging builds (you want to edit the staging_version below for staging builds) !!! # Leave empty to use latest master - https://github.com/wine-mirror/wine/commits/master _plain_version="wine-6.0-rc6" # use mirror servers(github) for plain wine source. It is usually much faster than main servers but there might be a little delay before it gets synchronized. _plain_mirrorsrc="true" # Sets custom configure-args for 64-bit, separated by a space (example: "--without-mingw --with-vkd3d") _configure_userargs64="--with-x --with-gstreamer --with-xattr" # Sets custom configure-args for 32-bit, separated by a space (example: "--without-mingw --with-vkd3d") _configure_userargs32="--with-x --with-gstreamer --with-xattr" # esync - Enable with WINEESYNC=1 envvar - Set to true to enable esync support on plain wine or wine-staging <4.6 (it got merged in wine-staging 4.6). The option is ignored on wine-staging 4.6+ # You may need to raise your fd limits -> https://github.com/zfigura/wine/blob/esync/README.esync _use_esync="true" # esync version - https://github.com/zfigura/wine/releases - If you want to use a specific esync version. For 3.20 or higher, use "ce79346". For 3.19 to 3.17, use "b4478b7". For 3.16 and lower, use "5898a69". # Leave empty for auto-selection depending on detected Wine version. _esync_version="" # fsync - Enable with WINEFSYNC=1 envvar - Set to true to enable fsync support, an experimental replacement for esync introduced with Proton 4.11-1 - Requires Wine Mainline 4.7.r168.g29914d583f / Staging 4.9.r7.g197e08b4 or newer # https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305 _use_fsync="true" # Add a configurable spin count to fsync - might help performance but can introduce stability issues/hanging. Try setting WINEFSYNC_SPINCOUNT=100 envvar _fsync_spincounts="true" # staging _use_staging="true" # staging commit (short) or version tag if you want to use a specific staging version. Can use e.g. "7cfceb7", "v3.16" or "v4.0" # Leave empty to use latest master - https://github.com/wine-staging/wine-staging/commits/master #_staging_version="5cd622f66709850f168d71b4ae8ea40d59527bdc" _staging_version="v6.0-rc6" # You can optionally uncomment the _staging_userargs="" option to disable desired wine-staging patchsets. # For example, to disable the 'wined3d-Indexed_Vertex_Blending' patchset, the line below would look like this : _staging_userargs="-W wined3d-Indexed_Vertex_Blending" # You can also disable multiple patchsets ('wined3d-WINED3D_RS_COLORWRITEENABLE' and 'wined3d-Indexed_Vertex_Blending' in the following example : _staging_userargs="-W wined3d-WINED3D_RS_COLORWRITEENABLE -W wined3d-Indexed_Vertex_Blending" _staging_userargs="-W ntdll-NtAlertThreadByThreadId" #_staging_userargs="" # vkd3dlib - We don't want to use vkd3d native library by default to allow for vkd3d-proton usage # Set to "true" to enable explicit mainline vkd3d library support - default is "false" _use_vkd3dlib="false" # Set to false to add DXVK configuration support to Wine's DXGI, allowing for VKD3D to run while keeping DXVK dxgi functionalities. # !! For DXVK to work properly with this option set to false, you'll need a DXVK build that comes with dxvk_config.dll !! # Keep in mind Wine's dxgi can be more unstable and less compatible when used with DXVK. _dxvk_dxgi="true" # legacy gallium nine - This is only available for 4.1-devel (prior to e24b162) and older wine versions _use_legacy_gallium_nine="false" #### GAME-SPECIFIC PATCHES #### # The Sims 3 fix for Nvidia on older than 415.xx drivers - https://bugs.winehq.org/show_bug.cgi?id=45361 _sims3_fix="false" # Fixes Magic The Gathering: Arena (and various other unity games) crashing when downloading game files - https://bugs.winehq.org/show_bug.cgi?id=45546 # ! Introduces potential issues with various programs such as dotnet and directx installers ! _mtga_fix="true" # Mechwarrior Online fix - https://mwomercs.com/forums/topic/268847-running-the-game-on-ubuntu-steam-play/page__st__20__p__6195387#entry6195387 _mwo_fix="false" # Resident Evil 4 hack - https://bugs.winehq.org/show_bug.cgi?id=46336 _re4_fix="false" # Child window support for vk - Fixes World of Final Fantasy and others - https://bugs.winehq.org/show_bug.cgi?id=45277 _childwindow_fix="true" # Fix for LoL 9.20+ crashing - Depends on _use_staging="true" - https://bugs.winehq.org/show_bug.cgi?id=47198 & https://bugs.winehq.org/show_bug.cgi?id=47915 - Requires vdso32 disabled (as root: `echo 0 > /proc/sys/abi/vsyscall32`) # lol depends on the following staging patches : # winebuild-Fake_Dlls, ntdll-RtlCreateUserThread, ntdll-NtContinue, ntdll-SystemExtendedProcessInformation, ntdll-SystemModuleInformation, ntdll-ThreadHideFromDebugger, wow64cpu-Wow64Transition, user32-InternalGetWindowIcon, ntdll-Pipe_SpecialCharacters, ntdll-NtDevicePath, ntdll-NtQueryVirtualMemory, fonts-Missing_Fonts, crypt32-CMS_Certificates, bcrypt-ECDHSecretAgreement, winex11-ime-check-thread-data _lol920_fix="false" # Fix for Assetto Corsa performance drop when HUD elements are displayed - https://bugs.winehq.org/show_bug.cgi?id=46955 _assettocorsa_hudperf_fix="false" # Fixes for Mortal Kombat 11 - Requires staging, _proton_fs_hack="false", native mfplat (win7) or WIP mfplat impl from Guy1524 (available in community-patches) and a different GPU driver than RADV # On Wine 5.2 (up to b1c748c8) and lower, it needs to be toogled on with the WINE_LOW_USER_SPACE_LIMIT=1 envvar _mk11_fix="true" # Disable staging PA patchset - Some people have had issues with the winepulse staging patchset, usually caused by pulseaudio misconfiguration (also called default configuration) _staging_pulse_disable="false" # Workaround for Final Fantasy XIV Launcher 404 error - Thanks @varris1 ! - Fixed by d535df42f665a097ec721b10fb49d7b18f899be9 (4.10) # Found to also enable the new launcher (that came with the 5.1 update) to work *with issues* _ffxivlauncher_fix="false" # Background music on King of Fighters 98 and 2002 is silent on Wine-staging and the `xactengine-initial` patchset was found to introduce the issue. Set to "true" to disable it as a workaround. _kof98_2002_BGM_fix="true" #### OTHER PATCHES #### # CSMT toggle patch - Corrects the CSMT toggle to be more logical - https://github.com/wine-staging/wine-staging/pull/60/commits/ad474559590a659b3df72ec9965de20c7f51c3a8 _CSMT_toggle="true" # GLSL toggle patch - Requires staging, ignored if legacy Gallium Nine is used. Gives the ability to use ARB shaders in winecfg, noticable stutter reduction with games using wined3d. # Enabling this option will interfere with Gallium HUD _GLSL_toggle="false" # Disable mime-types registering _MIME_NOPE="true" # Disable file-open-associations registering _FOAS_NOPE="true" # low latency alsa patch - Requires staging. Using this patch for something else than Osu! isn't recommended - https://blog.thepoon.fr/osuLinuxAudioLatency/ _lowlatency_audio="false" # launch with dedicated gpu desktop entry patch - makes an additional desktop entry which launches app with DRI_PRIME set to 1 (only for switchable graphics with mesa drivers) _launch_with_dedicated_gpu="true" # Partial fix for systray on plasma 5 - https://bugs.winehq.org/show_bug.cgi?id=38409 _plasma_systray_fix="false" # Enable STAGING_SHARED_MEMORY by default - Depends on staging - EA Origin Client seems to dislike that option - You can set this to false and enable the feature from env var instead (STAGING_SHARED_MEMORY=1) - https://wiki.winehq.org/Wine-Staging_Environment_Variables#Shared_Memory _stg_shared_mem_default="true" # Nvidia hate - Prevents building of nvapi/nvapi64, nvcuda, nvcuvid and nvencodeapi/nvencodeapi64 libs. Staging only _nvidia_hate="true" # Joshua Ashton's take on making wine dialogs and menus less win95-ish - https://github.com/Joshua-Ashton/wine/tree/wine-better-theme _use_josh_flat_theme="true" #### PROTON PATCHES #### # use CLOCK_MONOTONIC instead of CLOCK_MONOTONIC_RAW in ntdll/server - Increases performance in some CPU limited cases - https://github.com/ValveSoftware/wine/commit/eece6bb2e453e16e99ec61f75fb4152ab4a939d8 _clock_monotonic="true" # Bypass compositor in fullscreen modes - Typically reduces stuttering and improves performance - https://github.com/ValveSoftware/wine/commit/141ba5cf73029029a5a0bd2cdcfd5f9f9ab7ee7b _FS_bypass_compositor="true" # Proton Fullscreen patch - Requires 3.16+ for staging and 5.0+ for mainline - Allows resolution changes for fullscreen games without changing desktop resolution # You can optionally use nearest neighbour upscaling with the WINE_FULLSCREEN_INTEGER_SCALING envvar _proton_fs_hack="true" # Proton workarounds to prevent crashes on some mf functions _proton_mf_hacks="true" # Proton compatible rawinput patchset - Only effective when both _use_staging and _proton_fs_hack are set to "true" - Requires a tree containing 6d7828e8df68178ca662bc618f7598254afcfbe1 (4.20+) _proton_rawinput="true" # Enforce mscvrt Dlls to native then builtin - from Proton _msvcrt_nativebuiltin="true" # IMAGE_FILE_LARGE_ADDRESS_AWARE override - Will be force-disabled on lower than 3.19 - Useful for 32-bit games hitting address space limitations - Disable with WINE_LARGE_ADDRESS_AWARE=0 _large_address_aware="true" # Set the default wine version to win10 (instead of win7) - Necessary to enable d3d12 (for use with vkd3d) in some games _win10_default="true" # Other misc proton patches and hacks - Notably contains fixes for some native vk games (such as Doom Eternal) as well as Rockstar launcher # Also enables some winevulkan performance optimizations - https://github.com/Joshua-Ashton/proton-wine/tree/winevulkan-opt (fs hack) - https://github.com/Joshua-Ashton/wine/commits/winevulkan-opt-mainline (no fs hack) _protonify="true" #### LEGACY PATCHES - These are for older than current master - Some are enabled by default on such trees as they are considered harmless # pba - Enable with PBA_ENABLE=1 envvar, force-disabled on 3.19 & higher due to known broken state _use_pba="true" # The Sims 2 fix - On staging, disables wined3d-WINED3D_RS_COLORWRITEENABLE and wined3d-Indexed_Vertex_Blending patchsets - https://bugs.winehq.org/show_bug.cgi?id=8051 - Obsoleted by D9VK _sims2_fix="false" # Disable server-send_hardware_message staging patchset if found - Fixes FFXIV/Warframe/Crysis 3 (etc.) mouse jittering on 3.19 staging and lower. Will cause GTA V to freeze for a second or two on first keyboard input _server_send_hwmsg_disable="true" # Path of exile - Fixes DX11 mode not working - Doesn't seem to be needed anymore since Wine 4.1, supposedly since a game patch - https://bugs.winehq.org/show_bug.cgi?id=42695 _poe_fix="false" # Fix for Warframe Launcher failing to update itself - https://bugs.winehq.org/show_bug.cgi?id=33845 https://bugs.winehq.org/show_bug.cgi?id=45701 # https://www.winehq.org/pipermail/wine-devel/2018-October/133068.html - Merged in staging 8b930ae (4.6 devel) _warframelauncher_fix="true" # Overwatch mf crash fix from Guy1524 - https://bugs.winehq.org/show_bug.cgi?id=47385 - This will only apply against a wine tree missing b182ba882cfcce7b8769470f49f0fba216095c45, and ignored otherwise _OW_fix="true" # Python fix for <=3.18 (backported from zzhiyi's patches) - fix for python and needed for "The Sims 4" to work - replaces staging partial implementation - https://bugs.winehq.org/show_bug.cgi?id=44999 - This will only apply against a wine tree missing 3ebd2f0be30611e6cf00468c2980c5092f91b5b5, and ignored otherwise _318python_fix="true" # Workaround for F4SE/SkyrimSE Script Extender - This is a hack and could break stuff - https://github.com/hdmap/wine-hackery/tree/master/f4se - It was fixed upstream with 1aa963ef - 6672fc9d (4.13-devel) _f4skyrimse_fix="true" # steam crossover hack for store/web functionality - https://bugs.winehq.org/show_bug.cgi?id=39403 _steam_fix="true" # Fix crashes or perf issues related to high core count setups - Fixed in 4.0 - https://bugs.winehq.org/show_bug.cgi?id=45453 _highcorecount_fix="true" # Reverts c6b6935 due to https://bugs.winehq.org/show_bug.cgi?id=47752 - Fixed upstream with cb70373 _c6b6935_revert="true" # Native dotnet workaround for 4.13+ - https://bugs.winehq.org/show_bug.cgi?id=47633 _nativedotnet_fix="true" # USVFS (Mod Organizer 2's virtual filesystem) support patch - https://github.com/Tk-Glitch/PKGBUILDS/issues/300 - https://bugs.winehq.org/show_bug.cgi?id=47833 _usvfs_fix="true" # Faudio - Use the currently installed Faudio packages (both 32 and 64-bit) for xaudio2 - Fixes sound issues in various games. Disables xaudio2 & winepulse staging patchsets # Support is enabled by default in Wine 4.3+ as well as Wine-staging 4.13+, independently of this setting _use_faudio="true" # Revert moving various funcs to kernelbase & ntdll to fix some dll loading issues and ntdll crashes (with Cemu and Blizzard games notably) # Deprecated as of b7db0b5 - Force-enabled on proton-tkg when using older than b7db0b5 tree _kernelbase_reverts="false" # Update winevulkan to whatever version I have pushed last, til next time, for new shiny and tasty vk extensions support. Thanks dadドイツ人 ! _update_winevulkan="true" # Sets the value of an additional fake refresh rate in virtual desktop mode. Leave empty to keep default - Deprecated as of 6f305dd8 (5.14-devel) unless FS hack is also enabled _fake_refresh_rate="" #### USER PATCHES - See README in ./wine-tkg-userpatches dir for instructions #### # community patches - add patches (separated by a space) of your choice by name from the community-patches dir - https://github.com/Frogging-Family/community-patches # example: _community_patches="amdags.mypatch GNUTLShack.mypatch" #_community_patches="amdags.mypatch GNUTLShack.mypatch FinalFantasyXVHack.mypatch origin_downloads_e4ca5dbe_revert.mypatch MWSE_hack.mypatch blackops2_unhandled_exception_fix.mypatch NFSWLauncherfix.mypatch 0001-powershell-add-wrapper-for-powershell-using-Powershe.patch shell32-Move-file-SHFileOperation-allow-from-wildchar-move.mypatch" #_community_patches="amdags.mypatch FinalFantasyXVHack.mypatch origin_downloads_e4ca5dbe_revert.mypatch MWSE_hack.mypatch blackops2_unhandled_exception_fix.mypatch NFSWLauncherfix.mypatch 0001-powershell-add-wrapper-for-powershell-using-Powershe.patch shell32-Move-file-SHFileOperation-allow-from-wildchar-move.mypatch" #_community_patches="amdags.mypatch FinalFantasyXVHack.mypatch origin_downloads_e4ca5dbe_revert.mypatch MWSE_hack.mypatch blackops2_unhandled_exception_fix.mypatch NFSWLauncherfix.mypatch 0001-powershell-add-wrapper-for-powershell-using-Powershe.patch shell32-Move-file-SHFileOperation-allow-from-wildchar-move.mypatch gta4_gamepad_workaround.mypatch kernel32-implement-Windows-NT-style-GMEM_MOVEABLE-LM-no-staging.mypatch ID3DXEffectCompiler-partial-implementation.mypatch ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE.mypatch winex11-fs-no_above_state-nofshack.mypatch" _community_patches="amdags.mypatch winex11-fs-no_above_state-nofshack.mypatch" # Userpatches variable below must be set to true to enable userpatches support. _user_patches="true" # Apply all user patches without confirmation - !!! NOT RECOMMENDED !!! _user_patches_no_confirm="true" # Set to "true" to apply all hotfix patches without confirmation, to "ignore" to ignore all hotfix patches without confirmation # Default ("false") will prompt at build time _hotfixes_no_confirm="true"