autoupdating...

Ryan C. Gordon icculus at icculus.org
Thu May 18 08:48:23 EDT 2006


I've just committed some code for one of my clients that'll let 
loki_setup do a completely seamless upgrade.

The client wants to have an installer program, but as they do updated 
versions of their game, they want to have the same installer just 
upgrade the existing installation without prompting the user at all...so 
with the right XML in the config, it'll just go right to the install 
progress screen.

So the pertinent XML is this...some of these might be redundant, but I 
didn't want to screw with the existing code more than needed.

In the <install> tag:

    once="no"
    reinstall="yes"
    reinstallnowarning="yes"
    nopromptoverwrite="yes"
    reinstallfast="yes"

"reinstallfast" is new, and makes the options screen skip (it sets 
express_setup var and the "noninteractive" flag to UI.init() if this is 
a reinstall). The rest are existing attributes and explain themselves 
well enough.

The EULA tag can do this now, too:

    <eula ignoreonreinstall="yes">blah.txt</eula>

Ignoreonreinstall skips the EULA window as if the user had accepted. If 
your legal department wants you to show this EULA on every install, even 
upgrades and reinstalls, don't use this attribute. Otherwise, we just 
consider that they already agreed to it once and go on without nagging 
the user again.

I've only tried this with gtk_ui, but it'll probably mostly work with 
any of the UIs, assuming the globals we tweak in install.c/main.c are 
respected in the various UIs. The only change I made to gtk_ui was to 
hide the "cancel" button on the progress screen for reinstalls, since 
cancelling will just leave your install mangled (update your .glade files!).

People that don't need these features don't need to change anything 
about their existing configs. The defaults haven't changed at all.



Btw: the new GTK2 support rocks my socks...we're shipping both 
dynamically linked gtk2 support and a statically linked gtk1 fallback, 
and I just can't look at the gtk1 builds anymore...gtk2 just looks so 
much nicer.  :)

--ryan.





More information about the Lokisetup mailing list