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