I have compiled a list of applications that are affected by the bug in which the query in ready_media_for_file() in MSI returns the wrong results, it returns LastSequence less than the file->Sequence being passed.
Here is a detailed analysis of the multiple types of errors this bugs causes.
Common debug outputs of this bug are:
Error #1:
err:msi:ACTION_InstallFiles compressed file wasn't extracted
This error is usually caused by the results of the query returning a LastSequence number of Less than that of the working install media and the installer is trying to extract the file from the wrong install medium.
Error #2:
err:msi:extract_cabinet_file FDICopy failed err:msi:ACTION_InstallFiles Unable to ready media
There is a zero in LastSequence Value of the Media table and the query in ready_media_for_file() returns it. For some reason the msi file has a zero in the LastSequence but its really a dummy cabinet file and doesn't exist. The file sequence being passed for the first file is most likely 1, and the query of >= 1 is returning 0 falsely causing this error.
This problem in MSI spans a multitude of bugs.
America's Army - bug #5139 J2SE - bug # 4280 Half Life 2 - bug # 5004, 4533 Dawn of War Demo - bug # 3749 E-Sword 6.5 - bug # 4251 Rush for Berlin demo - bug #5187 ATI demo(Rendering With Natural Light ) - bug # 4712?
There are probably other bugs resulting from this, but the log doesn't detail it well enough, alot of them just have the debug dump at the end and not the pertainent msi err lines. I only included applications where it was obvious from the log, or I tested personally.
From: Mike McCormack mike@codeweavers.com To: EA Durbin ead1234@hotmail.com Subject: Re: FW: RE: My 1.0 wish list Date: Sun, 04 Jun 2006 00:30:41 +0900
You can send me as many mails as you like, but I'm not doing anything until there's a test case showing the problem.
Mike
I wrote a test showing the results of the query in the wine installer and included the source code and resulting logs which clearly displays the problem. That's the best I can do. I'm not up to snuff on my C programming, nor am I familiary with how the official test case for wine is supposed to be layed out. If someone else wants to work on it then thats fine, but I layed out the problem, and debugged it, and I've proven this with code and resulting logs. This problem affects a multitude of applications in wine. If your not willing to work on it then either someone else can, or it can remain broken.