Convert Figma logo to code with AI

Frogging-Family logowine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds

1,031
195
1,031
272

Top Related Projects

My custom build of wine, made to use with lutris. Built with lutris's buildbot.

26,982

Compatibility tool for Steam Play based on Wine and additional components

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.

Quick Overview

Wine-tkg-git is a custom Wine build project maintained by the Frogging-Family community. It aims to provide an enhanced version of Wine with various patches, optimizations, and customization options for improved compatibility and performance when running Windows applications on Linux and other Unix-like systems.

Pros

  • Includes numerous patches and optimizations not found in standard Wine builds
  • Offers extensive customization options through build configuration files
  • Regularly updated with the latest Wine developments and community contributions
  • Provides improved compatibility for many Windows games and applications

Cons

  • Requires manual compilation, which can be time-consuming and complex for beginners
  • May introduce instability or compatibility issues not present in official Wine releases
  • Requires more system resources due to additional features and optimizations
  • Documentation can be overwhelming for new users due to the many configuration options

Getting Started

To build wine-tkg-git:

  1. Clone the repository:

    git clone https://github.com/Frogging-Family/wine-tkg-git.git
    cd wine-tkg-git
    
  2. Copy the sample configuration file:

    cp customization.cfg.example customization.cfg
    
  3. Edit customization.cfg to set your desired options

  4. Run the build script:

    ./non-makepkg-build.sh
    
  5. Wait for the compilation to complete (this may take a while)

  6. The built Wine package will be available in the wine-tkg-git/non-makepkg-builds directory

Note: Detailed instructions and additional information can be found in the project's README and wiki pages on GitHub.

Competitor Comparisons

My custom build of wine, made to use with lutris. Built with lutris's buildbot.

Pros of wine-ge-custom

  • Pre-built binaries available, making it easier for users to install and use
  • More frequent updates and releases, providing quicker access to new features and fixes
  • Specifically optimized for gaming, with a focus on compatibility with popular game platforms like Steam

Cons of wine-ge-custom

  • Less customizable than wine-tkg-git, as it doesn't offer the same level of build options
  • May not include some of the more experimental patches found in wine-tkg-git
  • Potentially less suitable for non-gaming applications due to its gaming-centric focus

Code Comparison

wine-ge-custom:

#!/bin/bash
set -e
export WINEDEBUG=-all
export DXVK_LOG_LEVEL=none
export DXVK_STATE_CACHE=0

wine-tkg-git:

#!/bin/bash
_NUKR="false"
_NOINITIALPROMPT="false"
_NOREVERTS="false"
_NOPREPS="false"
_NOPATCHMSG="false"

The code snippets show differences in initial setup and environment variables, reflecting the different focuses of each project. wine-ge-custom emphasizes gaming-specific settings, while wine-tkg-git provides more customization options.

26,982

Compatibility tool for Steam Play based on Wine and additional components

Pros of Proton

  • Officially supported by Valve for Steam games
  • Includes additional compatibility layers like DXVK and VKD3D
  • Regular updates and optimizations for popular games

Cons of Proton

  • Less customizable than wine-tkg-git
  • Primarily focused on Steam games, may not be optimal for non-Steam applications
  • Limited control over Wine version and patches

Code Comparison

While both projects are based on Wine, their approaches to implementation differ:

Proton:

#!/usr/bin/env python3

from __future__ import print_function

import os
import sys
import subprocess

wine-tkg-git:

#!/bin/bash

_where="$PWD"
srcdir="$_where"

_pkgname="wine-tkg-git"
pkgdesc="Wine - Custom Wine build with patches"

The Proton codebase uses Python for its main script, while wine-tkg-git primarily uses Bash scripting. This reflects their different focuses, with Proton aiming for a more integrated approach within the Steam ecosystem, and wine-tkg-git offering greater flexibility for custom builds.

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.

Pros of protontricks

  • Specifically designed for managing Proton prefixes and Windows games on Linux
  • Simpler to use for Proton-specific tasks
  • Integrates well with Steam and Proton environments

Cons of protontricks

  • Limited to Proton-specific functionality
  • Less customizable compared to wine-tkg-git
  • May not support advanced Wine configuration options

Code Comparison

protontricks:

