User Tools

Site Tools


projects:copr:wine-staging-master

Information

Dependencies

sudo dnf install 'rpm-build'

Prepare Build Environment

Acquire SRPM

wget -O ~/'Downloads/wine-fc27.src.rpm' 'https://kojipkgs.fedoraproject.org//packages/wine/3.4/1.fc27/src/wine-3.4-1.fc27.src.rpm'

Extract SRPM

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

Spec Config

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

Enable Wine Staging

  • Change 0 to 1 specifically on the following line
  • If Fedora provides a new SRPM in the future that includes Staging, they'll likely do this, in which case this can be removed from here
%global compholio 0
%global compholio 1

Version

  • Version should always be master
Version:        master

Release

Release:        7%{?dist}

Sources

Wine

  • For Source10, there is no signing key for master archives; I'm pretty sure this doesn't matter that much so to make life easier, just hard-code this to whatever the SRPM includes already
Source0:        https://github.com/wine-mirror/wine/archive/master.tar.gz#/wine-%{version}.tar.gz
Source10:       http://downloads.sourceforge.net/wine/wine-3.3.tar.xz.sign

Wine Staging

Source900: https://github.com/wine-staging/wine-staging/archive/master.tar.gz#/wine-staging-%{version}.tar.gz

GCC Flags

Ofast

  • 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/'`"

Fixes

Vulkan ICD loader DLL

  • Remove this entire section from the spec file 3)
  • TODO: I had a way to verify if this was needed at some point by referencing some upstream code; re-figure that out
%if 0%{?compholio}
%{_libdir}/wine/vulkan-1.dll.so
%{_libdir}/wine/vulkan.dll.so
%endif

Other

  • TODO: Fix after tested
  • Add:
  %{_libdir}/wine/strmdll.dll.so
  • Remove:
%if 0%{?compholio}
%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so
%endif

Wine Source Packages

Remove Existing Archive

rm -fv ~/'rpmbuild/SOURCES/wine-'*'.tar.xz'

Wine

  • master
  • Check wine-staging commits to see when it was last rebased, and then compare to wine's commits
  • If the commit and staging rebase don't match, either blindly try Wine's master anyway, or manually download the tree from the last rebase Staging did
wget -O ~/'rpmbuild/SOURCES/wine-master.tar.gz' 'https://github.com/wine-mirror/wine/archive/master.tar.gz'

Wine Staging

  • master
wget -O ~/'rpmbuild/SOURCES/wine-staging-master.tar.gz' 'https://github.com/wine-staging/wine-staging/archive/master.tar.gz'

Build SRPM

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

Compile Locally

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

Cleanup

sudo dnf remove 'rpm-build'
rm -Rf ~/'rpmbuild' ~/'Downloads/wine'*'.src.rpm'
3)
the correct dll is already present a bit later in the spec file
projects/copr/wine-staging-master.txt · Last modified: 2018/03/21 10:14 by Sean Rhone