projects:repos:wine-staging-master_copr
Table of Contents
Information
Dependencies
sudo dnf install 'rpm-build'
Prepare Build Environment
Acquire SRPM
- Acquire SRPM from https://koji.fedoraproject.org/koji/packageinfo?packageID=4106
- Currently
wine-3.4-1.fc27
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
to1
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 bemaster
Version: master
Release
- Default release format is
1%{?dist}
- Increase
1
for future package builds - Since this is
master
and no newerVersion
is expected, this number should continue increasing forever
Release: 7%{?dist}
Sources
Wine
- For
Source10
, there is no signing key formaster
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
toOfast
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
/srv/www/wiki/data/pages/projects/repos/wine-staging-master_copr.txt · Last modified: by 127.0.0.1