Commit Graph

228 Commits

Author SHA1 Message Date
Alexandre Julliard 0b99af82b2 msi: Don't include msvcrt headers. 2008-12-12 10:19:54 +01:00
James Hawkins d15fddf6f5 msi: Resolve file source paths dynamically, as the source directory can be changed. 2008-10-07 12:13:33 +02:00
James Hawkins 765275a306 msi: Make sure read-only source files are set writable after being copied. 2008-09-08 12:47:22 +02:00
James Hawkins 472b991958 msi: Don't remove a misc file if the action is unknown. 2008-08-21 11:44:39 +02:00
James Hawkins f909e1c06e msi: Don't remove a file that is installed as source. 2008-08-21 11:44:19 +02:00
James Hawkins b965a74ef2 msi: Downgrade an ERR to a TRACE. 2008-08-21 11:43:58 +02:00
James Hawkins 7b858882ac msi: If the filename is empty or NULL, remove the directory. 2008-08-21 11:43:51 +02:00
James Hawkins 10a2a5effe msi: Base removal of a file on the component's action, not the file's state. 2008-08-19 13:56:01 +02:00
James Hawkins e64a699b07 msi: Remove misc files from the RemoveFile table. 2008-08-19 13:39:40 +02:00
James Hawkins a00bdc1178 msi: A file's component's state does not determine file removal. 2008-08-19 13:39:30 +02:00
James Hawkins f33ef6ac3b msi: Don't remove a file if the old file is strictly newer than the version to be installed. 2008-08-19 13:39:19 +02:00
James Hawkins ca4b17efe8 msi: Don't check for a NULL component, as the component is guaranteed to exist. 2008-08-19 13:39:11 +02:00
James Hawkins 74239fcd91 msi: Factor out media handling and use the new interface to efficiently extract assemblies. 2008-08-19 13:37:51 +02:00
James Hawkins 64a9e0f750 msi: msidbFileAttributesVital has no effect on the installation of files. 2008-07-22 13:10:21 +02:00
James Hawkins 4e467ad729 msi: Halt the installation with an error if a source file is missing. 2008-07-22 13:10:12 +02:00
James Hawkins 89a8cfdb53 msi: Don't overwrite a file that has a greater or equal version to the source file. 2008-06-25 20:28:52 +02:00
James Hawkins 5538fa0290 msi: Publish media disks whether the drive type is removable or not. 2008-06-24 12:14:42 +02:00
James Hawkins d3cc801da1 msi: Set the source path for uncompressed files when loading the file. 2008-06-11 11:27:15 +02:00
James Hawkins 77d259f46c msi: Search the last used source if the cabinet to extract cannot be found. 2008-05-22 11:30:54 +02:00
James Hawkins bfe07d1d07 msi: Add initial implementation of MsiPublishAssemblies. 2008-04-30 13:45:23 +02:00
James Hawkins 82517d6d67 msi: Set the install context based on the ALLUSERS property. 2008-04-07 11:27:10 +02:00
James Hawkins e94b065df3 msi: Fix the type of the ID parameter of MsiSourceListEnumMediaDisks. 2008-03-20 14:27:35 +01:00
Ove Kaaven be874f1a26 msi: Fix bug in handling of multivolume CAB files. 2008-03-07 10:52:11 +01:00
James Hawkins bdbb7a0348 msi: Search existing published sources if the media cannot be found. 2008-02-26 11:20:46 +01:00
James Hawkins 7d10d1d2d0 msi: Store the media type and set the last used source type accordingly. 2008-02-26 11:20:27 +01:00
James Hawkins d62bd166dc msi: Remove setting a source list property that's in the wrong place. 2008-02-26 11:20:07 +01:00
James Hawkins 4d2cf7a44b msi: Publish source information in the user-unmanaged context. 2008-02-26 11:20:02 +01:00
James Hawkins ced64861f5 msi: dest_path refers to the directory prefix, not the entire file path. 2008-01-16 12:16:43 +01:00
James Hawkins 5352d099b4 msi: Create parent directories when duplicating files if they don't exist, with tests. 2008-01-07 12:16:56 +01:00
James Hawkins b012c3366c msi: Directly download mi->source now that SourceDir points to the URL. 2008-01-07 12:15:56 +01:00
James Hawkins 4b4f737bfc msi: Only read an internal package if the file to install is compressed. 2008-01-07 12:14:43 +01:00
James Hawkins d51ed8bd93 msi: Free the cabinet string on error. 2007-12-12 13:48:50 +01:00
James Hawkins 33a4fe19de msi: Don't check for the media or cabinet if the cabinet is internal. 2007-11-29 13:37:13 +01:00
James Hawkins ca9a4dc0d9 msi: Only check the volume label if it's different than the first media's volume label. 2007-11-26 12:28:24 +01:00
James Hawkins 4160722b07 msi: Check the destination file's hash and skip that file if the hash matches. 2007-11-26 12:28:15 +01:00
James Hawkins 075e84bd90 msi: Check the cabinet's full path for existence, not just the cabinet name. 2007-11-20 12:29:00 +01:00
James Hawkins 78eead93fd msi: Don't check for a cabinet's existence if it's embedded in the package. 2007-11-19 12:55:36 +01:00
James Hawkins 4e9940990b msi: Don't ignore the error returned by ready_media. 2007-11-15 12:48:29 +01:00
James Hawkins b1507aee98 msi: Only check the presence of the cabinet if the file is compressed. 2007-11-15 12:48:18 +01:00
James Hawkins bb747e4fbe msi: Simplify ready_media. 2007-11-15 12:47:59 +01:00
James Hawkins 5606428a71 msi: Set media info strings to NULL after freeing them. 2007-10-23 18:05:32 +02:00
James Hawkins 5e46fc9019 msi: Delay publishing of the SourceList until the PublishProduct action. 2007-07-03 13:43:20 +02:00
James Hawkins 71d7da1170 msi: Fetch the volume name when getting disk info. 2007-06-26 11:56:47 +02:00
Rob Shearman f533159bb6 msi: Only use the long name for the file source if the file has one. 2007-06-22 12:18:22 +02:00
James Hawkins 44649d2ff8 msi: Fall back to checking if the cab exists if the volume name doesn't match. 2007-05-30 11:48:51 +02:00
James Hawkins 1aa0082558 msi: Create the destination directory if it doesn't exist when duplicating files. 2007-05-30 11:48:40 +02:00
James Hawkins 666cfd1c03 msi: Only check the volume label for every media after the first disk. 2007-05-11 11:20:18 +02:00
James Hawkins 6eb7eadffa msi: Check the volume name when changing media. 2007-05-09 12:07:01 +02:00
Rob Shearman 1b0b5f5699 msi: Provide UI action data for uncompressed files, not just compressed ones. 2007-04-13 11:42:46 +02:00
James Hawkins 7ef8428b5e msi: Reset the is_extracted flag when every cabinet is loaded. 2007-04-12 16:18:08 +02:00
James Hawkins 8cedb218c3 msi: Load the folder property if available and requested. 2007-03-29 21:01:42 +02:00
James Hawkins ba40c463d7 msi: Overwrite an existing read-only file when copying the install file. 2007-02-26 13:57:43 +01:00
James Hawkins 5b8282120a msi: Don't skip files continued from a previous cabinet. 2007-02-08 13:01:40 +01:00
Misha Koshelev d8b00a071d msi: Make sure to ignore UI level flags in dialog and files as well. 2007-02-07 11:03:39 +01:00
James Hawkins 30577c253a msi: Allow uncompressed files before compressed files in the same media. 2007-02-05 12:27:33 +01:00
James Hawkins a64945baea msi: Use mi->source if the source is not a full path. 2006-11-30 12:26:08 +01:00
James Hawkins 7125d3073d msi: Don't fail if we can't remove an existing install file. 2006-11-29 14:06:49 +01:00
Mike McCormack ebf2733527 msi: Clean up parameters of msi_media_get_disk_info(). 2006-11-20 11:50:15 +01:00
Mike McCormack 18db60782f msi: Fix some memory leaks. 2006-11-20 11:50:15 +01:00
Mike McCormack 13078f180e msi: Don't leak row handles. 2006-11-20 11:50:15 +01:00
Mike McCormack c88c0b453d msi: Remove track_tempfile()'s unused 2nd parameter. 2006-11-14 11:43:17 +01:00
James Hawkins 31a9b087c1 msi: Notify the external UI handler when changing media. 2006-11-14 11:35:00 +01:00
James Hawkins 5cc4a8915f msi: Fix a heap corruption bug by resizing the src string before adding to it. 2006-11-13 12:46:25 +01:00
James Hawkins fa8fc1628a msi: Add support for continuous cabinets. 2006-11-09 10:36:21 +01:00
James Hawkins 6d537a311f msi: Extract cabinets in ACTION_InstallFiles. ready_media is for finding and loading medi. 2006-11-09 10:36:11 +01:00
James Hawkins d21e1cc05b msi: Move the file sequence check out of ready_media_info to avoid an unnecessary function call. 2006-11-09 10:35:59 +01:00
James Hawkins 6ef6512938 msi: Factor out load_media_info from ready_media_for_file. 2006-11-09 10:35:49 +01:00
James Hawkins a621c2a661 msi: Use disk_prompt from the media_info structure instead of passing an extra parameter to msi_change_media. 2006-11-09 10:35:38 +01:00
James Hawkins 1ae4ab6ef7 msi: Factor out download_remote_cabinet and reuse extract_cabinet_file to extract a remote cabinet. 2006-11-08 13:00:34 +01:00
James Hawkins ae18c2dc7f msi: Store the base URL of the MSI package if it is downloaded. 2006-11-08 13:00:15 +01:00
James Hawkins 542101fcda msi: Factor copy_install_file out of ACTION_InstallFiles. 2006-11-08 12:59:54 +01:00
James Hawkins a13bbaf736 msi: Factor schedule_install_files out of ACTION_InstallFiles. 2006-11-08 12:57:54 +01:00
James Hawkins de3b84df09 msi: Model the media_info structure members after the columns in the media table. 2006-11-08 12:56:47 +01:00
James Hawkins 842ffc3545 msi: Use msi_alloc_zero instead of a helper function that sets everything to zero. 2006-11-08 12:55:05 +01:00
James Hawkins 988509e1af msi: Use the file's component instead of passing an extra parameter to set_file_source. 2006-11-08 12:54:16 +01:00
James Hawkins b81f1ce561 msi: Use the media_info structure instead of passing in individual values to extract_cabinet_file. 2006-11-08 12:54:08 +01:00
James Hawkins 62dc9ca691 msi: Extract cabinets based on DiskId, not LastSequence. 2006-10-27 12:09:28 +02:00
James Hawkins c6bfbde849 msi: Implement handling for the ErrorDialog and use it to change media. 2006-10-27 12:08:46 +02:00
Mike McCormack b851d46552 msi: Avoid crashing if writeout_cabinet_stream fails. 2006-10-27 12:01:40 +02:00
Mike McCormack 80affb3c2d msi: Merge action.h into msipriv.h. 2006-10-10 16:12:12 +02:00
James Hawkins 563a50ab35 msi: Make internal functions static. 2006-10-09 14:40:08 +02:00
Mike McCormack f1d4646a49 msi: Win64 printf format warning fixes. 2006-10-05 11:32:32 +02:00
James Hawkins 75cc5f1e5e msi: Non-compressed files may come before the list of compressed files in the file sequence. 2006-08-15 11:42:44 +02:00
Andrew Talbot 92725e5299 msi: Write-strings warning fix. 2006-08-11 19:26:41 +02:00
James Hawkins 5d37be9e56 msi: Only remove a file if the version to be installed is strictly newer than the old file. 2006-08-11 11:56:27 +02:00
James Hawkins 1ff96c63a8 msi: Download install cabinet files if the msi package is remote. 2006-08-10 10:55:23 +02:00
James Hawkins f84fa0ce63 msi: Fix the compressed files logic.
If the compressed file attribute is not set, use the Word Count
property to determine if files are compressed.
2006-08-08 19:34:34 +02:00
James Hawkins 1dd97aa154 msi: A file that does not have the msidbFileAttributesCompressed bit set should be considered non-compressed. 2006-08-02 11:45:04 +02:00
Mike McCormack d39cf962ac msi: Change an ERR to a WARN. 2006-07-29 11:55:36 +02:00
Huw Davies 045d817f4b msi: Create files with the correct file attributes. 2006-07-19 09:44:41 +02:00
Stefan Siebert ded4fbcc3c msi: cabinet_notify - don't fail on files with the same filepath. 2006-07-14 13:32:40 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack 604cdff911 msi: Remove broken volume management code. 2006-04-07 12:57:52 +02:00
Mike McCormack 17e2c3cc61 msi: Avoid a crash if a parameter is NULL. 2006-04-06 11:33:17 +02:00
Mike McCormack c1513be48c msi: Improve handling of short paths. 2006-03-21 16:19:07 +01:00
Robert Shearman e664435f50 msi: Always set a value for intype in ready_volume.
Remove a memory leak.
2006-02-22 22:15:26 +01:00
Robert Shearman d2e48e01ac msi: Call ui_actiondata for more actions. 2006-01-23 17:29:50 +01:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Mike McCormack a977b2c346 Remove some redundant null pointer checks. 2005-11-03 09:56:29 +00:00
Mike McCormack fd4a2003db Implement the RemoveFiles action. 2005-11-02 11:42:56 +00:00
Mike McCormack dded8fb7a8 Use an enumeration for file states. 2005-11-02 10:56:42 +00:00
Mike McCormack d693f461ba Remove the unused 1st parameter of ACTION_VerifyComponentForAction. 2005-10-29 11:36:48 +00:00
Mike McCormack 9c8458514c Some installers don't call the CreateFolders action before the
InstallFiles action as MSDN specifies, but it still seems to work, so
make sure that we create component directories in the InstallFiles
action anyway.
2005-10-29 11:29:17 +00:00
Mike McCormack ab787f9d89 Remove an incorrect comment and check for 0 being an invalid file
handle.
2005-10-29 11:07:11 +00:00
Mike McCormack d730baf3b1 Extract file directly to their target location, bypassing the need to
use temporary files and move files.
2005-10-29 10:31:06 +00:00
Mike McCormack 7bdcc78bcd Put the UI update code for cabinet file into a separate function. 2005-10-28 10:43:50 +00:00
Mike McCormack 2fa0dbd595 Translate INVALID_HANDLE_VALUE to zero for cabinet handles. 2005-10-28 10:40:54 +00:00
Mike McCormack 923a9e47e7 Fix a memory leak in the cabinet extracting code. 2005-10-28 10:09:59 +00:00
Mike McCormack 03b4dbbdc4 Create component folders in the CreateFolders action. 2005-10-28 09:39:29 +00:00
Mike McCormack 0c9468d66b Fix another memory leak. 2005-09-25 15:14:16 +00:00
Mike McCormack 216a4427d5 Avoid using static variables in the InstallFiles action. 2005-09-23 10:05:08 +00:00
Mike McCormack 470f23d471 Fix various memory leaks. 2005-09-22 10:56:26 +00:00
Mike McCormack ee034ba4c2 Added memory allocation inline functions (part 2). 2005-09-20 11:59:14 +00:00
Mike McCormack 062ad50510 Rename load_dynamic_property and remove its unused 3rd argument. 2005-09-15 15:04:08 +00:00
Mike McCormack c50ef541e8 Keep temporary files in a seperate list. 2005-09-07 11:25:18 +00:00
Aric Stewart 50a9b78253 The file name used in the ui messages is the target name not the
source name.
2005-08-25 15:20:34 +00:00
Mike McCormack e18f8abee1 - build a standard Wine list of files instead of using an array
- use file pointers instead of array indexes
2005-08-23 10:03:17 +00:00
Mike McCormack 38d67a4537 - build a standard Wine list of components instead of using an array
- use component pointers instead of array indexes
2005-08-22 09:15:23 +00:00
Aric Stewart 2849d3a0a1 Use SOURCEDIR instead of PackagePath. Because the PackagePath may be
local, while SOURCEDIR is more proper and will be a full directory.
2005-07-21 10:32:16 +00:00
Alexandre Julliard 7258914ef6 Use the official names for the Unicode string constants. 2005-07-13 12:07:41 +00:00
Aric Stewart 2d8cb29516 When working toward install on demand support we need to reset all the
constant values so that multiple install process do not get confused
by leftover values from the previous install.
2005-07-12 17:56:03 +00:00
Aric Stewart c6f155a5fd Add the string constants located in msi.h and make use of them in
files.c and source.c.
2005-07-11 13:22:24 +00:00
Aric Stewart b7dc53d462 Add source.c to start handling the various MsiSourceList apis used in
v3 of MSI, and now internally.
Update files.c to use the MsiSourceList apis to make sure our
SourceList keys in the registry are included and correct.
2005-07-05 21:00:06 +00:00
Aric Stewart 8de16029f8 Handle installs off multiple volumes and properly pull the prompt
string from the error table.
2005-06-29 19:19:09 +00:00
Aric Stewart b9c6b85779 Redo how we extract files from a cabinet in order to dramatically
improve performance, especially if picking and choosing files out of
the cabinet.
2005-06-24 12:14:35 +00:00
Aric Stewart 1e6c09a3f3 Duplicate files should not fail if unable to get Destination
Directory.
2005-06-21 20:03:30 +00:00
Aric Stewart 09b7503f0b Use MSI_IterateRecords for DuplicateFiles. 2005-06-20 15:33:22 +00:00
Aric Stewart c668952023 Break out all the file related actions and helper functions into
files.c
2005-06-17 20:56:55 +00:00