User Tools

Site Tools




sudo dnf install 'rpm-build'

Prepare Build Environment

Acquire SRPM

2.0 F25

  • F25 is the latest version of Fedora this SRPM is available for; works fine on F27
wget -O ~/'Downloads/wine-2.0-1.fc25.src.rpm' ''

Extract SRPM

rm -Rf ~/'rpmbuild' && rpm -ivh ~/'Downloads/wine'*'.src.rpm' && rm -fv ~/'Downloads/wine'*'.src.rpm' && sync

Download Patches


  • Last commit at time of writing in laino/wine-patches is 3ffdac0
  • Between that last commit and cbadc2, the only patch file that changes is 0007
  • Thus, anything beyond commit cbadc2 is incompatible with Wine Staging 2.0
wget -O '/tmp/' '' && unzip '/tmp/wine-patches-laino-cbadc2' -d '/tmp' && mv '/tmp/wine-patches-cbadc28b353d235a29945e2502b0622b8116e2c5/'*'.patch' ~/'rpmbuild/SOURCES' && cd ~/'rpmbuild/SOURCES' && ls '00'*'.patch' && cd ~ && rm -Rfv '/tmp/' '/tmp/wine-patches-cbadc28b353d235a29945e2502b0622b8116e2c5' && sync

Spec Config

gio open ~/'rpmbuild/SPECS/wine.spec'


  • F27 has wine-mono 4.7.1
  • Change 4.6.4 to 4.7.1
%global winemono  4.7.1


Release:        1%{?dist}.laino

Add Patches

  • Add under Patch511: wine-cjk.patch
Patch600:       0001-ntdll-improve-heap-allocation-performance.patch
Patch601:       0002-ntdll-heap.c-align-everything-to-64-byte-to-reduce-f.patch
Patch602:       0003-wine-list.h-linked-list-cache-line-prefetching.patch
Patch603:       0004-ntdll-heap.c-freelist_balance-prefetch-next-entry-ca.patch
Patch604:       0005-oleaut32-typelib.c-fix-cursor2-having-the-wrong-type.patch
Patch605:       0006-Ensure-16-byte-alignment-of-data.patch
Patch606:       0007-wined3d-use-SwitchToThread-and-calls-to-select-in-bu.patch

Apply Patches

  • Add in-between the make -C patches DESTDIR and # fix parallelized build lines
  • The undo patch is for laino's patch 0001-ntdll-improve-heap-allocation-performance 5)
# undo ntdll-Heap_FreeLists
patch -p1 -R < patches/ntdll-Heap_FreeLists/0001-ntdll-Improve-heap-allocation-performance-by-using-m.patch

# apply laino wine-patches
%patch600 -p1
%patch601 -p1
%patch602 -p1
%patch603 -p1
%patch604 -p1
%patch605 -p1
%patch606 -p1

GCC Flags


  • Find the following line under %build
  • Change O1 to Ofast
export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-O1/'`"
export TEMP_CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-O2/-Ofast/'`"

Build SRPM

rpmbuild -bs ~/'rpmbuild/SPECS/wine.spec' && sync

Compile Locally

sudo dnf builddep ~/'Downloads/wine'*'.src.rpm' && sync
rpmbuild -ba ~/'rpmbuild/SPECS/wine.spec' && sync


sudo dnf remove 'rpm-build'
rm -Rf ~/'rpmbuild' ~/'Downloads/wine'*'.src.rpm'
projects/copr/wine-patches-laino.txt · Last modified: 2018/03/02 04:34 by Sean Rhone