rpms/wine/devel winepulse-0.25.patch, NONE, 1.1 .cvsignore, 1.72, 1.73 sources, 1.73, 1.74 wine.spec, 1.101, 1.102 wine-desktop-mime.patch, 1.3, NONE winepulse-0.24.patch, 1.1, NONE

Andreas Bierfert awjb at fedoraproject.org
Tue May 12 14:43:56 UTC 2009


Author: awjb

Update of /cvs/pkgs/rpms/wine/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8316

Modified Files:
	.cvsignore sources wine.spec 
Added Files:
	winepulse-0.25.patch 
Removed Files:
	wine-desktop-mime.patch winepulse-0.24.patch 
Log Message:
- version upgrade


winepulse-0.25.patch:

--- NEW FILE winepulse-0.25.patch ---
diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in
new file mode 100644
index 0000000..327f225
--- /dev/null
+++ b/dlls/winepulse.drv/Makefile.in
@@ -0,0 +1,16 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = winepulse.drv
+IMPORTS   = dxguid uuid winmm user32 advapi32 kernel32
+EXTRALIBS = @PULSELIBS@
+
+C_SRCS = dsoutput.c \
+	waveout.c \
+	wavein.c \
+	pulse.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/dlls/winepulse.drv/dsoutput.c b/dlls/winepulse.drv/dsoutput.c
new file mode 100644
index 0000000..203fac0
--- /dev/null
+++ b/dlls/winepulse.drv/dsoutput.c
@@ -0,0 +1,578 @@
+/*
+ * Wine Driver for PulseAudio - DSound Output Functionality
+ * http://pulseaudio.org/
+ *
+ * Copyright	2009 Arthur Talyor <theycallhimart at gmail.com>
+ *
+ * Conatins code from other wine multimedia drivers.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "config.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "winerror.h"
+#include "mmddk.h"
+#include "dsound.h"
+#include "dsdriver.h"
+#include "winreg.h"
+
+#include <winepulse.h>
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(dspulse);
+
+#if HAVE_PULSEAUDIO
+
+/*======================================================================*
+ *                  Low level DSOUND implementation			*
+ *======================================================================*/
+
+/* A buffer is allocated with a pointer indicating the read position in the
+ * buffer. The pulse write callback reads data from the buffer, updating the
+ * read pointer to the location at the end of the read. Upon reaching the end
+ * or attempting to read past the end of buffer the read pointer wraps around
+ * to the beginning again. DirectSound applications can write anywhere in the
+ * buffer at anytime without locking and can know the location of the read
+ * pointer. The position of the read pointer cannot be changed by the
+ * application and access to it uses a locking scheme. A fake pointer
+ * indicating estimated playback position is also available to the application.
+ * Applications can potentially write to the same area of memory which is also
+ * being read by the pulse thread. However, this is uncommon as directsound
+ * applications know where pulse should be reading from via the pointer
+ * locations and MSDN says that such an operation should be avoided with the
+ * results being undefined.
+ */
+
+/* Fragment lengths try to be a power of two close to 10ms worth of data. See
+ * dlls/dsound/mixer.c
+ */
+static int fragment_length(pa_sample_spec *s) {
+    if (s->rate <= 12800)
+        return 128 * pa_frame_size(s);
+
+    if (s->rate <= 25600)
+        return 256 * pa_frame_size(s);
+
+    if (s->rate <= 51200)
+        return 512 * pa_frame_size(s);
+
+    return 1024 * pa_frame_size(s);
+}
+
+/* Callback from the pulse thread for stream data */
+static void DSPULSE_BufferReadCallback(pa_stream *s, size_t nbytes, void *userdata) {
+    IDsDriverBufferImpl *This = (IDsDriverBufferImpl *)userdata;
+
+    if (!This->buffer)
+        return;
+
+    /* Fraglens are always powers of 2 */
+    nbytes+= This->fraglen - 1;
+    nbytes&= ~(This->fraglen - 1);
+
+    /* If we advance more than 10 fragments at a time it appears that the buffer
+     * pointer is never advancing because of wrap-around. Evil magic numbers. */
+    if (nbytes > This->fraglen * 5)
+        nbytes = This->fraglen * 5;
+
+    TRACE("Reading %u bytes.\n", nbytes);
+
+    if (This->buffer_read_offset + nbytes <= This->buffer_length) {
+        pa_stream_write(s, This->buffer + This->buffer_read_offset, nbytes, NULL, 0, PA_SEEK_RELATIVE);
+        This->buffer_play_offset = This->buffer_read_offset;
+        This->buffer_read_offset += nbytes;
+    } else {
+        size_t write_length = This->buffer_length - This->buffer_read_offset;
+        nbytes -= write_length;
+        pa_stream_write(s, This->buffer + This->buffer_read_offset, write_length, NULL, 0, PA_SEEK_RELATIVE);
+        pa_stream_write(s, This->buffer, nbytes, NULL, 0, PA_SEEK_RELATIVE);
+        This->buffer_play_offset = This->buffer_read_offset;
+        This->buffer_read_offset = nbytes;
+    }
+
+    This->buffer_read_offset %= This->buffer_length;
+}
+
+/* Called when the stream underruns. Just for information */
+static void DSPULSE_BufferUnderflowCallback(pa_stream *s, void *userdata) {
+    WARN("(%p) underrun.\n", userdata);
+}
+
+/* Connects a stream to the server. Does not update
+ * IDsDriverBufferImpl->fraglen. Does not lock the pulse mainloop or free
+ * objects in case of failure. This should be handled by the calling function.
+ */
+static HRESULT DSPULSE_ConnectStream(IDsDriverBufferImpl* This) {
+    pa_buffer_attr ba_request;
+    const pa_buffer_attr *ba_obtained;
+    char c[PA_SAMPLE_SPEC_SNPRINT_MAX];
+    pa_stream_flags_t stream_flags = PA_STREAM_START_CORKED;
+
+#if PA_PROTOCOL_VERSION >= 14
+    /* We are a "fragment wait based" application, so this flag should be
+     * acceptable. */
+    stream_flags |= PA_STREAM_EARLY_REQUESTS;
+#elif PA_PROTOCOL_VERSION >= 13 && PA_API_VERSION >= 12
+    stream_flags |= PA_STREAM_ADJUST_LATENCY;
+#endif
+
+    pa_sample_spec_snprint(c, PA_SAMPLE_SPEC_SNPRINT_MAX, &This->sample_spec);
+    TRACE("Sample spec %s fragment size %u.\n", c, This->fraglen);
+
+    ba_request.tlength = This->fraglen * 4;     //  ~40ms
+    ba_request.minreq = This->fraglen;          //  ~10ms
+    ba_request.prebuf = (uint32_t)-1;           //  same as tlength
+    ba_request.maxlength = This->buffer_length; //  2^x = ~3s
+
+    TRACE("Asking for buffer tlength:%u (%llums) minreq:%u (%llums)\n",
+        ba_request.tlength, pa_bytes_to_usec(ba_request.tlength, &This->sample_spec)/1000,
+        ba_request.minreq, pa_bytes_to_usec(ba_request.minreq, &This->sample_spec)/1000);
+
+    This->stream = pa_stream_new(PULSE_context, "DirectSound Buffer", &This->sample_spec, NULL);
+    if (!This->stream) return DSERR_BADFORMAT;
+
+    pa_stream_set_state_callback(This->stream, PULSE_StreamStateCallback, This);
+    pa_stream_set_write_callback(This->stream, DSPULSE_BufferReadCallback, This);
+    pa_stream_set_underflow_callback(This->stream, DSPULSE_BufferUnderflowCallback, This);
+
+    TRACE("Attempting to connect (%p)->stream for playback on %s\n", This, WOutDev[This->drv->wDevID].device_name);
+    pa_stream_connect_playback(This->stream, WOutDev[This->drv->wDevID].device_name, &ba_request, stream_flags, NULL, NULL);
+    for (;;) {
+        pa_context_state_t cstate = pa_context_get_state(PULSE_context);
+        pa_stream_state_t sstate = pa_stream_get_state(This->stream);
+
+        if (cstate == PA_CONTEXT_FAILED || cstate == PA_CONTEXT_TERMINATED ||
+            sstate == PA_STREAM_FAILED || sstate == PA_STREAM_TERMINATED) {
+            ERR("Failed to connect stream context object: %s\n", pa_strerror(pa_context_errno(PULSE_context)));
+            return DSERR_BUFFERLOST;
+        }
+
+        if (sstate == PA_STREAM_READY)
+            break;
+
[...3025 lines suppressed...]
+
+#include "mmreg.h"
+#include "dsound.h"
+#include "dsdriver.h"
+
+#include "ks.h"
+#include "ksmedia.h"
+#include "ksguid.h"
+
+#include <pulse/pulseaudio.h>
+
+/* state diagram for waveOut writing:
+ *
+ * +---------+-------------+---------------+---------------------------------+
+ * |  state  |  function   |     event     |            new state            |
+ * +---------+-------------+---------------+---------------------------------+
+ * |         | open()      |               | STOPPED                         |
+ * | PAUSED  | write()     |               | PAUSED                          |
+ * | STOPPED | write()     | <thrd create> | PLAYING                         |
+ * | PLAYING | write()     | HEADER        | PLAYING                         |
+ * | (other) | write()     | <error>       |                                 |
+ * | (any)   | pause()     | PAUSING       | PAUSED                          |
+ * | PAUSED  | restart()   | RESTARTING    | PLAYING (if no thrd => STOPPED) |
+ * | (any)   | reset()     | RESETTING     | STOPPED                         |
+ * | (any)   | close()     | CLOSING       | CLOSED                          |
+ * +---------+-------------+---------------+---------------------------------+
+ */
+
+/* states of the playing device */
+#define WINE_WS_PLAYING         1
+#define WINE_WS_PAUSED          2
+#define WINE_WS_STOPPED         3
+#define WINE_WS_CLOSED          4
+#define WINE_WS_FAILED          5
+
+#define PULSE_ALL_FORMATS \
+        WAVE_FORMAT_1M08 |	/* Mono	    11025Hz 8-bit  */\
+        WAVE_FORMAT_1M16 |	/* Mono	    11025Hz 16-bit */\
+        WAVE_FORMAT_1S08 |	/* Stereo   11025Hz 8-bit  */\
+        WAVE_FORMAT_1S16 |	/* Stereo   11025Hz 16-bit */\
+        WAVE_FORMAT_2M08 |	/* Mono	    22050Hz 8-bit  */\
+        WAVE_FORMAT_2M16 |	/* Mono	    22050Hz 16-bit */\
+        WAVE_FORMAT_2S08 |	/* Stereo   22050Hz 8-bit  */\
+	WAVE_FORMAT_2S16 |	/* Stereo   22050Hz 16-bit */\
+        WAVE_FORMAT_4M08 |	/* Mono	    44100Hz 8-bit  */\
+	WAVE_FORMAT_4M16 |	/* Mono	    44100Hz 16-bit */\
+        WAVE_FORMAT_4S08 |	/* Stereo   44100Hz 8-bit  */\
+	WAVE_FORMAT_4S16 |	/* Stereo   44100Hz 16-bit */\
+        WAVE_FORMAT_48M08 |	/* Mono	    48000Hz 8-bit  */\
+        WAVE_FORMAT_48S08 |	/* Stereo   48000Hz 8-bit  */\
+        WAVE_FORMAT_48M16 |	/* Mono	    48000Hz 16-bit */\
+        WAVE_FORMAT_48S16 |	/* Stereo   48000Hz 16-bit */\
+	WAVE_FORMAT_96M08 |	/* Mono	    96000Hz 8-bit  */\
+	WAVE_FORMAT_96S08 |	/* Stereo   96000Hz 8-bit  */\
+        WAVE_FORMAT_96M16 |	/* Mono	    96000Hz 16-bit */\
+	WAVE_FORMAT_96S16	/* Stereo   96000Hz 16-bit */
+
+/* events to be sent to device */
+enum win_wm_message {
+    WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER,
+    WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED
+};
+
+typedef struct {
+    enum win_wm_message 	msg;	/* message identifier */
+    DWORD	                param;  /* parameter for this message */
+    HANDLE	                hEvent;	/* if message is synchronous, handle of event for synchro */
+} PULSE_MSG;
+
+/* implement an in-process message ring for better performance
+ * (compared to passing thru the server)
+ * this ring will be used by the input (resp output) record (resp playback) routine
+ */
+typedef struct {
+    PULSE_MSG			* messages;
+    int                         ring_buffer_size;
+    int				msg_tosave;
+    int				msg_toget;
+/* Either pipe or event is used, but that is defined in pulse.c,
+ * since this is a global header we define both here */
+    int                         msg_pipe[2];
+    HANDLE                      msg_event;
+    CRITICAL_SECTION		msg_crst;
+} PULSE_MSG_RING;
+
+typedef struct WINE_WAVEDEV WINE_WAVEDEV;
+typedef struct WINE_WAVEINST WINE_WAVEINST;
+typedef struct IDsDriverImpl IDsDriverImpl;
+typedef struct IDsDriverBufferImpl IDsDriverBufferImpl;
+
+struct IDsDriverImpl {
+    /* IUnknown fields */
+    const IDsDriverVtbl *lpVtbl;
+    LONG    ref;
+
+    IDsDriverBufferImpl *primary;
+    UINT    wDevID;
+};
+
+struct IDsDriverBufferImpl {
+    const IDsDriverBufferVtbl	*lpVtbl;
+    IDsDriverImpl*		drv;
+    LONG			ref;
+    pa_stream			*stream;
+    pa_sample_spec		sample_spec;
+    pa_cvolume			volume;
+
+    PBYTE		buffer;
+    DWORD		buffer_length;
+    DWORD		buffer_read_offset;
+    DWORD		buffer_play_offset;
+    DWORD		fraglen;
+};
+
+/* Per-playback/record device */
+struct WINE_WAVEDEV {
+    char                interface_name[MAXPNAMELEN * 2];
+    char		*device_name;
+    pa_cvolume		volume;
+
+    union {
+        WAVEOUTCAPSW	out;
+	WAVEINCAPSW	in;
+    } caps;
+    
+    /* DirectSound stuff */
+    DSDRIVERDESC                ds_desc;
+    DSDRIVERCAPS                ds_caps;
+};
+
+/* Per-playback/record instance */
+struct WINE_WAVEINST {
+    volatile INT        state;		    /* one of the WINE_WS_ manifest constants */
+    WAVEOPENDESC        waveDesc;
+    WORD		wFlags;
+
+    /* PulseAudio specific data */
+    pa_stream		*stream;	    /* The PulseAudio stream */
+    const pa_timing_info *timing_info;	    /* The timing info structure for the stream */
+    pa_sample_spec	sample_spec;	    /* Sample spec of this stream / device */
+    pa_cvolume		volume;		    /* Software volume of the stream */
+    pa_buffer_attr	buffer_attr;	    /* Buffer attribute, may not be used */
+
+    /* waveIn / waveOut wavaHdr */
+    LPWAVEHDR		lpQueuePtr;	    /* Start of queued WAVEHDRs (waiting to be notified) */
+    LPWAVEHDR		lpPlayPtr;	    /* Start of not yet fully written buffers */
+    DWORD		dwPartialOffset;    /* Offset of not yet written bytes in lpPlayPtr */
+    LPWAVEHDR		lpLoopPtr;          /* Pointer of first buffer in loop, if any */
+    DWORD		dwLoops;	    /* Private copy of loop counter */
+
+    /* Virtual stream positioning */
+    DWORD		last_reset;	    /* When the last reset occured, as pa stream time isn't reset */
+    BOOL		is_releasing;	    /* Whether we are releasing wavehdrs */
+    struct timeval	started_releasing;  /* When wavehdr releasing started, for comparison to queued written wavehdrs */
+    DWORD		releasing_offset;   /* How much audio has been released prior when releasing started in this instance */
+
+    /* waveIn specific */
+    const void		*buffer;	    /* Pointer to the latest data fragment for recording streams */
+    DWORD		buffer_length;	    /* How large the latest data fragment is */
+    DWORD		buffer_read_offset; /* How far into latest data fragment we last read */
+
+    /* Thread communication and synchronization stuff */
+    HANDLE		hStartUpEvent;
+    HANDLE		hThread;
+    DWORD		dwThreadID;
+    PULSE_MSG_RING	msgRing;
+};
+
+/* We establish one context per instance, so make it global to the lib */
+pa_context		*PULSE_context;   /* Connection Context */
+pa_threaded_mainloop	*PULSE_ml;        /* PA Runtime information */
+
+/* WaveIn / WaveOut devices */
+WINE_WAVEDEV *WOutDev;
+WINE_WAVEDEV *WInDev;
+DWORD PULSE_WodNumDevs;
+DWORD PULSE_WidNumDevs;
+
+/* pulse.c */
+void	PULSE_WaitForOperation(pa_operation *o);
+void	PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata);
+void	PULSE_StreamStateCallback(pa_stream *s, void *userdata);
+void	PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata);
+void	PULSE_StreamOverflowCallback(pa_stream *s, void *userdata);
+void	PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata);
+void	PULSE_StreamMovedCallback(pa_stream *s, void *userdata);
+void	PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata);
+BOOL	PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss);
+int	PULSE_InitRingMessage(PULSE_MSG_RING* omr);
+int	PULSE_DestroyRingMessage(PULSE_MSG_RING* omr);
+void	PULSE_ResetRingMessage(PULSE_MSG_RING* omr);
+void	PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep);
+int	PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait);
+int	PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent);
+const char * PULSE_getCmdString(enum win_wm_message msg);
+
+/* dsoutput.c */
+DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv);
+DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc);
+#endif


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/wine/devel/.cvsignore,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -p -r1.72 -r1.73
--- .cvsignore	7 Apr 2009 13:40:40 -0000	1.72
+++ .cvsignore	12 May 2009 14:43:25 -0000	1.73
@@ -1 +1 @@
-wine-1.1.18-fe.tar.bz2
+wine-1.1.21-fe.tar.bz2


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/wine/devel/sources,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -p -r1.73 -r1.74
--- sources	7 Apr 2009 13:40:40 -0000	1.73
+++ sources	12 May 2009 14:43:26 -0000	1.74
@@ -1 +1 @@
-1933049a7cc725bcb488c6669fa5ca9e  wine-1.1.18-fe.tar.bz2
+5b062451ee5e21189eea49cffd9bc0d8  wine-1.1.21-fe.tar.bz2