def run_command(command, env=None, cwd=None):
    process = subprocess.Popen(
        command, env=env, cwd=cwd,
        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = process.communicate()
    return process.returncode, stdout, stderr

wine-tkg-git:

_proton_tkg() {
  _pkgname="proton_tkg"
  pkgdesc="Valve's Proton with Wine-tkg-git patches"
  depends+=('steam')
  provides+=('proton')
  conflicts+=('proton')
}

The code snippets show that protontricks focuses on running commands within the Proton environment, while wine-tkg-git includes functionality for building custom Proton packages with Wine patches. This reflects their different purposes: protontricks for managing Proton prefixes, and wine-tkg-git for creating customized Wine/Proton builds.

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.

Pros of vkd3d-proton

  • Focused specifically on DirectX 12 to Vulkan translation
  • Optimized for use with Proton and Steam Play
  • Actively maintained by Valve developers

Cons of vkd3d-proton

  • More limited scope compared to wine-tkg-git's full Wine implementation
  • May require additional components for full Windows game compatibility
  • Less customization options for end users

Code Comparison

vkd3d-proton (DirectX 12 to Vulkan translation):

VkResult vkd3d_create_instance(const struct vkd3d_instance_create_info *create_info,
                               struct vkd3d_instance **instance)
{
    struct vkd3d_instance *object;
    VkResult vr;
    // ... (implementation details)
}

wine-tkg-git (Wine implementation):

NTSTATUS WINAPI NtCreateFile(PHANDLE FileHandle, ACCESS_MASK DesiredAccess,
                             POBJECT_ATTRIBUTES ObjectAttributes, PIO_STATUS_BLOCK IoStatusBlock,
                             PLARGE_INTEGER AllocationSize, ULONG FileAttributes, ULONG ShareAccess,
                             ULONG CreateDisposition, ULONG CreateOptions, PVOID EaBuffer, ULONG EaLength)
{
    // ... (implementation details)
}

The code snippets demonstrate the different focus areas of each project. vkd3d-proton deals with Vulkan instance creation for DirectX 12 translation, while wine-tkg-git implements Windows API functions like file creation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Wine to rule them all !

You must be logged in to GitHub in order to download Wine or Proton nightly builds.

Wine nightly builds

  • wine-staging patchset applied
WineArch LinuxFedoraUbuntu
Valve WineExp Bleeding Edge Arch LinuxExp Bleeding Edge Other distro

The Exp Bleeding Edge Other distro versions are built on Ubuntu latest, which should work fine on most distros not using years old packages

Proton nightly builds

  • wine-staging patchset applied
  • built on Arch current, making glibc 2.36 a requirement
ProtonValve Exp Bleeding EdgeWine Master

(drop the extracted folder in /$HOME/.steam/root/compatibilitytools.d/ or, for Ubuntu/Debian based, the /$HOME/.steam/compatibilitytools.d/ dir)

PLEASE DO NOT REPORT BUGS ENCOUNTERED WITH THIS AT WINEHQ OR VALVESOFTWARE, REPORT HERE INSTEAD !

Wine-tkg is a build-system aiming at easier custom wine builds creation. You can now easily get the "plain wine + pba + steam fix" build you've been dreaming about!

It can also make custom Proton builds with its wrapping script: https://github.com/Frogging-Family/wine-tkg-git/tree/master/proton-tkg

By default, it'll pull current wine/wine-staging git versions. You can target a specific release or commit in the .cfg if needed.

A comfortable selection of patches is available to you, with some of them being enabled by default for your convenience (see this sample config file for the full list and details)

An ever evolving selection of staging, experimental and/or hacky patches are also available in the community-patches

Can be built with your own patches - See README in wine-tkg-git/wine-tkg-userpatches for instructions

Generated Wine-tkg sources (staging-based):

Wine : https://github.com/wine-mirror/wine

Wine-staging : https://github.com/wine-staging/wine-staging

Wine esync : https://github.com/zfigura/wine/tree/esync

Wine fsync : https://github.com/zfigura/wine/tree/fsync

Proton : https://github.com/ValveSoftware/Proton

Wine-pba (Only working correctly up to 3.18 - Force disabled on newer wine bases due to regressions) : https://github.com/acomminos/wine-pba

Thanks to @Firerat and @bobwya for their rebase work :

For Gallium 9 support, use https://github.com/iXit/wine-nine-standalone (available from winetricks and AUR) - Legacy nine support can still be turned on if you're building a 4.1 base or older.