User Tools

Site Tools


projects:copr:wine-staging-master

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:copr:wine-staging-master [2018/02/28 12:40] – [Wine] Sean Rhoneprojects:copr:wine-staging-master [2018/03/21 10:14] (current) Sean Rhone
Line 1: Line 1:
 +====== Information ======
  
 +  * Wine ((https://github.com/wine-mirror/wine))
 +  * Wine Staging ((https://github.com/wine-staging/wine-staging))
 +
 +  * https://copr.fedorainfracloud.org/coprs/espionage724/wine-staging-master
 +
 +====== 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'' 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''
 +
 +<code>
 +Version:        master</code>
 +
 +===== Release =====
 +
 +  * Default release format is ''1%{?dist}''
 +  * Increase ''1'' for future package builds
 +  * Since this is ''master'' and no newer ''Version'' is expected, this number should continue increasing forever
 +  * Check https://copr.fedorainfracloud.org/coprs/espionage724/wine-staging-master/packages/
 +
 +<code>
 +Release:        7%{?dist}</code>
 +
 +===== 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
 +
 +<code>
 +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</code>
 +
 +==== Wine Staging ====
 +
 +****
 +
 +<code>
 +Source900: https://github.com/wine-staging/wine-staging/archive/master.tar.gz#/wine-staging-%{version}.tar.gz</code>
 +
 +===== 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 ((the correct dll is already present a bit later in the spec file))
 +  * TODO: I had a way to verify if this was needed at some point by referencing some upstream code; re-figure that out
 +
 +<code>
 +%if 0%{?compholio}
 +%{_libdir}/wine/vulkan-1.dll.so
 +%{_libdir}/wine/vulkan.dll.so
 +%endif</code>
 +
 +==== Other ====
 +
 +  * TODO: Fix after tested
 +
 +  * Add:
 +
 +    %{_libdir}/wine/strmdll.dll.so
 +
 +  * Remove:
 +
 +<code>
 +%if 0%{?compholio}
 +%{_libdir}/wine/api-ms-win-appmodel-runtime-l1-1-1.dll.so
 +%endif</code>
 +
 +====== Wine Source Packages ======
 +
 +===== Remove Existing Archive =====
 +
 +****
 +
 +  rm -fv ~/'rpmbuild/SOURCES/wine-'*'.tar.xz'
 +
 +===== Wine =====
 +
 +  * master
 +
 +  * Check [[https://github.com/wine-staging/wine-staging/commits/master|wine-staging commits]] to see when it was last rebased, and then compare to [[https://github.com/wine-mirror/wine/commits/master|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 ======
 +
 +  * https://copr.fedorainfracloud.org/coprs/espionage724/wine-staging-master/add_build_upload
 +
 +  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'