[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