[wpkg-users] Firefox 3.6

Malte Starostik malte at malte.homeip.net
Thu Jul 22 20:32:15 CEST 2010


Am Donnerstag, 22. Juli 2010, 18:50:37 schrieb Donny Brooks:
> I am looking at deploying firefox to our users but have a few specific
> requirements I hope someone can point me in the right direction on.
> 
> First off I need firefox to NOT check for updates since our users cannot
> install/upgrade software. Our current installs of seamonkey and acrobat
> drive me batty when people start sending helpdesk requests because those
> programs are trying to update before I can push out the updates via wpkg.
>
> Secondly, I need to be able to set the homepage on the firefox browser.
> 
> Third, I need to know if anyone else has disabled Internet Explorer
> using WPKG. I know how to remove access to it in Vista using the program
> access and defaults, but not sure how to do it with wpkg or if it is
> even possible. I have searched for a registry entry to do this but to no
> avail.

Here's my Firefox package:

<package id="web/firefox" name="Mozilla Firefox" revision="3.6.7">
    <check type="uninstall" condition="versiongreaterorequal" path="Mozilla 
Firefox \(3\.6(?:\.[0-9]+)?\)" value="3.6.7 (de)"/>
    <check type="file" condition="exists" path="%ProgramFiles%\Mozilla 
Firefox\defaults\pref\local.js"/>
    <check type="file" condition="exists" path="%ProgramFiles%\Mozilla 
Firefox\local.properties"/>
    <check type="file" condition="exists" path="%ProgramFiles%\Mozilla 
Firefox\mozilla.cfg"/>
    <check type="file" condition="exists" path="%ProgramFiles%\Mozilla 
Firefox\override.ini"/>

    <install cmd="taskkill /f /im firefox.exe"><exit code="128"/></install>
    <!-- Should be /S instead of -ms sein, but that's currently broken. Change 
to /S as soon as possible, as -ms is deprecated -->
    <install cmd=""%SOFTWARE%\web\firefox\Firefox Setup 3.6.7.exe" -
ms"/>
    <!-- Set as global default browser -->
    <install cmd=""%ProgramFiles%\Mozilla 
Firefox\uninstall\helper.exe" /SetAsDefaultAppGlobal"><exit 
code="2"/></install>
    <!-- Don't run the migration assistant -->
    <install cmd="%COMSPEC% /c copy /y %SOFTWARE%\web\firefox\override.ini 
"%ProgramFiles%\Mozilla Firefox\""/>
    <!-- Settings -->
    <install cmd="%COMSPEC% /c copy /y %SOFTWARE%\web\firefox\local.js "
%ProgramFiles%\Mozilla Firefox\defaults\pref\""/>
    <install cmd="%COMSPEC% /c copy /y %SOFTWARE%\web\firefox\local.properties 
"%ProgramFiles%\Mozilla Firefox\""/>
    <install cmd="%COMSPEC% /c copy /y %SOFTWARE%\web\firefox\mozilla.cfg 
"%ProgramFiles%\Mozilla Firefox\""/>

    <!-- upgrade commands same as for install, snipped here for brevity -->

    <remove cmd="taskkill /f /im firefox.exe"><exit code="128"/></remove>
    <remove cmd="%COMSPEC% /c del "%ProgramFiles%\Mozilla 
Firefox\mozilla.cfg""/>
    <remove cmd="%COMSPEC% /c del "%ProgramFiles%\Mozilla 
Firefox\local.properties""/>
    <remove cmd="%COMSPEC% /c del "%ProgramFiles%\Mozilla 
Firefox\defaults\pref\local.js""/>
    <remove cmd="%COMSPEC% /c del "%ProgramFiles%\Mozilla 
Firefox\override.ini""/>
    <remove cmd=""%ProgramFiles%\Mozilla 
Firefox\uninstall\helper.exe" /S"/>
</package>

override.ini prevents the migration assistant from running:
-----begin override.ini-----
[XRE]
EnableProfileMigrator=0
-----end override.ini-----

local.js enables administrative settings in mozilla.cfg
-----begin local.js-----
pref("general.config.filename", "mozilla.cfg");
-----end local.js-----

mozilla.txt:
-----begin mozilla.txt-----
// Use home page as startup page
defaultPref("browser.startup.page", 1);
// Use the home page as defined in local.properties.  A plain URL will not 
work!
defaultPref("browser.startup.homepage", "resource:/local.properties");
// Disable automatic updates
lockPref("app.update.enabled", false);
// Suppress the "Welcome to Firefox/Firefox has been updated" page
lockPref("browser.startup.homepage_override.mstone", "ignore");
// Force proxy auto-detection
lockPref("network.proxy.type", 4);
-----end mozilla.txt-----

Actually mozilla.txt is alot longer, it reads the user's domain group 
memberships from the registry and doesn't lock the proxy setting for some 
groups.  Plus it contains some code to suppress the extension update 
notification for administratively installed extension and cares for 
extensions' default settings.

local.properties defines the home page URL:
-----begin local.properties-----
browser.startup.homepage=http://www.example.com/
-----end local.properties-----

mozilla.cfg as referenced by the package is an obfuscated version of 
mozilla.txt generated by this Makefile (needs perl and make, but there are 
online converters as well):

-----begin Makefile-----
# Obfuscate mozilla.txt

mozilla.cfg: mozilla.txt
        perl -pi -e '$$_ = pack("C*", map { ($$_ + 13) % 0xff } unpack("C*", 
$$_));' < $< > $@
-----end Makefile-----

Regards,
Malte

PS: all of the above have been edited slightly for this mail, so there's no 
guarantee as to its correctness



More information about the wpkg-users mailing list