Index: wine.spec
===================================================================
RCS file: /cvs/pkgs/rpms/wine/devel/wine.spec,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -p -r1.101 -r1.102
--- wine.spec	7 Apr 2009 13:40:40 -0000	1.101
+++ wine.spec	12 May 2009 14:43:26 -0000	1.102
@@ -1,5 +1,5 @@
 Name:		wine
-Version:	1.1.18
+Version:	1.1.21
 Release:	1%{?dist}
 Summary:	A Windows 16/32/64 bit emulator
 
@@ -43,14 +43,12 @@ Source300:      wine-mime-msi.desktop
 # see http://bugs.winehq.org/show_bug.cgi?id=10495
 # and http://art.ified.ca/?page_id=40
 Patch400:       http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch
-Patch401:       http://art.ified.ca/downloads/winepulse-0.24.patch
+Patch401:       http://art.ified.ca/downloads/winepulse-0.25.patch
 Patch402:	http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch
 Source402:      README-FEDORA-PULSEAUDIO
 
 
 Patch1:         wine-rpath.patch
-# fix #448338
-Patch2:         wine-desktop-mime.patch
 Buildroot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 ExclusiveArch:  %{ix86}
@@ -239,7 +237,6 @@ wine audio driver. Please do not report 
 %prep
 %setup -q -n %{name}-%{version}-fe
 %patch1
