[wine] 1.5.16-1
Andreas Bierfert
awjb at fedoraproject.org
Sun Oct 28 17:54:22 UTC 2012
commit 398eb10909c0274fdc371355ccaa1f4818a9cd13
Author: Andreas Bierfert <andreas.bierfert at lowlatency.de>
Date: Sun Oct 28 18:54:15 2012 +0100
1.5.16-1
- version upgrade (rhbz#870611)
- wine mono 0.8
- update pulse patch
- fix midi in winepulse (rhbz#863129)
- fix dependencies for openssl (rhbz#868576)
.gitignore | 4 +-
sources | 4 +-
wine-pulse-1.5.4.patch => wine-pulse-1.5.16.patch | 212 +++++++++++++-------
...winmm-Load-winealsa-if-winepulse-is-found.patch | 29 +++
wine.spec | 43 ++++-
5 files changed, 207 insertions(+), 85 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 6ea484e..c1dfe30 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
/wine-1.4.tar.bz2
/wine-1.4.tar.bz2.sign
-/wine-1.5.15.tar.bz2
-/wine-1.5.15.tar.bz2.sign
+/wine-1.5.16.tar.bz2
+/wine-1.5.16.tar.bz2.sign
diff --git a/sources b/sources
index 6cd3baa..81f7320 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-41728374d14d0f13552250c70c0d40d2 wine-1.5.15.tar.bz2
-6d8a5749f3f7d45340fc9e43e906c238 wine-1.5.15.tar.bz2.sign
+cece715b6ff812e2cd76b7462f3fb582 wine-1.5.16.tar.bz2
+a087f0703a1778e82a73dfaa729a7aad wine-1.5.16.tar.bz2.sign
diff --git a/wine-pulse-1.5.4.patch b/wine-pulse-1.5.16.patch
similarity index 94%
rename from wine-pulse-1.5.4.patch
rename to wine-pulse-1.5.16.patch
index 54e7f0d..40c7da7 100644
--- a/wine-pulse-1.5.4.patch
+++ b/wine-pulse-1.5.16.patch
@@ -1,7 +1,26 @@
-diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
---- wine-1.5.4.old/configure 2012-05-11 21:08:09.000000000 +0300
-+++ wine-1.5.4/configure 2012-05-23 12:37:16.166737017 +0300
-@@ -629,6 +629,8 @@
+diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure
+--- wine-1.5.16.orig/configure 2012-10-28 11:24:58.288429351 +0100
++++ wine-1.5.16/configure 2012-10-28 11:32:47.643026610 +0100
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.69 for Wine 1.5.16.
++# Generated by GNU Autoconf 2.69 for Wine 1.5.15.
+ #
+ # Report bugs to <wine-devel at winehq.org>.
+ #
+@@ -580,8 +580,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='Wine'
+ PACKAGE_TARNAME='wine'
+-PACKAGE_VERSION='1.5.16'
+-PACKAGE_STRING='Wine 1.5.16'
++PACKAGE_VERSION='1.5.15'
++PACKAGE_STRING='Wine 1.5.15'
+ PACKAGE_BUGREPORT='wine-devel at winehq.org'
+ PACKAGE_URL='http://www.winehq.org'
+
+@@ -649,6 +649,8 @@
ALSALIBS
GSTREAMER_INCL
GSTREAMER_LIBS
@@ -10,7 +29,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
LIBGETTEXTPO
ZLIB
FREETYPEINCL
-@@ -805,6 +807,7 @@
+@@ -826,6 +828,7 @@
with_oss
with_png
with_pthread
@@ -18,7 +37,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
with_sane
with_tiff
with_v4l
-@@ -1495,6 +1498,7 @@
+@@ -1400,7 +1403,7 @@
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures Wine 1.5.16 to adapt to many kinds of systems.
++\`configure' configures Wine 1.5.15 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1469,7 +1472,7 @@
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of Wine 1.5.16:";;
++ short | recursive ) echo "Configuration of Wine 1.5.15:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1516,6 +1519,7 @@
--without-oss do not use the OSS sound support
--without-png do not use PNG
--without-pthread do not use the pthread library
@@ -26,7 +63,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
--without-sane do not use SANE (scanner support)
--without-tiff do not use TIFF
--without-v4l do not use v4l1 (v4l support)
-@@ -2679,6 +2683,12 @@
+@@ -1616,7 +1620,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-Wine configure 1.5.16
++Wine configure 1.5.15
+ generated by GNU Autoconf 2.69
+
+ Copyright (C) 2012 Free Software Foundation, Inc.
+@@ -2134,7 +2138,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by Wine $as_me 1.5.16, which was
++It was created by Wine $as_me 1.5.15, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+@@ -2707,6 +2711,12 @@
fi
@@ -39,7 +94,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
# Check whether --with-sane was given.
if test "${with_sane+set}" = set; then :
withval=$with_sane;
-@@ -10639,6 +10649,87 @@
+@@ -10807,6 +10817,87 @@
fi
fi
@@ -127,7 +182,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
if test "x$with_gstreamer" != "xno"
then
ac_save_CPPFLAGS="$CPPFLAGS"
-@@ -11898,12 +11989,13 @@
+@@ -12066,12 +12157,13 @@
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
@@ -143,7 +198,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
then
as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent."
fi
-@@ -15430,6 +15522,7 @@
+@@ -15832,6 +15924,7 @@
wine_fn_config_dll wineoss.drv enable_wineoss_drv
wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po
wine_fn_config_dll wineps16.drv16 enable_win16
@@ -151,10 +206,28 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
wine_fn_config_dll wineqtdecoder enable_wineqtdecoder
wine_fn_config_dll winequartz.drv enable_winequartz_drv
wine_fn_config_dll winex11.drv enable_winex11_drv
-diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
---- wine-1.5.4.old/configure.ac 2012-05-11 21:08:09.000000000 +0300
-+++ wine-1.5.4/configure.ac 2012-05-23 12:38:20.969468598 +0300
-@@ -74,6 +74,7 @@
+@@ -16588,7 +16681,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by Wine $as_me 1.5.16, which was
++This file was extended by Wine $as_me 1.5.15, which was
+ generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -16659,7 +16752,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-Wine config.status 1.5.16
++Wine config.status 1.5.15
+ configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac
+--- wine-1.5.16.orig/configure.ac 2012-10-28 11:24:58.766394415 +0100
++++ wine-1.5.16/configure.ac 2012-10-28 11:32:49.545887232 +0100
+@@ -76,6 +76,7 @@
[if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi])
AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]),
[if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi])
@@ -162,7 +235,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]),
[if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi])
-@@ -1482,6 +1483,30 @@
+@@ -1512,6 +1513,30 @@
[GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.])
fi
@@ -193,7 +266,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
dnl **** Check for gstreamer ****
if test "x$with_gstreamer" != "xno"
then
-@@ -1688,13 +1713,14 @@
+@@ -1718,13 +1743,14 @@
dnl **** Disable unsupported winmm drivers ****
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
@@ -210,7 +283,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
then
WINE_WARNING([No sound system was found. Windows applications will be silent.])
fi
-@@ -2918,6 +2944,7 @@
+@@ -3055,6 +3081,7 @@
WINE_CONFIG_DLL(wineoss.drv)
WINE_CONFIG_DLL(wineps.drv,,[install-lib,po])
WINE_CONFIG_DLL(wineps16.drv16,enable_win16)
@@ -218,21 +291,9 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
WINE_CONFIG_DLL(wineqtdecoder)
WINE_CONFIG_DLL(winequartz.drv)
WINE_CONFIG_DLL(winex11.drv)
-diff -uNr wine-1.5.4.old/dlls/mmdevapi/main.c wine-1.5.4/dlls/mmdevapi/main.c
---- wine-1.5.4.old/dlls/mmdevapi/main.c 2012-05-11 21:08:09.000000000 +0300
-+++ wine-1.5.4/dlls/mmdevapi/main.c 2012-05-23 12:13:41.597012820 +0300
-@@ -111,7 +111,7 @@
- {
- static const WCHAR drv_value[] = {'A','u','d','i','o',0};
-
-- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',',
-+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',',
- 'c','o','r','e','a','u','d','i','o',0};
-
- DriverFuncs driver;
-diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepulse.drv/Makefile.in
---- wine-1.5.4.old/dlls/winepulse.drv/Makefile.in 1970-01-01 02:00:00.000000000 +0200
-+++ wine-1.5.4/dlls/winepulse.drv/Makefile.in 2012-05-23 12:03:21.068645000 +0300
+diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in wine-1.5.16/dlls/winepulse.drv/Makefile.in
+--- wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100
++++ wine-1.5.16/dlls/winepulse.drv/Makefile.in 2012-10-28 11:31:38.175116035 +0100
@@ -0,0 +1,9 @@
+MODULE = winepulse.drv
+IMPORTS = dxguid uuid winmm user32 advapi32 ole32
@@ -243,10 +304,10 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepuls
+ mmdevdrv.c
+
+ at MAKE_DLL_RULES@
-diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c
---- wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 02:00:00.000000000 +0200
-+++ wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c 2012-05-23 12:03:21.069645000 +0300
-@@ -0,0 +1,3101 @@
+diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c
+--- wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100
++++ wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c 2012-10-28 11:31:38.176115962 +0100
+@@ -0,0 +1,3098 @@
+/*
+ * Copyright 2011-2012 Maarten Lankhorst
+ * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers
@@ -331,7 +392,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ 'W','i','n','e','\\','P','u','l','s','e',0};
+const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 };
+
-+static GUID pulse_render_guid =
++static GUID pulse_render_guid =
+{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } };
+static GUID pulse_capture_guid =
+{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } };
@@ -350,6 +411,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ }
+ DisableThreadLibraryCalls(dll);
+ } else if (reason == DLL_PROCESS_DETACH) {
++ if (pulse_thread)
++ SetThreadPriority(pulse_thread, 0);
+ if (pulse_ctx) {
+ pa_context_disconnect(pulse_ctx);
+ pa_context_unref(pulse_ctx);
@@ -423,7 +486,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ pa_channel_map map;
+
+ INT64 clock_lastpos, clock_written;
-+ pa_usec_t clock_pulse;
+
+ AudioSession *session;
+ AudioSessionWrapper *session_wrapper;
@@ -772,7 +834,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata)
+{
+ ACImpl *This = userdata;
-+ pa_usec_t time;
+ UINT32 oldpad = This->pad;
+
+ if (bytes < This->bufsize_bytes)
@@ -782,13 +843,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+
+ assert(oldpad >= This->pad);
+
-+ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0)
-+ This->clock_pulse = time;
-+ else
-+ This->clock_pulse = PA_USEC_INVALID;
-+
+ This->clock_written += oldpad - This->pad;
-+ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss));
++ TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss));
+
+ if (This->event)
+ SetEvent(This->event);
@@ -796,8 +852,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+
+static void pulse_underflow_callback(pa_stream *s, void *userdata)
+{
-+ ACImpl *This = userdata;
-+ This->clock_pulse = PA_USEC_INVALID;
+ WARN("Underflow\n");
+}
+
@@ -815,15 +869,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+
+static void pulse_started_callback(pa_stream *s, void *userdata)
+{
-+ ACImpl *This = userdata;
-+ pa_usec_t time;
-+
+ TRACE("(Re)started playing\n");
-+ assert(This->clock_pulse == PA_USEC_INVALID);
-+ if (0 && pa_stream_get_time(This->stream, &time) >= 0)
-+ This->clock_pulse = time;
-+ if (This->event)
-+ SetEvent(This->event);
+}
+
+static void pulse_rd_loop(ACImpl *This, size_t bytes)
@@ -832,7 +878,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ ACPacket *p, *next;
+ LARGE_INTEGER stamp, freq;
+ BYTE *dst, *src;
-+ UINT32 src_len, copy, rem = This->capture_period;
++ size_t src_len, copy, rem = This->capture_period;
+ if (!(p = (ACPacket*)list_head(&This->packet_free_head))) {
+ p = (ACPacket*)list_head(&This->packet_filled_head);
+ if (!p->discont) {
@@ -884,7 +930,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+static void pulse_rd_drop(ACImpl *This, size_t bytes)
+{
+ while (bytes >= This->capture_period) {
-+ UINT32 src_len, copy, rem = This->capture_period;
++ size_t src_len, copy, rem = This->capture_period;
+ while (rem) {
+ const void *src;
+ pa_stream_peek(This->stream, &src, &src_len);
@@ -914,7 +960,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+{
+ ACImpl *This = userdata;
+
-+ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize);
++ TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize);
+ assert(bytes >= This->peek_ofs);
+ bytes -= This->peek_ofs;
+ if (bytes < This->capture_period)
@@ -1074,7 +1120,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl;
+ This->dataflow = dataflow;
+ This->parent = dev;
-+ This->clock_pulse = PA_USEC_INVALID;
+ for (i = 0; i < PA_CHANNELS_MAX; ++i)
+ This->vol[i] = 1.f;
+ IMMDevice_AddRef(This->parent);
@@ -1458,9 +1503,25 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ goto exit;
+
+ if (mode == AUDCLNT_SHAREMODE_SHARED) {
-+ period = pulse_def_period[This->dataflow == eCapture];
++ REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture];
++ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture];
++
++ /* Switch to low latency mode if below 2 default periods,
++ * which is 20 ms by default, this will increase the amount
++ * of interrupts but allows very low latency. In dsound I
++ * managed to get a total latency of ~8ms, which is well below
++ * default
++ */
++ if (duration < 2 * def)
++ period = min;
++ else
++ period = def;
+ if (duration < 2 * period)
+ duration = 2 * period;
++
++ /* Uh oh, really low latency requested.. */
++ if (duration <= 2 * period)
++ period /= 2;
+ }
+ period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000);
+
@@ -1769,7 +1830,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ pthread_mutex_unlock(&pulse_lock);
+ return AUDCLNT_E_NOT_STOPPED;
+ }
-+ This->clock_pulse = PA_USEC_INVALID;
+
+ if (pa_stream_is_corked(This->stream)) {
+ o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success);
@@ -1825,7 +1885,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ }
+ if (SUCCEEDED(hr)) {
+ This->started = FALSE;
-+ This->clock_pulse = PA_USEC_INVALID;
+ }
+ pthread_mutex_unlock(&pulse_lock);
+ return hr;
@@ -2023,7 +2082,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ UINT32 frames, BYTE **data)
+{
+ ACImpl *This = impl_from_IAudioRenderClient(iface);
-+ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss);
++ size_t avail, req, bytes = frames * pa_frame_size(&This->ss);
++ UINT32 pad;
+ HRESULT hr = S_OK;
+ int ret = -1;
+
@@ -2048,7 +2108,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ avail = This->bufsize_frames - pad;
+ if (avail < frames || bytes > This->bufsize_bytes) {
+ pthread_mutex_unlock(&pulse_lock);
-+ WARN("Wanted to write %u, but only %u available\n", frames, avail);
++ WARN("Wanted to write %u, but only %zu available\n", frames, avail);
+ return AUDCLNT_E_BUFFER_TOO_LARGE;
+ }
+
@@ -2056,7 +2116,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ req = bytes;
+ ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req);
+ if (ret < 0 || req < bytes) {
-+ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames);
++ FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames);
+ if (ret >= 0)
+ pa_stream_cancel_write(This->stream);
+ *data = This->tmp_buffer;
@@ -2072,6 +2132,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+{
+ ACImpl *This = impl_from_IAudioRenderClient(iface);
+ UINT32 written_bytes = written_frames * pa_frame_size(&This->ss);
++// UINT32 period;
+
+ TRACE("(%p)->(%u, %x)\n", This, written_frames, flags);
+
@@ -2104,8 +2165,13 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE);
+ This->pad += written_bytes;
+ This->locked_ptr = NULL;
-+ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss));
++ TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss));
+ assert(This->pad <= This->bufsize_bytes);
++
++// period = pa_stream_get_buffer_attr(This->stream)->minreq;
++ /* Require a minimum of 3 periods filled, if possible */
++// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3)
++// SetEvent(This->event);
+ pthread_mutex_unlock(&pulse_lock);
+ return S_OK;
+}
@@ -2312,7 +2378,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ UINT64 *qpctime)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
-+ pa_usec_t time;
+ HRESULT hr;
+
+ TRACE("(%p)->(%p, %p)\n", This, pos, qpctime);
@@ -2328,13 +2393,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ }
+
+ *pos = This->clock_written;
-+ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) {
-+ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss);
-+ if (delta < This->pad)
-+ *pos += delta;
-+ else
-+ *pos += This->pad;
-+ }
+
+ /* Make time never go backwards */
+ if (*pos < This->clock_lastpos)
@@ -3348,9 +3406,9 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ *out = &This->IAudioSessionManager2_iface;
+ return S_OK;
+}
-diff -uNr wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec
---- wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 02:00:00.000000000 +0200
-+++ wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec 2012-05-23 12:03:21.069645000 +0300
+diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec
+--- wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100
++++ wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec 2012-10-28 11:31:38.176115962 +0100
@@ -0,0 +1,5 @@
+# MMDevAPI driver functions
+@ stdcall -private GetPriority() AUDDRV_GetPriority
diff --git a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch
new file mode 100644
index 0000000..aba3925
--- /dev/null
+++ b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch
@@ -0,0 +1,29 @@
+From 8045bdbc879ec70776427f744f30476cc2b469a4 Mon Sep 17 00:00:00 2001
+From: Maarten Lankhorst <maarten.lankhorst at canonical.com>
+Date: Fri, 26 Oct 2012 19:04:00 +0200
+Subject: [PATCH] winmm: Load winealsa if winepulse is found
+
+Fixes midi on winepulse
+---
+ dlls/winmm/lolvldrv.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c
+index f387323..3b1be27 100644
+--- a/dlls/winmm/lolvldrv.c
++++ b/dlls/winmm/lolvldrv.c
+@@ -543,7 +543,10 @@ static void MMDRV_Init(void)
+ drvA = HeapAlloc(GetProcessHeap(), 0, size);
+ WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL);
+
+- MMDRV_Install(drvA, drvA, FALSE);
++ if (!strcasecmp(drvA, "winepulse.drv"))
++ MMDRV_Install("winealsa.drv", "winealsa.drv", 0);
++ else
++ MMDRV_Install(drvA, drvA, FALSE);
+
+ HeapFree(GetProcessHeap(), 0, drvA);
+ PropVariantClear(&pv);
+--
+1.7.11.7
+
diff --git a/wine.spec b/wine.spec
index 9bf3e12..8920a50 100644
--- a/wine.spec
+++ b/wine.spec
@@ -1,9 +1,9 @@
%global no64bit 0
%global winegecko 1.8
-%global winemono 0.0.4
+%global winemono 0.0.8
Name: wine
-Version: 1.5.15
+Version: 1.5.16
Release: 1%{?dist}
Summary: A compatibility layer for windows applications
@@ -54,9 +54,12 @@ Source502: wine-README-tahoma
Patch511: wine-cjk.patch
-# winepulse backend
+## winepulse backend
# http://repo.or.cz/w/wine/multimedia.git
-Patch1001: wine-pulse-1.5.4.patch
+# last change Fri, 26 Oct 2012 17:16:03 +0000
+Patch1001: wine-pulse-1.5.16.patch
+# use winealsa for midi in the pa backend
+Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -210,6 +213,13 @@ Requires: nss-mdns(x86-32)
Requires: gnutls(x86-32)
Requires: libXrender(x86-32)
Requires: libXcursor(x86-32)
+
+%if 0%{?fedora} >= 18
+Requires: openssl-libs(x86-32)
+%else
+Requires: openssl(x86-32)
+%endif
+
%endif
%ifarch x86_64
@@ -218,6 +228,13 @@ Requires: nss-mdns(x86-64)
Requires: gnutls(x86-64)
Requires: libXrender(x86-64)
Requires: libXcursor(x86-64)
+
+%if 0%{?fedora} >= 18
+Requires: openssl-libs(x86-64)
+%else
+Requires: openssl(x86-64)
+%endif
+
%endif
%ifarch %{arm}
@@ -226,6 +243,13 @@ Requires: nss-mdns
Requires: gnutls
Requires: libXrender
Requires: libXcursor
+
+%if 0%{?fedora} >= 18
+Requires: openssl-libs
+%else
+Requires: openssl
+%endif
+
%endif
# old removed packages
@@ -474,6 +498,8 @@ with the Wine Windows(TM) emulation libraries.
Summary: Pulseaudio support for wine
Group: System Environment/Libraries
Requires: wine-core = %{version}-%{release}
+# midi output
+Requires: wine-alsa = %{version}-%{release}
%description pulseaudio
This package adds a pulseaudio driver for wine. Please do not report bugs in
@@ -505,6 +531,7 @@ This package adds an openal driver for wine.
%patch511 -p1 -b.cjk
%patch1001 -p1 -b.winepulse
+%patch1002 -p1 -b.winepulse-midi
autoreconf
@@ -1497,6 +1524,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%endif
%changelog
+* Sun Oct 28 2012 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
+- 1.5.16-1
+- version upgrade (rhbz#870611)
+- wine mono 0.8
+- update pulse patch
+- fix midi in winepulse (rhbz#863129)
+- fix dependencies for openssl (rhbz#868576)
+
* Mon Oct 15 2012 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- 1.5.15-1
- version upgrade
More information about the scm-commits
mailing list