Re: CIA going down: KGB wants your commits!
On Sep 27, 2012, at 5:10 PM, Austin English wrote: > -- > -Austin > > -- Forwarded message -- > From: Martín Ferrari > Date: Thu, Sep 27, 2012 at 3:52 PM > Subject: CIA going down: KGB wants your commits! > To: debian-proj...@lists.debian.org, Debian Developers > > > > Hi there! > > Not to "to knock 'em when they're down", but since it seems that the CIA.vc > service has officially closed recently (cannot find exactly when did that > happen), I think it's worthwhile offering this little project we (dam@, > gregoa@, and me) have since a few years ago, called KGB (ha-ha). > > It's a very simple and dumb client-server architecture: IRC bots running in > our personal servers listen for SOAP messages sent by kgb-clients called > from post-commit hooks in repos out there. The bot just relays and formats > a message, nothing fancier than that. > > So, if you're looking for a simple IRC notification of your commits, this > might be of help. I'd like to put forward another alternative, from the guy who maintained the CIA scripts for git: http://www.catb.org/esr/irker/ (Yeah, that ESR.) After the CIA announcement, he rushed to get it out as a replacement, though he's seen this coming and has been working on this for quite some time. It's even backwards-compatible (to some extent) with CIA: it can take XML-RPC notifications sent by CIA clients. Just making sure you evaluate all your options. :) Oh, and personally, I wouldn't trust anything associated with the KGB. (Just kidding... ;) Chip > > You can either run your own bot (debian package kgb-bot), or use ours. As > for the client, alioth does not have it installed, but you can run it off > /home/groups/kgb. There's a sample configuration there too. In > /home/groups/pkg-perl/meta/pkg-perl-post-receive you can see how to use it > from a post-commit hook. > > If you rather use our bots, we'll need you to provide: a project/repository > name, an IRC channel, and a password (used to avoid spam, not really > secure). > > -- > Martín Ferrari > > > -- > To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org > with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org > Archive: > http://lists.debian.org/cal60pd_7zopk4w4rta49-jymxzkou+k7ddqzuiqsp32kz9b...@mail.gmail.com > >
Re: [PATCH] msi: Use next cabinet from the media table instead of failing when there is a mismatch with continuous cabinet.
Le 27/09/2012 11:26, Hans Leidekker a écrit : On Thu, 2012-09-27 at 09:59 +0200, Christian Costa wrote: diff --git a/dlls/msi/media.c b/dlls/msi/media.c index 612624d..8a39fcd 100644 --- a/dlls/msi/media.c +++ b/dlls/msi/media.c @@ -358,8 +358,18 @@ static INT_PTR cabinet_next_cabinet(FDINOTIFICATIONTYPE fdint, if (strcmpiW( mi->cabinet, cab )) { -ERR("Continuous cabinet does not match the next cabinet in the Media table\n"); -goto done; +LPSTR next_cab; + +WARN("Continuous cabinet %s does not match the next cabinet %s in the media table\n", debugstr_w(cab), debugstr_w(mi->cabinet)); + +/* Use cabinet name from the media table */ +next_cab = strdupWtoA(mi->cabinet); +/* Modify path to cabinet file with full filename (psz3 points to a 256 bytes buffer that can be modified contrary to psz1 and psz2) */ +strcat(pfdin->psz3, "\\"); +strcat(pfdin->psz3, next_cab); +/* Path psz3 and cabinet psz1 are concatenated by FDI so just reset psz1 */ +*pfdin->psz1 = 0; +msi_free(next_cab); } if (!(cabinet_file = get_cabinet_filename(mi))) The requirement that the continuous cabinet name matches the next cabinet in the media table might simply be too strict. Perhaps we need to try them one by one and let FDI decide based on the setID and iCabinet fields. Can you please add some tests? Does not seem trivial to test this but I will try. Thanks Christian
Re: is CreateThread(CREATE_SUSPENDED) fully functional?
Am 27.09.2012 09:13, schrieb joerg-cyril.hoe...@t-systems.com: > Hi, > > Recently I thought I found a use-case for CreateThread(CREATE_SUSPENDED). > The idiom is to get the thread handle before the thread starts a life on its > own. > > I looked at the kernel tests, > http://source.winehq.org/source/dlls/kernel32/tests/thread.c#L460 > > However, both invocations with CREATE_SUSPENDED actually test the > pair CreateThread + SuspendThread. The tests do not prove that > CREATE_SUSPENDED works! > They only prove that the suspend counter and perhaps SuspendThread work. > > a) Does Wine not support CREATE_SUSPENDED, so that the tests do the best they > can? > In such a case, a WARN("ignoring SUSPENDED flag, beware of race > conditions\n") would be appropriate. > > or > b) CREATE_SUSPENDED is fully supported on all platforms. > Then the tests need some refinement. Why did you only had a look at the tests? I checked the source in 30 seconds and answered the question for me: CREATE_SUSPENDED is an essential part of the CreateThread Implementation. Anyway, more tests are always welcome. -- Best Regards, André Hentschel
Re: is CreateThread(CREATE_SUSPENDED) fully functional?
I'm pretty sure CREATE_SUSPENDED works. It's such a basic thing that would cause many race conditions if it did not, including in parts of Wine that use it and in the test you just linked. If the new thread were not initially suspended, it would be possible for the thread to return between the initial CreateThread call and the following SuspendThread call. This would cause the first WaitForSingleObject to succeed and the test to fail. I guess you could change the test to include a wait before the first SuspendThread call, but given that there probably aren't any broken implementations that this would specifically catch (and those implementations would already fail sometimes), I don't see the point.
Re: [1/3] gdiplus: Move font substitution test into a separate body.
The series looks good to me. Very cool to have a fix for this.
Re: gdiplus: Reuse an existing image stream in GdipImageSelectActiveFrame.
> @@ -3898,7 +3894,7 @@ GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage > *image, GDIPCONST GUID *d > return Ok; > } > > -IStream_Release(stream); > +IStream_Release(image->stream); > return stat; > } I don't think it's necessary to AddRef/Release the stream anymore in GdipImageSelectActiveFrame. Creating the new image and freeing the old one will update the refcount as necessary. And it's a bit confusing since technically the current image->stream is released by free_image_data then overwritten (with the same value, fortunately) by copying new_image to image. Looks good otherwise.
'sort' implementation (Bug 27933) - any easy way?
Hello, While working on more of the 'for' processing in the command shell, I've come across a stumbling block that wildcard expansion 'ordering' is not guaranteed (findfirst/findnext) meaning I cannot automate tests for some of the key bits - this is frustrating as we really need tests for the things I'm looking at as the code is getting complex. Looking in the cmd testsuite, there's already some commented out tests as well, saying we really need a 'sort' implementation, and that would also resolve the problem I have at the moment. Therefore, I'd like to know if there's any simple way to implement a command line sort program which we can call from the command shell. This has subsequently been raised as bug 27933. My first thought was to avoid reinventing the wheel and to have a windows program called sort which parses its parameters and then runs the Unix 'sort' command with an equivalent command line. I think most of the windows command line parameters have Unix equivalents, and for the majority of cases it would be a case of transposing a windows path to a Unix path, and just running the Unix sort. However, I then started to get concerned about stdin / stdout... Is there any way to take the windows stdin and 'connect it' to the unix program you spawn, and vica-versa for the stdout. Whilst I dont accurately need this for the testsuite, without it the wine implementation would not match the windows one. So I think my specific questions are... 1. Is wrappering an existing (Linux) 'sort' program an option for this, or do we really need a whole unique implementation of sort (which I would have no idea how to write!)? If it is an option, the two key questions I have are: 2. How do I handle stdin / stdout, so sort can work in pipes / redirects 3. Is it ok to use wine_get_unix_file_name to convert files and directories to the unix equivalents when building the unix equivalent command line? (as per winepath) Thanks. Jason
Re: d3dx9_36 [patch 6/6]: Implement D3DXSHEvalHemisphereLight
Well I think, if you rework a series, please add something like try xyz or so ... Also try to avoid to add / remove some patches, at least if they actually don't have anything todo with the rest of the patch set (if they could be submitted on their own). On 27.09.2012 10:00, Nozomi Kodama wrote: +TRACE("%u, %p, %p, %p, %p, %p, %p\n", order, dir, &top, &bottom, rout, gout, bout); Sure, that's an other form of the trace. I think we hadn't one with such a version... other traces in the file look like (the one marked with * is my preferred version): TRACE("out %p, order %u, a %p, b %p\n", out, order, a, b); * TRACE("(%p, %p, %u)\n", pout, pin, n); I don't think it makes much sense to print the address for &top. It doesn't gather some useful information, does it? Instead you may print the actual content for r,g,b if you like. +if ( gout ) Also here, I prefer "if (gout)" ... I know there are several occurrences for the other style ... I should have mentioned that earlier ... it's not something which is critical... git grep "if (" dlls/d3dx9_36/* | wc -l reveals ~2000 while git grep "if ( " dlls/d3dx9_36/* | wc -l does ~100 > +ok(relative_error(expected, blue_out[j]) < admitted_error, > + "Blue: case %u, order %u: expected[%u] = %f, received %f \n", l, order, j, expected, blue_out[j]); Please indent 8 instead of 2 spaces when a new line is used ... Cheers Rico
Re: [PATCH] msi: Use next cabinet from the media table instead of failing when there is a mismatch with continuous cabinet.
On Thu, 2012-09-27 at 09:59 +0200, Christian Costa wrote: > diff --git a/dlls/msi/media.c b/dlls/msi/media.c > index 612624d..8a39fcd 100644 > --- a/dlls/msi/media.c > +++ b/dlls/msi/media.c > @@ -358,8 +358,18 @@ static INT_PTR cabinet_next_cabinet(FDINOTIFICATIONTYPE > fdint, > > if (strcmpiW( mi->cabinet, cab )) > { > -ERR("Continuous cabinet does not match the next cabinet in the Media > table\n"); > -goto done; > +LPSTR next_cab; > + > +WARN("Continuous cabinet %s does not match the next cabinet %s in > the media table\n", debugstr_w(cab), debugstr_w(mi->cabinet)); > + > +/* Use cabinet name from the media table */ > +next_cab = strdupWtoA(mi->cabinet); > +/* Modify path to cabinet file with full filename (psz3 points to a > 256 bytes buffer that can be modified contrary to psz1 and psz2) */ > +strcat(pfdin->psz3, "\\"); > +strcat(pfdin->psz3, next_cab); > +/* Path psz3 and cabinet psz1 are concatenated by FDI so just reset > psz1 */ > +*pfdin->psz1 = 0; > +msi_free(next_cab); > } > > if (!(cabinet_file = get_cabinet_filename(mi))) The requirement that the continuous cabinet name matches the next cabinet in the media table might simply be too strict. Perhaps we need to try them one by one and let FDI decide based on the setID and iCabinet fields. Can you please add some tests?
Re: d3dx9_36 [patch 1/6]: Implement D3DXSHMultiply4
On 27.09.2012 09:56, Nozomi Kodama wrote: +FLOAT* WINAPI D3DXSHMultiply4(FLOAT *out, CONST FLOAT *a, CONST FLOAT *b) FLOAT * WINAPI D3DXSHMultiply4(FLOAT *out, const FLOAT *a, const FLOAT *b) A minor nitpick, anyone against something like? I think that was what Matteo meant in http://www.winehq.org/pipermail/wine-devel/2012-September/096924.html with "Fix the FLOAT*"? +TRACE("(%p, %p, %p)\n", out, a, b); I would probably prefer: TRACE("out %p, a %p, b %p\n", out, a, b); I know the other Multiply functions and so on use your trace format... +out[0] = 0.28209479f * a[0] * b[0]; There are still double spaces ... Hint: it's not the only occurrence. Cheers Rico
Re: dsound: Don't bother shrinking the secondary buffer list.
Hello Jörg, as always it depends. On 09/27/2012 09:37 AM, joerg-cyril.hoe...@t-systems.com wrote: >> +#include > > your patch is already committed, yet I believe that the least that dsound > needs is new asserts. > > Asserts in dsound have been a PITA in Wine for the last decade. > > It's ok for the kernel to crash in an assert. IMHO it is not ok for an > optional thing like sound. > > The assert's backtrace will not help anybody, because the logical error will > have happened much earlier. I disagree. It helps GyB to open regression bug reports and it helps me to fix them. > Instead, a plain ERR would have been just as telling. Let's quote > http://www.winehq.org/docs/winedev-guide/debugging#DBG-CLASSES > "ERR: Messages in this class indicate serious errors in Wine, > such as as conditions that should never happen by design." > > I recommend: > -assert(device->buffers[0] == pDSB); > + if (pdevice->buffers[0] != pDSB) > + ERR("broken device buffer %p\n", device->buffers[0]); > HeapFree(GetProcessHeap(), 0, device->buffers); > device->buffers = NULL; > > The ERR is IMHO revealing enough in a user's log. That's too late if it hits the user. I had reviewed the code: That code is an implementation detail completely outside the control of the applications. Barring a memory corruption there is no way for it to fail. The assert is there for two reasons: - To crash during "make test" when the next developer touches that code. - As a comment less likely to be removed by Alexandre ;) > If a sound component detects a bogus state, > I'd very much prefer that it disables sound -- without crashing. In general "it depends" of course. In this particular case the ERR would be useless noise as the assert is only for the last sound buffer that is removed; usually at program exit. Until then the code does what you prefer: silently drops sound buffers without crashing thus deferring the crash to the program exit. A crash on program exit does get reported, more so than an ERR on the command line. bye michael
Re: d3dx9_36 [patch 2/6]: Speed-up some tests
On 27.09.2012 09:57, Nozomi Kodama wrote: -FLOAT a[64], b[64], got; +FLOAT a[49], b[49], got; CONST FLOAT expected[] = { 0.5f, 0.5f, 25.0f, 262.5f, 1428.0f, 5362.0f, 15873.0f, 39812.0f, 88400.0f, }; -for (i = 0; i < 64; i++) +for (i = 0; i < 49; i++) -for (i = 0; i < 9; i++) +for (i = 0; i <= D3DXSH_MAXORDER + 1; i++) Again: You may correct the (array) size for the expected value ... If we run til element 7 instead of 8, I think the last element could be thrown away? Cheers Rico
dsound: Don't bother shrinking the secondary buffer list.
Michael, >+#include your patch is already committed, yet I believe that the least that dsound needs is new asserts. Asserts in dsound have been a PITA in Wine for the last decade. It's ok for the kernel to crash in an assert. IMHO it is not ok for an optional thing like sound. The assert's backtrace will not help anybody, because the logical error will have happened much earlier. Instead, a plain ERR would have been just as telling. Let's quote http://www.winehq.org/docs/winedev-guide/debugging#DBG-CLASSES "ERR: Messages in this class indicate serious errors in Wine, such as as conditions that should never happen by design." I recommend: -assert(device->buffers[0] == pDSB); + if (pdevice->buffers[0] != pDSB) + ERR("broken device buffer %p\n", device->buffers[0]); HeapFree(GetProcessHeap(), 0, device->buffers); device->buffers = NULL; The ERR is IMHO revealing enough in a user's log. If a sound component detects a bogus state, I'd very much prefer that it disables sound -- without crashing. Regards, Jörg Höhle
is CreateThread(CREATE_SUSPENDED) fully functional?
Hi, Recently I thought I found a use-case for CreateThread(CREATE_SUSPENDED). The idiom is to get the thread handle before the thread starts a life on its own. I looked at the kernel tests, http://source.winehq.org/source/dlls/kernel32/tests/thread.c#L460 However, both invocations with CREATE_SUSPENDED actually test the pair CreateThread + SuspendThread. The tests do not prove that CREATE_SUSPENDED works! They only prove that the suspend counter and perhaps SuspendThread work. a) Does Wine not support CREATE_SUSPENDED, so that the tests do the best they can? In such a case, a WARN("ignoring SUSPENDED flag, beware of race conditions\n") would be appropriate. or b) CREATE_SUSPENDED is fully supported on all platforms. Then the tests need some refinement. Thank you, Jörg Höhle