[wpkg-users] Old version reinstall - WPKG is nice but it still needs improve
Rainer Meier
r.meier at wpkg.org
Thu Mar 27 11:52:02 CET 2008
Hi Falko
Falko Trojahn wrote:
> Firefox updated itself, e.g. to Revision 2.0.0.13. Next time Wpkg starts,
> the uninstall check looks for 2.0.0.12 (which of course is missing then)
> and
> reinstalls the old version, until the xml on the server is updated, too.
This is true - but non-admin users cannot do the auto-update (most users
should be non-administrators). This is exactly the intended behavior.
The Administrator decides which version is to be installed. As long as
2.0.0.12 is the supported version it should be installed (and not
another one). In case the administrator decides that 2.0.0.13 is allowed
as well (but not distributed) he might just extend the package check and
add 2.0.0.13 version as valid as well (even without actually installing it).
> If I remember right, this hasn't been so with 0.9.x versions of wpkg.
This I don't know - but if it was like this, then I would consider it as
a bug. Leaving 2.0.0.13 installed (while 2.0.0.12 is actually not
installed any more) is not the intention of a system administrator.
> So, setting 'execute="once"' in the firefox packages would prevent this?
Yes, in this case the check will not be done on each synchronization. So
no matter if the user removes or upgrades the supported version WPKG
will not take any action (just assuming 2.0.0.12 is still in place).
NOTE: WPKG will also not re-install in case the user removes FF completely.
> Other possibilities I could imagine are:
> - disable autoupdate in prefs.js (which I won't prefer for security reasons)
Why not? The system administrator decides which version is to be used in
hes environment and which version is tested and compatible with
corporate environment. Sometimes (most often) compatibility checks take
somewhat more time than 5 minutes - so sysadmins might not like that all
users automatically upgrade to any new version immediately.
Additionally FF (AFAIK) fixed this strange behavior that it is
downloading and trying to install an update even if the user has no
rights to install it (non-admin). Therefore normal users are not asked
to upgrade by FF itself.
> - include logical "or" check for the next Revision, e.g. 2.0.0.14 within
> the recent 20013 package (see here:
> http://wpkg.org/Firefox#Firefox_with_extensions_and_default_profile)
Yes, this is an option - as outlined above. I still think it's not the
best option to give this choice to the user. The Administrator should
actually take care of the upgrade itself.
By the way - this "problem" is only caused by software packages which
use their version number within the uninstall entry in the control
panel. Actually I think applications should NOT use the version within
the description string there. Most applications don't do (especially not
showing patch-revision within this string).
For example Pidgin is not showing up as "Pidgin 2.4.0" it is just
showing up as "Pidgin". A check for uninstall values will therefore be
true for all custom upgrades done by the user itself. If you need to
limit to a specific version you can add another check which is verifying
the pidgin.exe version.
The opposite you can do for your FF package. If you don't want to verify
that a specific FF version is installed (which is inherently done when
checking for the uninstall entry which contains the version number) then
just check for the file _existence_ (not version) of the firefox.exe file.
In case the users completely deletes FF, WPKG will notice and re-install
the default version. In case the user upgrades by himself, then
firefox.exe will still be there (assuming that FF is not changing the
binary name *g*). WPKG will not actually verify the installed version
number in that case and assume that 2.0.0.12 is still properly installed
(checks yield true).
In case the administrator decides to roll out 2.0.0.13 he simply
upgrades the package. WPKG will install it. This should work no matter
if 2.0.0.13 is already installed or not. As the check still only checks
for firefox.exe everything is fine.
I would call such a check a kind of "lazy verify". However in most cases
I think corporate Administrators want to know exactly which versions are
installed and enforce exactly this software revisions. Allowing each
user to use any newer (uncertified) version of any application creates a
real support nightmare.
Final word... I think WPKG 1.0+ behaves correctly here since it allows
full control of the application revision while still allowing
administrators to specify lazy checking by using any kind of check which
does not verify the version number.
> What do you think?
See above ;-)
> BTW:
> * Is there a chance to do something like a "include" in xml (see the
> template package in the above link for repeating parts of packages)?
I don't think this is easily possible. WPKG web-gui could provide such a
thing probably...
> * Does your way of installing firefox using unattended.cmd prevent the
> old-version-install?
No. As I wrote above - if WPKG is configured to verify the version and
executes the unattended.cmd script then I assume it is my real intention
to enforce this version to be installed. If not, I just make sure that
the checks are true no matter which version of FF the user installed.
Of course you can also modify unattended.cmd to do some additional
checks (for example checking that the version is 2.0.0.12 or higher, and
NOT lower) and then skip installation. However this is truly application
specific since this checks will look different for each application. So
it's entirely correct to move them to a FF-specific unattended.cmd.
The only drawback in this case would be that the checks of WPKG would
always return false (uninstall entry not available) and then call
unattended.cmd which probably skips installation completely as a newer
version is already installed. I know this would be a very quick
execution, but nevertheless it would require invoking of unattended.cmd
each time unless the admin is going to upgrade the package.
Therefore I really recommend in your case just to check for the
existence of firefox.exe. With WPKG you can even speify a check for
version equal or greater. So check firefox.exe for version equal or
greater than 2.0.0.12 - but this I did not try. Checking for existence
is probably enough for you.
Again: I do not recommend this for all system administrators as it
allows variations in the working environment (which you usually want to
prevent when certifying and rolling out software from a central point,
which is the main intention of WPKG).
Small side-note: There is a change request which request an extension to
allow version checking of the uninstall entry as well. This will
probably be part of WPKG 1.1+. Unfortunately I just checked and Firefox
is using a version string like "2.0.0.13 (en-US)". I think it's an
absolutely bad idea to put " (en-US)" to the version string - while
keeping the version number within the uninstall string as well ("Mozilla
Firefox (2.0.0.13)"). This would make a version equal check more
difficult for this specific package. But for lots of other packages this
might improve the situation. For FF it will anyway not help unless they
finally remove this silly version tag from the uninstall entry.
br,
Rainer
More information about the wpkg-users
mailing list