openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andre Fischer <>
Subject Re: Installation patches
Date Tue, 09 Oct 2012 15:08:36 GMT
On 09.10.2012 15:58, Rob Weir wrote:
> On Tue, Oct 9, 2012 at 9:10 AM, Andre Fischer <> wrote:
>> Hi,
>> In the last days I looked into how to create installation patches for
>> updating AOO.  Using patches instead of full installation packages would
>> lead to smaller files to distribute for updating AOO on the next release.
>> I have created a new Wiki page for my findings.  Please see [1] for an
>> overview and the details of how to create patch files.  Note that I have
>> concentrated on the Windows platform for the time being.
> This is cool.  A few questions that I couldn't figure out from the wiki page:
> 1) How do you determine what files are changed?  Is this done from
> comparing two fukk installs?  From dependency analysis of the build?
> Manual analysis of the change logs and knowledge of dependencies?

This is done by the MsiMsp.exe tool from the Windows Installer SDK. It 
is fed with two msi files, the one that is to be updated (eg AOO 3.4)  
and the new target version (eg AOO 3.4.1).  The files lists contained in 
the msi files have the necessary information.  The comparison of the two 
file lists and diffing files that belong to both lists is the reason why 
MsiMsp.exe takes a couple of minutes to run.

> 2) Does it handle configuration/profile changes as well?  For example,
> between 3.4.0 and 3.4.1 we changed the default for the "check for
> updates" setting.

It can do that.  From what I read in the documentation, an msp file can 
basically change everything that is installed by an msi file.
But I don't know if the msp file that I created in my experiments did that.

> 3) You mention that the about box was not updated.  Is that just a
> simple bug?  Or a limitation of the approach?

The about box was partially updated.  I don't know why, yet.  Might by 
that the version number in the first line (the one that did not change) 
was read from the Windows registry and that I created an msp file as 
small update, which would not change the ProductVersion of the installed 
So, probably a bug and not a limitation of the approach, but I am not sure.

> 4) How error-prone is this approach?  By this I mean how much testing
> would be required before we release an upgrade installer in addition
> to a full installer?

If we are lucky then we make a binary comparison between the files of an 
installed and a patched office and find no differences.  Then we have to 
compare the Windows registry keys associated with AOO. If we find no 
differences either then we need no further testing.

I would expect the binary equality of installed and patched AOOs but not 
100% equality of registry keys.

With differences only in registry keys we may be able to reduce 
additional testing to those parts of AOO that are influenced by the 

>   Are there any issues with binary compatibility
> with dynamic libraries, etc.?

I am not sure what you mean by that.  The MSP contains the files from 
the target version that either do not exist or are different in the 
original version.  After applying the patch the set of files in the AOO 
installation directory should be identical to a full install.

I found some hints that an MSP can be reduced in size by including 
binary diffs for files that exist in both the old and the target 
version.  But even then the patched office should be identical to the 
full install.

I know that there are still too many ifs and shoulds.  I am still 
piecing together information from different sources regarding the fine 
details of the Windows patch mechanism.

Any help is welcome.


> -Rob
>> My results for the impatient:
>> 1. I have written a Perl script with which I have created a Windows
>> Installer MSP patch file that updates an installed Apache OpenOffice 3.4 to
>> 3.4.1.  Its size is roughly a tenth of the full installation package.  There
>> are some minor problems, like the about box still displaying 3.4 as current
>> version in the first line.  The second line is OK.
>> 2. There is already some support for the creation of patch files in the
>> script but this functionality is inactive.  It is not
>> triggered by the makefile in module instsetoo_native/ and therefore I can
>> not say whether it would still work.
>> [1]
>> Best regards,
>> Andre

View raw message