property REINSTALL should be set only when we apply a PATCH
commita411ad0377ba4ea4dd76997582de59f747a98e00
authorAndras Timar <atimar@suse.com>
Mon, 29 Apr 2013 20:08:13 +0000 (29 22:08 +0200)
committerAndras Timar <atimar@suse.com>
Mon, 29 Apr 2013 20:17:34 +0000 (29 22:17 +0200)
treea4d3c35cfaeac7bae9d3c2a00e63f28476131cb4
parent8eb150e65632d9d04fe4d580471cdbdd9f80ccd4
property REINSTALL should be set only when we apply a PATCH

with 11dd1094cb5452a8b61ad6bd284ba9517d3d869a I introduced
REINSTALL=ALL in the Property table, because without this MSP
patches did not work as expected -- some files were not patched.
I found "The file represented by File table key 'foo.bar' has
no eligible binary patches" lines in the log, and I did not find
a better solution. I'll revisit the problem later, maybe file versioning
can be changed. Windows Installer usually ignores the fourth digit in
version numbers, and we bump the the fourth digit only (i.e. 3.6.10.304 ->
3.6.10.520).

However, when upgrading a patched 3.6 to 4.0, REINSTALL=ALL strikes back.
Windows Installer passes REMOVE=ALL argument to 3.6 package, but REINSTALL=ALL
takes precedence, so 3.6 will not be removed, but reinstalled! 3.6 and 4.0
both will be installed, there will be an entry for each in Add/Remove Programs
Control Panel applet.

So I made REINSTALL=ALL conditional, and as a side effect, normal MSI
packages built from PTF branches will be fully useable again. If REINSTALL
is set for a product that is yet to be installed, no installation action
will take place at all. It really makes sense to selectively enable it
only for patches. I'm sorry that I did not figure this out earlier.

Change-Id: Ic05dc66579c60f1eb599baf6be4289b22301cebe
instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt
instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt