diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..900c0e7
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,5 @@
+
+ nine
+ staging
+ staging-nine
+
diff --git a/_service b/_service
new file mode 100644
index 0000000..7269078
--- /dev/null
+++ b/_service
@@ -0,0 +1,21 @@
+
+
+ @PARENT_TAG@
+ v(.*)
+ https://github.com/wine-compholio/wine-staging.git
+ refs/tags/v2.21
+ v*.*
+ git
+
+
+ @PARENT_TAG@
+ wined3d9(.*)
+ https://github.com/sarnex/wine-d3d9-patches.git
+ refs/tags/wine-d3d9-2.20
+ git
+
+
+ *.tar
+ xz
+
+
diff --git a/wine-d3d9-patches-2.20.tar.xz b/wine-d3d9-patches-2.20.tar.xz
new file mode 100644
index 0000000..4794ab0
--- /dev/null
+++ b/wine-d3d9-patches-2.20.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:33e42128cce101d409b16c893d7e52a80f6797d860a29d90a259199e3ba6a6b0
+size 40848
diff --git a/wine-staging-2.21.tar.xz b/wine-staging-2.21.tar.xz
new file mode 100644
index 0000000..c4e7be6
--- /dev/null
+++ b/wine-staging-2.21.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5df468532ada7ff8713cf31a186f80e19cdf16fb913974a8989c2c86c3428373
+size 7730272
diff --git a/wine.changes b/wine.changes
index 16c9a69..dc07d35 100644
--- a/wine.changes
+++ b/wine.changes
@@ -1,3 +1,15 @@
+-------------------------------------------------------------------
+Mon Nov 13 16:23:51 UTC 2017 - jimmy@boombatower.com
+
+- switched to _multibuild packaging. include staging
+ and staging-nine variants.
+
+-------------------------------------------------------------------
+Mon Nov 13 15:05:05 UTC 2017 - meissner@suse.com
+
+- recommend Mesa-GL1-32bit in baselibs, so we get opengl support.
+ (it is not directly required)
+
-------------------------------------------------------------------
Sat Nov 11 14:56:58 UTC 2017 - aavindraa@gmail.com
diff --git a/wine.spec b/wine.spec
index a3190da..db54687 100644
--- a/wine.spec
+++ b/wine.spec
@@ -16,7 +16,25 @@
#
+%define projectname wine
+%global flavor @BUILD_FLAVOR@%nil
+%define staging 0
+%define nine 0
+
+%if "%flavor" == "staging" || "%flavor" == "staging-nine"
+%define staging 1
+%endif
+%if "%flavor" == "nine" || "%flavor" == "staging-nine"
+%define nine 1
+%endif
+
+%if "%{flavor}" != ""
+Name: wine%{?flavor:-}%{?flavor}
+Provides: wine = %{version}
+%else
Name: wine
+%endif
+Conflicts: otherproviders(wine)
BuildRequires: Mesa-devel
BuildRequires: alsa-devel
BuildRequires: autoconf
@@ -68,9 +86,9 @@ Summary: An MS Windows Emulator
License: LGPL-2.1+
Group: System/Emulators/PC
Url: http://www.winehq.org/
-Source0: http://downloads.sourceforge.net/wine/wine-%{realver}.tar.xz
+Source0: http://downloads.sourceforge.net/wine/%{projectname}-%{realver}.tar.xz
Source41: wine.keyring
-Source42: http://downloads.sourceforge.net/wine/%{name}-%{realver}.tar.xz.sign
+Source42: http://downloads.sourceforge.net/wine/%{projectname}-%{realver}.tar.xz.sign
Source1: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
Source11: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
Source2: http://kegel.com/wine/wisotool
@@ -98,6 +116,22 @@ Recommends: cabextract
Recommends: unzip
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %{ix86} x86_64 ppc %arm
+%if %{staging}
+# upstream patch target version
+%define staging_version 2.21
+Source100: wine-staging-%{staging_version}.tar.xz
+BuildRequires: gtk3-devel
+BuildRequires: libOSMesa-devel
+BuildRequires: libva-devel
+%endif
+%if %{nine}
+# upstream patch target version
+%define nine_version 2.20
+BuildRequires: Mesa-libd3d-devel
+BuildRequires: dri2proto-devel
+BuildRequires: libOSMesa-devel
+Source110: wine-d3d9-patches-%{nine_version}.tar.xz
+%endif
%description
Wine is a compatibility layer capable of running Windows
@@ -122,6 +156,10 @@ running 'winecfg'.
%package devel
Summary: Files for Wine development
Group: Development/Libraries/C and C++
+%if "%{flavor}" != ""
+Provides: wine-devel = %{version}
+%endif
+Conflicts: otherproviders(wine-devel)
%description devel
This RPM contains the header files and development tools for the WINE
@@ -133,6 +171,21 @@ libraries.
#
cp %{S:3} .
#
+%if %{staging}
+# apply wine staging patch set on top of the wine release.
+tar xf %{SOURCE100}
+bash ./wine-staging-%staging_version/patches/patchinstall.sh --all
+%endif
+
+%if %{nine}
+tar xf %{SOURCE110}
+%if %{staging}
+patch --no-backup-if-mismatch -p1 -i ./wine-d3d9-patches-%nine_version/staging-helper.patch
+%else
+patch --no-backup-if-mismatch -p1 -i ./wine-d3d9-patches-%nine_version/d3d9-helper.patch
+%endif
+patch --no-backup-if-mismatch -p1 -i ./wine-d3d9-patches-%nine_version/wine-d3d9.patch
+%endif
%build
cat VERSION
@@ -142,6 +195,9 @@ export WIDL_TIME_OVERRIDE="0" # for reproducible builds.
export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fomit-frame-pointer//'`
%endif
+%if %{staging} || %{nine}
+autoreconf -i -f
+%endif
# keep just for susepatches with configure changes
#autoconf
#autoheader -I include
@@ -150,6 +206,9 @@ CFLAGS="$RPM_OPT_FLAGS" \
--with-x \
%ifarch x86_64
--enable-win64 \
+%endif
+%if %{nine}
+ --with-d3d9-nine \
%endif
--verbose
@@ -165,6 +224,7 @@ grep SONAME_ config.log
grep SONAME_ config.log|grep -v 'so"'|sed -e 's/^.*\(".*"\).*$/ requires \1/;'|sort -u >>%SOURCE7
echo " recommends \"alsa-plugins-pulse-32bit\"" >> %SOURCE7
echo " recommends \"alsa-plugins-32bit\"" >> %SOURCE7
+echo " recommends \"Mesa-libGL1-32bit\"" >> %SOURCE7
%if 0%{?suse_version} >= 1330
echo " obsoletes \"wine-mp3-32bit\"" >> %SOURCE7
%else
@@ -173,8 +233,16 @@ echo " recommends \"wine-mp3-32bit\"" >> %SOURCE7
%if 0%{?suse_version} >= 1310
echo " requires \"p11-kit-32bit\"" >> %SOURCE7
%endif
+%if "%{flavor}" != ""
+echo " provides \"wine- = \"" >> %SOURCE7
+%endif
+echo " conflicts \"otherproviders(wine-)\"" >> %SOURCE7
echo "%name-devel" >> %SOURCE7
echo " +^/usr/lib/wine/.*def" >> %SOURCE7
+%if "%{flavor}" != ""
+echo " provides \"wine-devel- = \"" >> %SOURCE7
+%endif
+echo " conflicts \"otherproviders(wine-devel-)\"" >> %SOURCE7
cat %SOURCE7
%endif
make %{?_smp_mflags} all
@@ -229,7 +297,7 @@ cd ubuntuwine
cd ..
# find the implicit dependencies
-%define winedir %_builddir/%name-%realver/
+%define winedir %_builddir/%projectname-%realver
cat >%winedir/my-find-requires.sh < "$W_TMP"/_register-font.reg <<_EOF_
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Fonts]
-"$font"="$file"
+"$W_font"="$W_file"
_EOF_
w_try_regedit "$W_TMP_WIN"\\_register-font.reg
# shellcheck disable=SC1037
- cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$-2.reg
+ w_backup_reg_file "$W_TMP"/_register-font.reg
+
+ unset W_file W_font
}
w_register_font_replacement()
@@ -2788,6 +2801,9 @@ REGEDIT4
"$_W_alias"="$_W_font"
_EOF_
w_try_regedit "$W_TMP_WIN"\\_register-font-replacements.reg
+
+ w_backup_reg_file "$W_TMP"/_register-font-replacements.reg
+
unset _W_alias _W_font
}
@@ -4743,6 +4759,11 @@ winetricks_init()
USERNAME="$LOGNAME"
fi
+ # Running Wine as root is (generally) bad, mmkay?
+ if [ "$(id -u)" = 0 ]; then
+ w_warn "Running Wine/winetricks as root is highly discouraged. See https://wiki.winehq.org/FAQ#Should_I_run_Wine_as_root.3F"
+ fi
+
# Ephemeral files for this run
WINETRICKS_WORKDIR="$W_TMP_EARLY/w.$LOGNAME.$$"
test "$W_OPT_NOCLEAN" = 1 || rm -rf "$WINETRICKS_WORKDIR"
@@ -6309,7 +6330,7 @@ w_metadata dxsdk_jun2010 dlls \
load_dxsdk_jun2010()
{
- w_download https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe 11a0ddeb293040f8b99eeb1bdf6197ae1b26fdb74c036e5717d8e45db9c1576e
+ w_download https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe 9f818a977c32b254af5d649a4cec269ed8762f8a49ae67a9f01101a7237ae61a
# Without dotnet20, install aborts halfway through
w_call dotnet20