-%patch2
 %patch400 -p1
 %patch401 -p1
 %patch402 -p1
@@ -421,6 +418,7 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/secedit.exe.so
 %{_libdir}/wine/services.exe.so
 %{_libdir}/wine/start.exe.so
+%{_libdir}/wine/termsv.exe.so
 %{_libdir}/wine/wineboot.exe.so
 %{_libdir}/wine/winebrowser.exe.so
 %{_libdir}/wine/wineconsole.exe.so
@@ -451,6 +449,7 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/authz.dll.so
 %{_libdir}/wine/avicap32.dll.so
 %{_libdir}/wine/avifil32.dll.so
+%{_libdir}/wine/bcrypt.dll.so
 %{_libdir}/wine/browseui.dll.so
 %{_libdir}/wine/cabinet.dll.so
 %{_libdir}/wine/cards.dll.so
@@ -479,7 +478,6 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/d3dxof.dll.so
 %{_libdir}/wine/dbghelp.dll.so
 %{_libdir}/wine/dciman32.dll.so
-%{_libdir}/wine/ddeml.dll16
 %{_libdir}/wine/ddraw.dll.so
 %{_libdir}/wine/ddrawex.dll.so
 %{_libdir}/wine/devenum.dll.so
@@ -640,7 +638,6 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/sfc_os.dll.so
 %{_libdir}/wine/shdoclc.dll.so
 %{_libdir}/wine/shdocvw.dll.so
