http://bugs.winehq.org/show_bug.cgi?id=19811
Summary: Visual C 2005 redistributable installers create many empty directories in WinSXS Product: Wine Version: 1.1.27 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: paulc@voip.null.ro
Attempting to install various versions of VS 2005 vcredist_x86.exe in a fresh prefix creates directories in WinSXS for all versions described by the policies.
Only the directory for the current version (described by the manifest) has DLL files in it, all others are empty.
Attempting to fix the installation triggers bug # 18834
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #1 from Paul Chitescu paulc@voip.null.ro 2009-08-21 09:50:32 --- Created an attachment (id=23203) --> (http://bugs.winehq.org/attachment.cgi?id=23203) Wine output (2 runs) and created directories
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #2 from Austin English austinenglish@gmail.com 2009-08-21 21:31:32 --- (In reply to comment #0)
Attempting to install various versions of VS 2005 vcredist_x86.exe in a fresh prefix creates directories in WinSXS for all versions described by the policies.
Only the directory for the current version (described by the manifest) has DLL files in it, all others are empty.
Have you tested windows to see what happens there?
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #3 from Vitaliy Margolen vitaliy@kievinfo.com 2009-08-21 21:35:22 --- What exactly are you installing? URLs and md5s please!
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #4 from Paul Chitescu paulc@voip.null.ro 2009-08-22 06:19:59 --- (In reply to comment #3)
What exactly are you installing? URLs and md5s please!
Original VC 2005 SP1 runtimes: http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-... MD5: 5c82be7ad1775b67916ee19c15b99331
Latest patch build 4053 from Windows Update: http://download.microsoft.com/download/6/B/B/6BB661D6-A8AE-4819-B79F-236472F... MD5: 6402438591b548121f54b0706a2c6423
It happens to all versions and on installers that worked correctly before (wine-1.1.26).
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #5 from Paul Chitescu paulc@voip.null.ro 2009-08-22 06:26:06 --- (In reply to comment #2)
(In reply to comment #0)
Attempting to install various versions of VS 2005 vcredist_x86.exe in a fresh prefix creates directories in WinSXS for all versions described by the policies.
Only the directory for the current version (described by the manifest) has DLL files in it, all others are empty.
Have you tested windows to see what happens there?
On Windows and previous wine versions directories are created only for the actually installed DLL version - in the attachement it's build 762. Empty directories are not created.
The name of the directories created by Windows XP matches those actually populated by wine.
http://bugs.winehq.org/show_bug.cgi?id=19811
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #6 from Anastasius Focht focht@gmx.net 2009-08-22 08:17:50 --- Hello,
--- quote --- On Windows and previous wine versions directories are created only for the actually installed DLL version - in the attachement it's build 762. Empty directories are not created. --- quote ---
Even in ancient Wine versions the VC++ 2005 SP1 runtime installer created those empty folders. Although questionable behaviour it causes no harm.
The (pre)creation of component folders - even if the component has no files attached - result from trying to work around broken installers that didn't use CreateFolders action properly and from the way how Wine msi processes compressed files.
"CreateFolders" action should only create folders that are listed in CreateFolder table (which it already does). Additionally forcing the creation of all component folders in this action through msi_create_component_directories() helper is wrong.
"InstallFiles" action (which also calls msi_create_component_directories() helper) should only create target folder structure for files that are really copied/uncompressed.
Regards
http://bugs.winehq.org/show_bug.cgi?id=19811
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hans@meelstraat.net
--- Comment #7 from Hans Leidekker hans@meelstraat.net 2010-05-30 08:56:02 --- This should be fixed, we don't call msi_create_component_directories in the CreateFolder action anymore. Please retest.
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #8 from Anastasius Focht focht@gmx.net 2010-05-30 10:58:11 --- Hello,
--- quote --- This should be fixed, we don't call msi_create_component_directories in the CreateFolder action anymore. Please retest. --- quote ---
Nope, even if "CreateFolder" behaviour is fixed now, "InstallFiles" action will still do, see second part of my comment.
--- quote --- ... "InstallFiles" action (which also calls msi_create_component_directories() helper) should only create target folder structure for files that are really copied/uncompressed. --- quote ---
--- snip dlls/msi/files.c --- /* * ACTION_InstallFiles() * * For efficiency, this is done in two passes: * 1) Correct all the TargetPaths and determine what files are to be installed. * 2) Extract Cabinets and copy files. */ UINT ACTION_InstallFiles(MSIPACKAGE *package) { MSIMEDIAINFO *mi; UINT rc = ERROR_SUCCESS; MSIFILE *file;
/* increment progress bar each time action data is sent */ ui_progress(package,1,1,0,0);
schedule_install_files(package);
/* * Despite MSDN specifying that the CreateFolders action * should be called before InstallFiles, some installers don't * do that, and they seem to work correctly. We need to create * directories here to make sure that the files can be copied. */ msi_create_component_directories( package );
mi = msi_alloc_zero( sizeof(MSIMEDIAINFO) );
LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry ) ... --- snip dlls/msi/files.c ---
So unfortunately this isn't fixed.
Regards
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #9 from Hans Leidekker hans@meelstraat.net 2010-06-01 03:59:51 --- Created an attachment (id=28478) --> (http://bugs.winehq.org/attachment.cgi?id=28478) msi: Create the directory right before installing a file.
Try this patch.
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #10 from Anastasius Focht focht@gmx.net 2010-06-01 05:17:04 --- Hello,
--- quote --- Created an attachment (id=28478) --> (http://bugs.winehq.org/attachment.cgi?id=28478) [details] msi: Create the directory right before installing a file.
Try this patch. --- quote ---
yes, looks nice. I tested with winetricks vcrun2005 and vcrun2008 verbs ;-)
Regards
http://bugs.winehq.org/show_bug.cgi?id=19811
--- Comment #11 from Anastasius Focht focht@gmx.net 2010-06-09 14:08:49 --- Hello,
this bug is fixed by commit dcb501decd8a40032200c917b5017f75cf362ca6 Thanks Hans.
Regards
http://bugs.winehq.org/show_bug.cgi?id=19811
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #12 from Nikolay Sivov bunglehead@gmail.com 2010-06-09 14:13:03 --- Fixed.
http://bugs.winehq.org/show_bug.cgi?id=19811
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #13 from Alexandre Julliard julliard@winehq.org 2010-06-11 12:51:53 --- Closing bugs fixed in 1.2-rc3.
http://bugs.winehq.org/show_bug.cgi?id=19811
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |dcb501decd8a40032200c917b50 | |17f75cf362ca6
http://bugs.winehq.org/show_bug.cgi?id=19811
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer URL| |http://www.microsoft.com/do | |wnloads/details.aspx?Family | |ID=200b2fd9-ae1a-4a14-984d- | |389c36f85647&displaylang=en