summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO58
-rw-r--r--[-rwxr-xr-x]30-win32-aliases.conf0
-rw-r--r--[-rwxr-xr-x]PKGBUILD131
-rw-r--r--nine-1.7.52.patch (renamed from nine-1.7.51.patch)6
-rw-r--r--wbemprox_query.patch136
-rw-r--r--[-rwxr-xr-x]wine.install0
6 files changed, 239 insertions, 92 deletions
diff --git a/.SRCINFO b/.SRCINFO
index fdb98223b6c6..bdc950f1d053 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
pkgbase = wine-gaming-nine
- pkgdesc = Based off wine-staging-d3dadapter with a few more hacks
- pkgver = 1.7.51
- pkgrel = 2
- url = http://www.winehq.com
+ pkgdesc = Based off wine-staging, including the gallium-nine patches and some more hacks
+ pkgver = 1.7.52
+ pkgrel = 1
+ url = http://www.wine-staging.com
install = wine.install
arch = i686
arch = x86_64
@@ -30,12 +30,8 @@ pkgbase = wine-gaming-nine
makedepends = lib32-libxmu
makedepends = libxxf86vm
makedepends = lib32-libxxf86vm
- makedepends = libxml2
- makedepends = lib32-libxml2
makedepends = libldap
makedepends = lib32-libldap
- makedepends = lcms2
- makedepends = lib32-lcms2
makedepends = mpg123
makedepends = lib32-mpg123
makedepends = openal
@@ -48,14 +44,26 @@ pkgbase = wine-gaming-nine
makedepends = lib32-libxcomposite
makedepends = mesa
makedepends = lib32-mesa
+ makedepends = libgl
+ makedepends = lib32-libgl
makedepends = libcl
makedepends = lib32-libcl
makedepends = libxslt
makedepends = lib32-libxslt
+ makedepends = libpulse
+ makedepends = lib32-libpulse
+ makedepends = libva
+ makedepends = lib32-libva
makedepends = samba
makedepends = opencl-headers
+ makedepends = attr
+ makedepends = lib32-attr
makedepends = fontconfig
makedepends = lib32-fontconfig
+ makedepends = lcms2
+ makedepends = lib32-lcms2
+ makedepends = libxml2
+ makedepends = lib32-libxml2
makedepends = libxcursor
makedepends = lib32-libxcursor
makedepends = libxrandr
@@ -85,10 +93,6 @@ pkgbase = wine-gaming-nine
optdepends = lib32-libldap
optdepends = gnutls
optdepends = lib32-gnutls
- optdepends = lcms2
- optdepends = lib32-lcms2
- optdepends = libxml2
- optdepends = lib32-libxml2
optdepends = mpg123
optdepends = lib32-mpg123
optdepends = openal
@@ -113,38 +117,44 @@ pkgbase = wine-gaming-nine
optdepends = lib32-libcl
optdepends = libxslt
optdepends = lib32-libxslt
+ optdepends = libva
+ optdepends = lib32-libva
optdepends = cups
optdepends = samba
optdepends = dosbox
- provides = bin32-wine=1.7.51
- provides = wine-wow64=1.7.51
- provides = wine=1.7.51
+ provides = bin32-wine=1.7.52
+ provides = wine=1.7.52
+ provides = wine-wow64=1.7.52
conflicts = bin32-wine
- conflicts = wine-wow64
conflicts = wine
- replaces = bin32-wine
- replaces = wine
+ conflicts = wine-wow64
options = staticlibs
- source = https://github.com/wine-mirror/wine/archive/wine-1.7.51.tar.gz
- source = https://github.com/wine-compholio/wine-staging/archive/v1.7.51.tar.gz
+ source = https://github.com/wine-compholio/wine-patched/archive/staging-1.7.52.tar.gz
source = keybindings.patch
source = raw.patch
source = mipmap.patch
- source = nine-1.7.51.patch
+ source = nine-1.7.52.patch
source = heap_perf.patch
+ source = wbemprox_query.patch
source = 30-win32-aliases.conf
- sha1sums = f75d41bcc6511c7641d6633ffeb23a23aeb720ef
- sha1sums = 9bead94e8a5c7e876f06e32f5119cd451ea3a5ad
+ sha1sums = 843245d4736db4ad1449f00d747a2f7912680c59
sha1sums = f3febb8836f38320742a546c667106608d4c4395
sha1sums = 57aa524e4e760c907c2acef287f5569e78ea85b0
sha1sums = c3096fccbac23e520d03f592db7f23350cbbc0bc
- sha1sums = ca80253e74ee6d5cb5d1b54b6445f228d376aab4
+ sha1sums = 14c63750628866e2f3b29a6d5a4ed11efb67b442
sha1sums = 0f4ac455436d5714a2cf0b537ed25f4fa5c1a7fd
+ sha1sums = 20da841265d5b16dba02246f158ad4f54f13b775
sha1sums = 023a5c901c6a091c56e76b6a62d141d87cce9fdb
pkgname = wine-gaming-nine
+ depends = attr
+ depends = lib32-attr
depends = fontconfig
depends = lib32-fontconfig
+ depends = lcms2
+ depends = lib32-lcms2
+ depends = libxml2
+ depends = lib32-libxml2
depends = libxcursor
depends = lib32-libxcursor
depends = libxrandr
diff --git a/30-win32-aliases.conf b/30-win32-aliases.conf
index 99ae1f7b83a5..99ae1f7b83a5 100755..100644
--- a/30-win32-aliases.conf
+++ b/30-win32-aliases.conf
diff --git a/PKGBUILD b/PKGBUILD
index 346d79ed61b1..5da7179e0eac 100755..100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,45 +1,49 @@
# Maintainer: Pierre Franco <pierre dot franco at ensimag dot grenoble dash inp dot fr>
-# Based on wine-staging-d3dadapter PKGBUILD
+# Based on wine-staging PKGBUILD
#Additional patches:
+# -Raw input fix
# -Mip-Map fix (see https://bugs.winehq.org/show_bug.cgi?id=34480 )
# -Keybind patch reversion
# -Heap allocation perfomance improvement patch
-
+# -Wbemprox videocontroller query fix (see https://bugs.winehq.org/show_bug.cgi?id=38879 )
pkgname=wine-gaming-nine
-pkgver=1.7.51
-pkgrel=2
+pkgver=1.7.52
+pkgrel=1
-_basename=wine
+_pkgbasever=${pkgver/rc/-rc}
+_winesrcdir="wine-patched-staging-$pkgver"
-source=(https://github.com/wine-mirror/wine/archive/wine-$pkgver.tar.gz
- https://github.com/wine-compholio/wine-staging/archive/v$pkgver.tar.gz
+source=("https://github.com/wine-compholio/wine-patched/archive/staging-$pkgver.tar.gz"
keybindings.patch
raw.patch
mipmap.patch
- nine-1.7.51.patch
+ nine-1.7.52.patch
heap_perf.patch
+ wbemprox_query.patch
30-win32-aliases.conf)
-
-sha1sums=('f75d41bcc6511c7641d6633ffeb23a23aeb720ef'
- '9bead94e8a5c7e876f06e32f5119cd451ea3a5ad'
+sha1sums=('843245d4736db4ad1449f00d747a2f7912680c59'
'f3febb8836f38320742a546c667106608d4c4395'
'57aa524e4e760c907c2acef287f5569e78ea85b0'
'c3096fccbac23e520d03f592db7f23350cbbc0bc'
- 'ca80253e74ee6d5cb5d1b54b6445f228d376aab4'
+ '14c63750628866e2f3b29a6d5a4ed11efb67b442'
'0f4ac455436d5714a2cf0b537ed25f4fa5c1a7fd'
+ '20da841265d5b16dba02246f158ad4f54f13b775'
'023a5c901c6a091c56e76b6a62d141d87cce9fdb')
-pkgdesc="Based off wine-staging-d3dadapter with a few more hacks"
-url="http://www.winehq.com"
+pkgdesc="Based off wine-staging, including the gallium-nine patches and some more hacks"
+url="http://www.wine-staging.com"
arch=(i686 x86_64)
options=(staticlibs)
license=(LGPL)
install=wine.install
_depends=(
+ attr lib32-attr
fontconfig lib32-fontconfig
+ lcms2 lib32-lcms2
+ libxml2 lib32-libxml2
libxcursor lib32-libxcursor
libxrandr lib32-libxrandr
libxdamage lib32-libxdamage
@@ -62,29 +66,28 @@ makedepends=(autoconf ncurses bison perl fontforge flex prelink
libxcomposite lib32-libxcomposite
libxmu lib32-libxmu
libxxf86vm lib32-libxxf86vm
- libxml2 lib32-libxml2
libldap lib32-libldap
- lcms2 lib32-lcms2
mpg123 lib32-mpg123
openal lib32-openal
v4l-utils lib32-v4l-utils
alsa-lib lib32-alsa-lib
libxcomposite lib32-libxcomposite
mesa lib32-mesa
- #mesa-libgl lib32-mesa-libgl
+ libgl lib32-libgl
libcl lib32-libcl
libxslt lib32-libxslt
+ libpulse lib32-libpulse
+ libva lib32-libva
samba
opencl-headers
)
-
+# gtk3 lib32-gtk3
+
optdepends=(
giflib lib32-giflib
libpng lib32-libpng
libldap lib32-libldap
gnutls lib32-gnutls
- lcms2 lib32-lcms2
- libxml2 lib32-libxml2
mpg123 lib32-mpg123
openal lib32-openal
v4l-utils lib32-v4l-utils
@@ -97,9 +100,11 @@ optdepends=(
ncurses lib32-ncurses
libcl lib32-libcl
libxslt lib32-libxslt
+ libva lib32-libva
cups
samba dosbox
)
+# gtk3 lib32-gtk3
if [[ $CARCH == i686 ]]; then
# Strip lib32 etc. on i686
@@ -109,34 +114,29 @@ if [[ $CARCH == i686 ]]; then
optdepends=(${optdepends[@]/*32-*/})
provides=("wine=$pkgver")
conflicts=('wine')
- replaces=('wine')
else
makedepends=(${makedepends[@]} ${_depends[@]})
- provides=("bin32-wine=$pkgver" "wine-wow64=$pkgver" "wine=$pkgver")
- conflicts=('bin32-wine' 'wine-wow64' 'wine')
- replaces=('bin32-wine' "wine")
+ provides=("bin32-wine=$pkgver" "wine=$pkgver" "wine-wow64=$pkgver")
+ conflicts=('bin32-wine' 'wine' 'wine-wow64')
fi
prepare()
{
- #Patch source tree
- cd "$srcdir/wine-staging-$pkgver/patches"
-
- ./patchinstall.sh DESTDIR="$srcdir/wine-wine-$pkgver" --all
-
- cd "$srcdir/wine-wine-$pkgver"
- patch -p1 < ../nine-1.7.51.patch
- patch -p1 -R < ../keybindings.patch
+ cd wine-patched-staging-$pkgver
+
+ patch -p1 < ../nine-1.7.52.patch
+ patch -p1 < ../raw.patch
patch -p1 < ../mipmap.patch
patch -p1 < ../heap_perf.patch
+ patch -p1 < ../wbemprox_query.patch
+
+ patch -p1 -R < ../keybindings.patch
#OpenCL fix
cp configure configure_old
cp configure.ac configure.ac_old
sed 's|OpenCL/opencl.h|CL/opencl.h|g' configure_old > configure
sed 's|OpenCL/opencl.h|CL/opencl.h|g' configure.ac_old > configure.ac
-
- cd "$srcdir"
}
build()
@@ -148,55 +148,56 @@ build()
export CXXFLAGS="${CXXFLAGS/-O2/} -O0"
# Get rid of old build dirs
- rm -rf $_basename-{32,64}-build
- mkdir $_basename-32-build
+ rm -rf $pkgname-{32,64}-build
+ mkdir $pkgname-32-build
# These additional CPPFLAGS solve FS#27662 and FS#34195
export CPPFLAGS="${CPPFLAGS/-D_FORTIFY_SOURCE=2/} -D_FORTIFY_SOURCE=0"
if [[ $CARCH == x86_64 ]]; then
- msg2 "Building Wine-64..."
-
- mkdir $_basename-64-build
- cd "$srcdir/$_basename-64-build"
- ../wine-wine-$pkgver/configure \
- --prefix=/usr \
- --libdir=/usr/lib \
- --with-x \
- --without-gstreamer \
- --enable-win64 \
- --disable-tests
- # Gstreamer was disabled for FS#33655
-
- make
-
- _wine32opts=(
- --libdir=/usr/lib32
- --with-wine64="$srcdir/$_basename-64-build"
- )
-
- export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ msg2 "Building Wine-64..."
+
+ mkdir $pkgname-64-build
+ cd "$srcdir/$pkgname-64-build"
+ ../$_winesrcdir/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --with-x \
+ --without-gstreamer \
+ --enable-win64 \
+ --with-xattr \
+ --with-d3dadapter
+ # Gstreamer was disabled for FS#33655
+
+ make
+
+ _wine32opts=(
+ --libdir=/usr/lib32
+ --with-wine64="$srcdir/$pkgname-64-build"
+ )
+
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
fi
msg2 "Building Wine-32..."
- cd "$srcdir/$_basename-32-build"
- ../wine-wine-$pkgver/configure \
+ cd "$srcdir/$pkgname-32-build"
+ ../$_winesrcdir/configure \
--prefix=/usr \
--with-x \
--without-gstreamer \
- --disable-tests \
- "${_wine32opts[@]}"
+ --with-xattr \
+ --with-d3dadapter \
+ "${_wine32opts[@]}"
# These additional flags solve FS#23277
make CFLAGS+="-mstackrealign -mincoming-stack-boundary=2" CXXFLAGS+="-mstackrealign -mincoming-stack-boundary=2"
}
-package()
-{
+package() {
depends=(${_depends[@]})
msg2 "Packaging Wine-32..."
- cd "$srcdir/$_basename-32-build"
+ cd "$srcdir/$pkgname-32-build"
if [[ $CARCH == i686 ]]; then
make prefix="$pkgdir/usr" install
@@ -206,7 +207,7 @@ package()
dlldir="$pkgdir/usr/lib32/wine" install
msg2 "Packaging Wine-64..."
- cd "$srcdir/$_basename-64-build"
+ cd "$srcdir/$pkgname-64-build"
make prefix="$pkgdir/usr" \
libdir="$pkgdir/usr/lib" \
dlldir="$pkgdir/usr/lib/wine" install
diff --git a/nine-1.7.51.patch b/nine-1.7.52.patch
index dd4b9ea6966f..ccdc3846e54f 100644
--- a/nine-1.7.51.patch
+++ b/nine-1.7.52.patch
@@ -1,5 +1,5 @@
diff --git a/configure.ac b/configure.ac
-index aec53f6..c30342f 100644
+index c37c491..cbac8ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -65,6 +65,8 @@ AC_ARG_WITH(openal, AS_HELP_STRING([--without-openal],[do not use OpenAL]),
@@ -1289,10 +1289,10 @@ index 34b3de6..90982b3 100644
};
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
-index 60ffc45..95d8fce 100644
+index de40d9f..47eb57c 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
-@@ -8545,6 +8545,7 @@ static const struct gdi_dc_funcs freetype_funcs =
+@@ -8639,6 +8639,7 @@ static const struct gdi_dc_funcs freetype_funcs =
NULL, /* pUnrealizePalette */
NULL, /* pWidenPath */
NULL, /* wine_get_wgl_driver */
diff --git a/wbemprox_query.patch b/wbemprox_query.patch
new file mode 100644
index 000000000000..37511cd06983
--- /dev/null
+++ b/wbemprox_query.patch
@@ -0,0 +1,136 @@
+From 3606d31738dbe085a2591c31eef0b2c5cbfb537e Mon Sep 17 00:00:00 2001
+From: "Riccardo (C10uD)" <c10ud.dev@gmail.com>
+Date: Tue, 7 Jul 2015 09:49:33 +0200
+Subject: [PATCH] wbemprox: cache videocontroller queries
+
+---
+ dlls/wbemprox/builtin.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ dlls/wbemprox/main.c | 3 ++
+ 2 files changed, 80 insertions(+), 1 deletion(-)
+
+diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
+index f1e5c4a..8f3aa1f 100644
+--- a/dlls/wbemprox/builtin.c
++++ b/dlls/wbemprox/builtin.c
+@@ -2792,6 +2792,73 @@ static WCHAR *get_pnpdeviceid( DXGI_ADAPTER_DESC *desc )
+ return ret;
+ }
+
++/* some games like to continuously ask for the video controller
++ since dxgi is expensive, cache results for subsequent calls */
++static struct record_videocontroller *static_rec = NULL;
++
++static void cache_videocontroller(struct record_videocontroller *rec)
++{
++ if (!(static_rec = heap_alloc( sizeof(struct record_videocontroller) )))
++ return;
++
++ static_rec->adapter_dactype = heap_strdupW( rec->adapter_dactype );
++ static_rec->adapter_ram = rec->adapter_ram;
++ static_rec->availability = rec->availability;
++ static_rec->caption = heap_strdupW( rec->caption );
++ static_rec->current_bitsperpixel = rec->current_bitsperpixel;
++ static_rec->current_horizontalres = rec->current_horizontalres;
++ static_rec->current_refreshrate = rec->current_refreshrate;
++ static_rec->current_scanmode = rec->current_scanmode;
++ static_rec->current_verticalres = rec->current_verticalres;
++ static_rec->description = heap_strdupW( rec->description );
++ static_rec->device_id = heap_strdupW( rec->device_id );
++ static_rec->driverversion = heap_strdupW( rec->driverversion );
++ static_rec->name = heap_strdupW( rec->name );
++ static_rec->pnpdevice_id = heap_strdupW( rec->pnpdevice_id );
++ static_rec->videoarchitecture = rec->videoarchitecture;
++ static_rec->videomemorytype = rec->videomemorytype;
++ static_rec->videoprocessor = heap_strdupW( rec->videoprocessor );
++}
++
++static void videocontroller_from_cache(struct record_videocontroller *rec)
++{
++ rec->adapter_dactype = heap_strdupW( static_rec->adapter_dactype );
++ rec->adapter_ram = static_rec->adapter_ram;
++ rec->availability = 3; /* Running or Full Power */
++ rec->caption = heap_strdupW( static_rec->caption );
++ rec->current_bitsperpixel = static_rec->current_bitsperpixel;
++ rec->current_horizontalres = static_rec->current_horizontalres;
++ rec->current_refreshrate = 0; /* default refresh rate */
++ rec->current_scanmode = 2; /* Unknown */
++ rec->current_verticalres = static_rec->current_verticalres;
++ rec->description = heap_strdupW( static_rec->description );
++ rec->device_id = heap_strdupW( static_rec->device_id );
++ rec->driverversion = heap_strdupW( static_rec->driverversion );
++ rec->name = heap_strdupW( static_rec->name );
++ rec->pnpdevice_id = heap_strdupW( static_rec->pnpdevice_id );
++ rec->videoarchitecture = 2; /* Unknown */
++ rec->videomemorytype = 2; /* Unknown */
++ rec->videoprocessor = heap_strdupW( static_rec->videoprocessor );
++}
++
++void free_cache_videocontroller()
++{
++ if (static_rec == NULL)
++ return;
++
++ heap_free(static_rec->adapter_dactype);
++ heap_free(static_rec->caption);
++ heap_free(static_rec->description);
++ heap_free(static_rec->device_id);
++ heap_free(static_rec->driverversion);
++ heap_free(static_rec->name);
++ heap_free(static_rec->pnpdevice_id);
++ heap_free(static_rec->videoprocessor);
++
++ heap_free(static_rec);
++ static_rec = NULL;
++}
++
+ static enum fill_status fill_videocontroller( struct table *table, const struct expr *cond )
+ {
+
+@@ -2807,6 +2874,14 @@ static enum fill_status fill_videocontroller( struct table *table, const struct
+
+ if (!resize_table( table, 1, sizeof(*rec) )) return FILL_STATUS_FAILED;
+
++ rec = (struct record_videocontroller *)table->data;
++ if (static_rec != NULL)
++ {
++ TRACE("using cached data at %p\n", static_rec);
++ videocontroller_from_cache(rec);
++ goto done_cached;
++ }
++
+ memset (&desc, 0, sizeof(desc));
+ hr = CreateDXGIFactory( &IID_IDXGIFactory, (void **)&factory );
+ if (FAILED(hr)) goto done;
+@@ -2822,7 +2897,6 @@ static enum fill_status fill_videocontroller( struct table *table, const struct
+ }
+
+ done:
+- rec = (struct record_videocontroller *)table->data;
+ rec->adapter_dactype = videocontroller_dactypeW;
+ rec->adapter_ram = vidmem;
+ rec->availability = 3; /* Running or Full Power */
+@@ -2840,6 +2914,8 @@ done:
+ rec->videoarchitecture = 2; /* Unknown */
+ rec->videomemorytype = 2; /* Unknown */
+ rec->videoprocessor = heap_strdupW( name );
++ cache_videocontroller(rec);
++done_cached:
+ if (!match_row( table, row, cond, &status )) free_row_values( table, row );
+ else row++;
+
+diff --git a/dlls/wbemprox/main.c b/dlls/wbemprox/main.c
+index e6ccd5c..24c1612 100644
+--- a/dlls/wbemprox/main.c
++++ b/dlls/wbemprox/main.c
+@@ -123,6 +123,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+ DisableThreadLibraryCalls(hinstDLL);
+ init_table_list();
+ break;
++ case DLL_PROCESS_DETACH:
++ free_cache_videocontroller();
++ break;
+ }
+
+ return TRUE;
+--
+1.9.1
diff --git a/wine.install b/wine.install
index 0548b7ffd127..0548b7ffd127 100755..100644
--- a/wine.install
+++ b/wine.install