-%{_libdir}/wine/shell.dll16
 %{_libdir}/wine/shell32.dll.so
 %{_libdir}/wine/shfolder.dll.so
 %{_libdir}/wine/shlwapi.dll.so
@@ -723,6 +720,7 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/xinput1_2.dll.so
 %{_libdir}/wine/xinput1_3.dll.so
 %{_libdir}/wine/xinput9_1_0.dll.so
+%{_libdir}/wine/xmllite.dll.so
 %{_sysconfdir}/ld.so.conf.d/wine-32.conf
 # 16bit
 %{_libdir}/wine/avifile.dll16.so
@@ -730,6 +728,7 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/compobj.dll16.so
 %{_libdir}/wine/ctl3d.dll16.so
 %{_libdir}/wine/ctl3dv2.dll16.so
+%{_libdir}/wine/ddeml.dll16.so
 %{_libdir}/wine/dispdib.dll16.so
 %{_libdir}/wine/display.drv16.so
 %{_libdir}/wine/imm.dll16.so
@@ -747,6 +746,7 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/olecli.dll16.so
 %{_libdir}/wine/olesvr.dll16.so
 %{_libdir}/wine/rasapi16.dll16.so
+%{_libdir}/wine/shell.dll16.so
 %{_libdir}/wine/sound.drv16.so
 %{_libdir}/wine/storage.dll16.so
 %{_libdir}/wine/stress.dll16.so
@@ -864,6 +864,14 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/winepulse.drv.so
 
 %changelog
+* Tue May 12 2009 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
+- 1.1.21-1
+- version upgrade
+
+* Mon Apr 27 2009 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
+- 1.1.20-1
+- version upgrade
+
 * Mon Mar 30 2009 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
 - 1.1.18-1
 - version upgrade (#490672, #491321)


--- wine-desktop-mime.patch DELETED ---


--- winepulse-0.24.patch DELETED ---




More information about the fedora-extras-commits mailing list