Diff -u doesn't find any difference between try 4 and try 5, and probably older tries. If you're resending them because the older ones weren't applied, that's futile - Alexandre is on vacation.
Also it is generally a bad idea to keep resending a unchanged patch. If you think the patch has been lost(e.g. Alexandre is waiting for my review and I am not at home, etc) it is better to ask on Wine-devel what is up with the patches.
Am Sonntag 08 August 2010, 07:09:24 schrieb Oldřich Jedlička:
dlls/ddraw/tests/dsurface.c | 138 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 138 insertions(+), 0 deletions(-)
diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c index 76bfc7e..8cdcd92 100644 --- a/dlls/ddraw/tests/dsurface.c +++ b/dlls/ddraw/tests/dsurface.c @@ -25,6 +25,7 @@
#include <assert.h> #include "wine/test.h" +#include "wine/exception.h" #include "ddraw.h" #include "d3d.h" #include "unknwn.h" @@ -3569,6 +3570,142 @@ static void BackBufferAttachmentFlipTest(void) DestroyWindow(window); }
+static void CreateSurfaceBadCapsSizeTest(void) +{
- DDSURFACEDESC ddsd_ok;
- DDSURFACEDESC ddsd_bad1;
- DDSURFACEDESC ddsd_bad2;
- DDSURFACEDESC ddsd_bad3;
- DDSURFACEDESC ddsd_bad4;
- DDSURFACEDESC2 ddsd2_ok;
- DDSURFACEDESC2 ddsd2_bad1;
- DDSURFACEDESC2 ddsd2_bad2;
- DDSURFACEDESC2 ddsd2_bad3;
- DDSURFACEDESC2 ddsd2_bad4;
- IDirectDrawSurface *surf;
- IDirectDrawSurface4 *surf4;
- IDirectDrawSurface7 *surf7;
- HRESULT hr;
- IDirectDraw2 *dd2;
- IDirectDraw4 *dd4;
- IDirectDraw7 *dd7;
- const DWORD caps = DDSCAPS_OFFSCREENPLAIN;
- memset(&ddsd_ok, 0, sizeof(ddsd_ok));
- ddsd_ok.dwSize = sizeof(ddsd_ok);
- ddsd_ok.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
- ddsd_ok.dwWidth = 64;
- ddsd_ok.dwHeight = 64;
- ddsd_ok.ddsCaps.dwCaps = caps;
- memcpy(&ddsd_bad1, &ddsd_ok, sizeof(ddsd_bad1));
- ddsd_bad1.dwSize--;
- memcpy(&ddsd_bad2, &ddsd_ok, sizeof(ddsd_bad2));
- ddsd_bad2.dwSize++;
- memcpy(&ddsd_bad3, &ddsd_ok, sizeof(ddsd_bad3));
- ddsd_bad3.dwSize = 0;
- memcpy(&ddsd_bad4, &ddsd_ok, sizeof(ddsd_bad4));
- ddsd_bad4.dwSize = sizeof(DDSURFACEDESC2);
- memset(&ddsd2_ok, 0, sizeof(ddsd2_ok));
- ddsd2_ok.dwSize = sizeof(ddsd2_ok);
- ddsd2_ok.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
- ddsd2_ok.dwWidth = 64;
- ddsd2_ok.dwHeight = 64;
- ddsd2_ok.ddsCaps.dwCaps = caps;
- memcpy(&ddsd2_bad1, &ddsd2_ok, sizeof(ddsd2_bad1));
- ddsd2_bad1.dwSize--;
- memcpy(&ddsd2_bad2, &ddsd2_ok, sizeof(ddsd2_bad2));
- ddsd2_bad2.dwSize++;
- memcpy(&ddsd2_bad3, &ddsd2_ok, sizeof(ddsd2_bad3));
- ddsd2_bad3.dwSize = 0;
- memcpy(&ddsd2_bad4, &ddsd2_ok, sizeof(ddsd2_bad4));
- ddsd2_bad4.dwSize = sizeof(DDSURFACEDESC);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_ok, &surf, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface_Release(surf);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad1, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad2, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad3, &surf, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface didn't return
0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad4, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw2, (void **)
&dd2); + ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed: 0x%08x\n", hr); +
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_ok, &surf, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw2_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface_Release(surf);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad1, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad2, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad3, &surf, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface didn't
return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad4, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- IDirectDraw2_Release(dd2);
- hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw4, (void **)
&dd4); + ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed: 0x%08x\n", hr); +
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_ok, &surf4, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw4_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface4_Release(surf4);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad1, &surf4, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad2, &surf4, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad3, &surf4, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface didn't
return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad4, &surf4, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- IDirectDraw4_Release(dd4);
- hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw7, (void **)
&dd7); + ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed: 0x%08x\n", hr); +
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_ok, &surf7, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw7_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface7_Release(surf7);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad1, &surf7, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad2, &surf7, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad3, &surf7, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface didn't
return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad4, &surf7, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- IDirectDraw7_Release(dd7);
+}
START_TEST(dsurface) { HRESULT ret; @@ -3624,5 +3761,6 @@ START_TEST(dsurface) GetDCFormatTest(); BackBufferCreateSurfaceTest(); BackBufferAttachmentFlipTest();
- CreateSurfaceBadCapsSizeTest(); ReleaseDirectDraw();
}
Hi Stefan,
10.8.2010 15:40:40, Stefan Dösinger stefandoesinger@gmx.at: Diff -u doesn't find any difference between try 4 and try 5, and probably older tries. If you're resending them because the older ones weren't applied, that's futile - Alexandre is on vacation.
Also it is generally a bad idea to keep resending a unchanged patch. If you think the patch has been lost(e.g. Alexandre is waiting for my review and I am not at home, etc) it is better to ask on Wine-devel what is up with the patches.
Ok, I understand. I'm just sending the whole patchset with changed/unchanged patches (the number of patches changed, because some of them had been applied and some of them I removed, because they don't implement things properly).
Is there some recommended way to send updated patchsets when only some patches need to be improved (but the sequence of applying should stay)? Would the "introductionary" mail describing changes and patches as follow-ups help?
Thanks, Oldřich.
Am Sonntag 08 August 2010, 07:09:24 schrieb Oldřich Jedlička:
dlls/ddraw/tests/dsurface.c | 138 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 138 insertions(+), 0 deletions(-)
diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c index 76bfc7e..8cdcd92 100644 --- a/dlls/ddraw/tests/dsurface.c +++ b/dlls/ddraw/tests/dsurface.c @@ -25,6 +25,7 @@
#include <assert.h> #include "wine/test.h" +#include "wine/exception.h" #include "ddraw.h" #include "d3d.h" #include "unknwn.h" @@ -3569,6 +3570,142 @@ static void BackBufferAttachmentFlipTest(void) DestroyWindow(window); }
+static void CreateSurfaceBadCapsSizeTest(void) +{
- DDSURFACEDESC ddsd_ok;
- DDSURFACEDESC ddsd_bad1;
- DDSURFACEDESC ddsd_bad2;
- DDSURFACEDESC ddsd_bad3;
- DDSURFACEDESC ddsd_bad4;
- DDSURFACEDESC2 ddsd2_ok;
- DDSURFACEDESC2 ddsd2_bad1;
- DDSURFACEDESC2 ddsd2_bad2;
- DDSURFACEDESC2 ddsd2_bad3;
- DDSURFACEDESC2 ddsd2_bad4;
- IDirectDrawSurface *surf;
- IDirectDrawSurface4 *surf4;
- IDirectDrawSurface7 *surf7;
- HRESULT hr;
- IDirectDraw2 *dd2;
- IDirectDraw4 *dd4;
- IDirectDraw7 *dd7;
- const DWORD caps = DDSCAPS_OFFSCREENPLAIN;
- memset(&ddsd_ok, 0, sizeof(ddsd_ok));
- ddsd_ok.dwSize = sizeof(ddsd_ok);
- ddsd_ok.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
- ddsd_ok.dwWidth = 64;
- ddsd_ok.dwHeight = 64;
- ddsd_ok.ddsCaps.dwCaps = caps;
- memcpy(&ddsd_bad1, &ddsd_ok, sizeof(ddsd_bad1));
- ddsd_bad1.dwSize--;
- memcpy(&ddsd_bad2, &ddsd_ok, sizeof(ddsd_bad2));
- ddsd_bad2.dwSize++;
- memcpy(&ddsd_bad3, &ddsd_ok, sizeof(ddsd_bad3));
- ddsd_bad3.dwSize = 0;
- memcpy(&ddsd_bad4, &ddsd_ok, sizeof(ddsd_bad4));
- ddsd_bad4.dwSize = sizeof(DDSURFACEDESC2);
- memset(&ddsd2_ok, 0, sizeof(ddsd2_ok));
- ddsd2_ok.dwSize = sizeof(ddsd2_ok);
- ddsd2_ok.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
- ddsd2_ok.dwWidth = 64;
- ddsd2_ok.dwHeight = 64;
- ddsd2_ok.ddsCaps.dwCaps = caps;
- memcpy(&ddsd2_bad1, &ddsd2_ok, sizeof(ddsd2_bad1));
- ddsd2_bad1.dwSize--;
- memcpy(&ddsd2_bad2, &ddsd2_ok, sizeof(ddsd2_bad2));
- ddsd2_bad2.dwSize++;
- memcpy(&ddsd2_bad3, &ddsd2_ok, sizeof(ddsd2_bad3));
- ddsd2_bad3.dwSize = 0;
- memcpy(&ddsd2_bad4, &ddsd2_ok, sizeof(ddsd2_bad4));
- ddsd2_bad4.dwSize = sizeof(DDSURFACEDESC);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_ok, &surf, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface_Release(surf);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad1, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad2, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad3, &surf, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface didn't return
0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad4, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw2, (void **)
&dd2); + ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed: 0x%08x\n", hr); +
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_ok, &surf, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw2_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface_Release(surf);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad1, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad2, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad3, &surf, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface didn't
return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad4, &surf, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- IDirectDraw2_Release(dd2);
- hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw4, (void **)
&dd4); + ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed: 0x%08x\n", hr); +
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_ok, &surf4, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw4_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface4_Release(surf4);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad1, &surf4, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad2, &surf4, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad3, &surf4, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface didn't
return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad4, &surf4, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- IDirectDraw4_Release(dd4);
- hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw7, (void **)
&dd7); + ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed: 0x%08x\n", hr); +
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_ok, &surf7, NULL);
- ok(SUCCEEDED(hr), "IDirectDraw7_CreateSurface failed: 0x%08x\n", hr);
- IDirectDrawSurface7_Release(surf7);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad1, &surf7, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad2, &surf7, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad3, &surf7, NULL);
- ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface didn't
return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad4, &surf7, NULL);
- todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
didn't return 0x%08x, but 0x%08x\n", + DDERR_INVALIDPARAMS, hr);
- IDirectDraw7_Release(dd7);
+}
START_TEST(dsurface) { HRESULT ret; @@ -3624,5 +3761,6 @@ START_TEST(dsurface) GetDCFormatTest(); BackBufferCreateSurfaceTest(); BackBufferAttachmentFlipTest();
- CreateSurfaceBadCapsSizeTest(); ReleaseDirectDraw();
}
Am 10.08.2010 um 17:42 schrieb Oldrich Jedlicka:
Ok, I understand. I'm just sending the whole patchset with changed/unchanged patches (the number of patches changed, because some of them had been applied and some of them I removed, because they don't implement things properly).
Admittedly I didn't look at the other patches, I looked at patches 1-2 and thought that I've seen this in exactly the same form before.
In your specific situation it is probably better to send just patch 1, wait until it is applied, then send patch 2, etc, and send bigger patchsets once you've a few patches in Wine. To answer the general questions, this is how I deal with problems in a part of the patchset:
*) Generally write a mail stating that the patch is broken and shouldn't be applied to wine-devel. If follow-up patches are independent of this patch I can state so in the mail. If the issue was quick to fix(e.g. whitespace problems) and I am confident that the patch should work now I'll attach the new patch and send the mail to wine-patches only.
Otherwise, if I can't attach a fixed patch right away the options are as follows:
*) Resend the entire patchset, probably on the following day. *) Let the first patches be applied, resend the remaining patches the next day.
Basically it is better to push forward a bit slower and let the patches of the day settle and resend the next day to avoid confusion.
Also a (try X) with X > 4 usually often leads to skepticism, because people don't know how many more tries will be needed. I am personally critical of this because of my own experience on gcc-patches. I needed about 10 tries to get the gcc patch for the Steam overlay, I would never have been able to do it with just 4 or 5 iterations.
Is there some recommended way to send updated patchsets when only some patches need to be improved (but the sequence of applying should stay)? Would the "introductionary" mail describing changes and patches as follow-ups help?
This can be helpful, but it is also possible to mention what changes you made in the new patch version in the patch description itself. A separate overview description(or description in patch 1) can be helpful if the overall direction of the changes is not easy to understand from the patches themselves, e.g. if more patches are going to come after those are applied. In this situation it is also recommended to send all patches in a packed archive to wine-devel for review, so everyone can see where you're headed.