====== Information ======
* Wine
* Wine Staging
* sarnex/wine-d3d9-patches ((https://github.com/sarnex/wine-d3d9-patches))
* https://copr.fedorainfracloud.org/coprs/espionage724/wine-patches-gallium-nine
* Heavily based off of [[https://copr.fedorainfracloud.org/coprs/dyskette/wine-gallium-nine/|dyskette/wine-gallium-nine]]
====== Dependencies ======
****
sudo dnf install 'rpm-build'
====== Prepare Build Environment ======
===== Acquire SRPM =====
* Acquire SRPM from https://koji.fedoraproject.org/koji/packageinfo?packageID=4106
===== 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'
===== Release =====
* Default release is ''1%{?dist}''
* Increase ''1'' for future package builds
* Add ''.g9'' to the end to make ''1%{?dist}.g9''
* If ''Version'' changes, start back at release ''1''
* Check https://copr.fedorainfracloud.org/coprs/espionage724/wine-patches-gallium-nine/packages/
Release: 1%{?dist}.g9
===== Add Patches =====
* Add under ''Patch511'' ((around line 70, likely a source include for ''wine-cjk.patch''))
* Check all filenames to be sure they're still correct
# sarnex/wine-d3d9-patches
Patch600: staging-helper.patch
Patch601: wine-d3d9.patch
===== BuildRequires =====
==== mesa-libd3d-devel ====
* This happens around line ''163''
* Add after ''# Silverlight DRM-stuff needs XATTR enabled.'' block
# Gallium Nine
BuildRequires: mesa-libd3d-devel
=== Preview ===
BuildRequires: libva-devel
%endif # 0%{?wine_staging}
# Gallium Nine
BuildRequires: mesa-libd3d-devel
%if 0%{?fedora} >= 10 || 0%{?rhel} >= 6
BuildRequires: openal-soft-devel
==== mesa-libd3d(x86-32) ====
* This happens around line ''294''
* Add after ''libva(x86-32)'' require
Requires: mesa-libd3d(x86-32)
=== Preview ===
Requires: vulkan(x86-32)
%if 0%{?wine_staging}
Requires: libva(x86-32)
%endif
Requires: mesa-libd3d(x86-32)
%endif
==== mesa-libd3d(x86-64) ====
* This happens around line ''319''
* Add after ''libva(x86-64)'' require
Requires: mesa-libd3d(x86-64)
=== Preview ===
Requires: vulkan(x86-64)
%if 0%{?wine_staging}
Requires: libva(x86-64)
%endif
Requires: mesa-libd3d(x86-64)
%endif
===== Include Patches =====
* This happens around line ''704''
* Add above ''%build'' ((it should be in the ''%prep'' section, but at the very end, which happens to be above ''%build''))
# sarnex/wine-d3d9-patches
%patch600 -p1
%patch601 -p1
autoreconf -f
==== Preview ====
# fix parallelized build
sed -i -e 's!^loader server: libs/port libs/wine tools.*!& include!' Makefile.in
%endif # 0%{?wine_staging}
# sarnex/wine-d3d9-patches
%patch600 -p1
%patch601 -p1
autoreconf -f
%build
===== with-d3d9-nine Configure =====
* This happens around line ''735''
* Add to ''%configure'' section above ''--disable-tests''
--with-d3d9-nine \
==== Preview ====
%{?wine_staging: --with-xattr} \
--with-d3d9-nine \
--disable-tests
make %{?_smp_mflags} TARGETFLAGS=""
===== d3d9-nine.dll Library =====
* This happens around line ''1450''
* Add above ''%{_libdir}/wine/d3d10.dll.so''
%{_libdir}/wine/d3d9-nine.dll.so
==== Preview ====
%{_libdir}/wine/d2d1.dll.so
%{_libdir}/wine/d3d9-nine.dll.so
%{_libdir}/wine/d3d10.dll.so
%{_libdir}/wine/d3d10_1.dll.so
====== Build SRPM ======
* https://copr.fedorainfracloud.org/coprs/espionage724/wine-patches-gallium-nine/add_build_upload
rpmbuild -bs ~/'rpmbuild/SPECS/wine.spec' && sync
~/rpmbuild/SRPMS
====== Compile Locally ======
sudo dnf builddep ~/'rpmbuild/SRPMS/wine'*'.src.rpm' && sync
rpmbuild -ba ~/'rpmbuild/SPECS/wine.spec' && sync
====== Cleanup ======
sudo dnf remove 'rpm-build'
rm -Rf ~/'rpmbuild' ~/'Downloads/wine'*'.src.rpm'