<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 1:30 PM, Marc-André Lureau <span dir="ltr"><<a href="mailto:marcandre.lureau@gmail.com" target="_blank">marcandre.lureau@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">ping<br></div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Tue, Nov 12, 2013 at 3:27 AM, Marc-André Lureau <span dir="ltr"><<a href="mailto:marcandre.lureau@gmail.com" target="_blank">marcandre.lureau@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It turned out that not only the current MSI broke the "component rule",<br>
but also that our files are not versionized correctly. Windows Installer<br>
applies some file versioning rules before replacing a file<br>
<a href="http://msdn.microsoft.com/en-us/library/aa368599%28v=vs.85%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/aa368599%28v=vs.85%29.aspx</a><br>
<br>
Since msitools doesn't extract version from files and populate the Version<br>
field of the File table, it "usually" keep the current file installed.<br>
<br>
It's practically impossible to rely on version information from<br>
files (from a quick look, only 5% of the files are versionized and even<br>
less correctly, libgcrypt seems to do non-monotonic buildid for example)<br>
<br>
So the rule that applies when files are not versionized is to check the<br>
file hash, and the modified date. File hash was added recently in<br>
msitools, but doesn't apply when the installed file itself has a<br>
version.<br>
<br>
In order to solve the above problems, it's simpler to just have a<br>
different installation prefix. Windows Installer will see files with<br>
different component guid, and won't be checking any file update rule.  I<br>
have verified the upgrade is working, not leaving any file behind and<br>
updating registry correctly with this solution. Until the files are<br>
correctly versionized, it looks like the only sensible thing to<br>
do. Furthermore, this make it simpler to have several versions installed<br>
in parallel later on (when we change productid)<br></blockquote></div></div></div></div></blockquote><div><br></div><div>ACK! (considering, from your commit message, that you have it tested).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><div><div class="h5"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
 data/<a href="http://virt-viewer.wxs.in" target="_blank">virt-viewer.wxs.in</a> | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/data/<a href="http://virt-viewer.wxs.in" target="_blank">virt-viewer.wxs.in</a> b/data/<a href="http://virt-viewer.wxs.in" target="_blank">virt-viewer.wxs.in</a><br>
index d5c2522..a004de4 100644<br>
--- a/data/<a href="http://virt-viewer.wxs.in" target="_blank">virt-viewer.wxs.in</a><br>
+++ b/data/<a href="http://virt-viewer.wxs.in" target="_blank">virt-viewer.wxs.in</a><br>
@@ -65,7 +65,7 @@<br>
<br>
     <Directory Id="TARGETDIR" Name="SourceDir"><br>
       <Directory Id="$(var.ArchProgramFilesFolder)"><br>
-        <Directory Id="INSTALLDIR" Name="VirtViewer"><br>
+        <Directory Id="INSTALLDIR" Name="VirtViewer v@VERSION@@BUILDID@"><br>
           <Component Id="CDepsFile" Guid="*"><br>
             <File Id="filA1E799D196006E6DF67DACE15B8C6193" KeyPath="yes" Source="deps.txt"/><br>
           </Component><br>
<span><font color="#888888">--<br>
1.8.3.1<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br></div></div><span class="HOEnZb"><font color="#888888">-- <br>Marc-André Lureau
</font></span></div>
<br>_______________________________________________<br>
virt-tools-list mailing list<br>
<a href="mailto:virt-tools-list@redhat.com">virt-tools-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/virt-tools-list" target="_blank">https://www.redhat.com/mailman/listinfo/virt-tools-list</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Fabiano Fidêncio</div>

</div></div>