Graphical User Interface of the

Windows Installer

OpenOffice.org 2.0 / StarOffice 8

Document - ID	Specification Owner	Last Change	Status
	Ingo Schmidt	11.03.04	Draft
Conforms to	
Applies to	Installation
Task ID(s)	i25325 (usage of the Windows Installer)
Category	Feature

Abstract

In the CWS “newscpzip” new tooling for creating native installation packages for different platforms shall be integrated. This new tooling creates StarOffice installation sets for Linux in RPM format, for Solaris as Solaris-packages and for the Windows OS using the Windows Installer service. The process for the creation of this packages is specified in the specification “Process for creating native installation sets”. The CNP SDK, which is used as GUI (Graphical User Interface) for the Linux and the Solaris Platform is specified in the specification “Using CNP SDK as GUI installer for Linux and Solaris” in the cws “cnpsdk”. This specification describes the GUI and the most important installation mechanisms of the Windows Installer. Of course this specification cannot be a complete description of the Windows Installer service, but there is a hugh amount of literature available for the Windows Installer service.

i-Team Members

	Name	E-mail Address
Specification Owner	Ingo Schmidt (IS)	
User Experience	Christian Jansen (CJ)	
Development	Ingo Schmidt (IS), Dirk Völzke (DV), Christof Pintaske (CP)	
Quality Assurance	Olaf Felka (OF)	
Documentation		

Approved for Implementation

	Approved by	Date
User Experience		
Development		
Quality Assurance		
Documentation		
String Review		

Document Change History

Rev. Level	Change	Initials	Date
1.0	Initial Release	is	11th March 04

Contents

Glossary	1

1	Motivation	1

2	User Scenarios	1

3	Goals	1

4	Requirements and Dependencies	2

4.1	Requirements	2

4.2	Technical Dependencies	2

5	Competitive Analyses	2

6	Detailed Specification	2

6.1	The User Interface	2

6.2	Standard Installation	3

6.3	Additional dialogs for the administrative installation	10

6.4	Additional global dialogs:	11

6.5	Dialogs for the maintenance mode (deinstall, repair, remove)	16

6.6	Special Patch dialog	18

6.7	String lists:	18

6.8	Additional features of the Windows Installer	19

a. Patch, Update, Upgrade	19

b. Root privileges	21

c. Silent installation	22

d. Customizing the installation	22

e. Responsefile installation	22

6.9	Error Conditions	23

7	Future Tasks	23

8	Legal Issues	23

9	Notes	23

10	References	23

Glossary

Term	Description
RPM	RedHat Package Manager
PKG	Solaris software package format
MSI	Microsoft Installer
CNP	Customer Network Product
SDK	Software Development Kit
GUI	Graphical User Interface

Motivation

In StarOffice 7 the installer was an application of the StarOffice product. This installer application was the same on all supported operating systems. The design goal was to be consistent across platforms. Starting with StarOffice 8 we are more and more focussing on the demands and requirement of larger enterprises. To ease installation and maintenance of StarOffice 8 it will be more important to have consistency in installation for all products on one platform to fit into deployment tools the customer already uses. Therefore we will support the Windows Installer operating system service for the Windows platforms.

Usage of the native installer makes it possible to use the support provided by the operating system. This includes the usage of the operating system specific databases, in which all installed products are registered, and services, which make the installation of different products consistent. The advantage for the user is the consistent look and feel for all installations on his platform and the ease of maintenance for the different software products.

User Scenarios

The Windows Installer has to support and provide wizards for the following scenarios:

The standard installation wizard for StarOffice / OpenOffice.org, to install the product.

An installation wizard for an administrative installation, in which the installation package will be copied and unpacked on a network drive.

A wizard for the maintenance mode, in which the user can select to modify, repair or deinstall the installed application.

Goals

The Windows Installer Service has to be the only installation mechanism for StarOffice / OpenOffice.org. There has to be wizard for the installation, the update, the patch and the maintenance mode. In the maintenance mode the user can modify, deinstall or repair the StarOffice / OpenOffice.org installation.

Requirements and Dependencies

Requirements

For the usage of native installer it is necessary that there is no more “User Installation” as we know it from StarOffice 7, because such a second installation step is not supported by native installers. The Windows installer supports a second installation step which is a kind of user installation after a network installation, but this is database determined and does not support our setup application. Therefore the StarOffice 7 user installation has to be shifted into the first start of StarOffice (OpenOffice.org) and it partly has to be deleted. This has happened in the cws “networker” and “networker2”.

Technical Dependencies

In the cws “newscpzip” the new packaging process has to be introduced, in which Windows Installer packages are created automatically. This will happen in a new cvs module (“instset_native”). If this process is implemented, the new Windows packaging process is available.

The installation packages for the Windows Installer can only be built on the Windows platform. This is caused by the need of the Windows Installer SDK, from which different programs are used during the packaging process.

Competitive Analyses

RPM, PKG, and Windows Installer are the standard installation mechanism on their respective platform.

Detailed Specification

The User Interface

The dialogs listed below are included into the Windows Installer database, that are created using the new package creation tooling. The bitmaps and the strings are not final yet. The bitmaps will be exchanged by our own bitmaps, the string need still to be approved.

Some words about the Windows Installer technique. Of course this cannot be a detailed explanation:

The Windows Installer is an operating system service (no service but a program for W9x) that shall be used for the installation of Windows applications concerning to Microsoft. It can be started with:

“msiexec.msi -i database.msi” for a standard installation

“msiexec.msi -a database.msi” for an administrative installation

“msiexec.msi -j u/m database.msi” for an advertising installation (for the user/machine)

Because we want to provide the user with a “setup.exe”, this loader program is also part of this cws and is specified in the “Windows Installer Loader specification”. This setup.exe can be started with a double-click. If the Windows Installer service is available on the system, a double-click on the msi file will also work and start the Windows Installer with “msiexec.exe -i”.

Standard Installation

SplashBitmap:

SetupInitialization:

InstallWelcome: This is the welcome dialog for the standard installation.

LicenseAgreement:

CustomerInformation:

SetupType:

CustomSetup:

CustomSetupTips:

InstallChangeFolder:

ReadyToInstall:

SetupProgress:

SetupCompleteError:

SetupCompleteSuccess:

SetupInterrupted:

Additional dialogs for the administrative installation

AdminWelcome: The welcome page for an administrative installation.

AdminNetworkLocation: In this dialog the administrator selects after an „msiexec.exe -a database.msi“ the destination directory for the network installation.

AdminChangeFolder: The dialog, in which the directory can be changed in an administrative installation.

Additional global dialogs:

CancelSetup: The dialog for cancelling the installation.

SetupError:

DestinationFolder: (not used)

DatabaseFolder: (not used)

DiskSpaceRequirements:

OutOfSpace:

FilesInUse:

SetupResume:

LanguageSelection: This dialog only appears in multilingual installations. This dialog is dynamically filled with the available languages.

Dialogs for the maintenance mode (deinstall, repair, remove)

MaintenanceWelcome: Occurs if the product is already installed.

MaintenanceType: Occurs if the product is already installed.

ReadyToRemove:

Special Patch dialog

PatchWelcome:

String lists:

There are some hundred strings that are used in the different installation scenarios. At the moment there are:

124 strings for the ActionText table, describing different actions like “Removing system registry values”

268 strings for the Control table, which are shown on the different dialogs. Example: “{&TahomaBold10}Welcome to the Install Wizard for [ProductName]”

130 strings for the Error table, which contains all error messages. Example: “Removing older versions of this application” (Windows standard strings)

8 strings that are used in the Property table. These are for instance for the Add-Remove-Programs applet.

9 strings for the RadioButton table, which contains all texts used at radio buttons. Example: “I &accept the terms in the license agreement”

49 strings for the UIText table. Example: “This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive.”

8 strings for the Summary Information Stream of the Windows Installer database. The Summary Information Stream provides comments, author and additional data for the database.

All these strings can be found in the corresponding language file for each table. These language files are located at: “/ship/cdcreate/is/msi_language_files”

All these strings have to be translated, many contain Mnemonics like “I &accept the terms in the license agreement”. The used Mnemonics are the InstallShield standard values.

Tab Order

All 30 dialogs have the InstallShield standard Tab order.

Key Board Shortcuts

All 30 dialogs have the InstallShield standard Key Board Shortcuts.

Additional features of the Windows Installer

a. Patch, Update, Upgrade

The Windows Installer supports a patch and update mechanism for all applications that were installed with the Windows Installer. For all other applications the update mechanism has to be programmed using the CustomActions, that are part of the Windows Installer. This will happen, if we offer an update from StarOffice 7 to StarOffice 8.

The Windows installer support three different types of upgrading software. All these types can be delivered as complete upgrade installation sets or as patches, which make is possible to distribute only the different bytes of files.

In the small update only a few files of the application are exchanged, the ProductVersion and the ProductCode are not changed (StarOffice 8 to StarOffice 8). In the minor upgrade there are more files to change, justifying a change of the ProductVersion, but not the ProductCode (StarOffice 8 to StarOffice 8.1). Because the ProductCode is not changed, it is not possible to install both products on one computer.

Message appearing, if a product with same ProductCode is installed

The small update and minor upgrade do not change the ProductCode. Therefore they cannot be installed with the command: „msiexec /i myUpgrade.msi“. This leads to the messagebox shown above. Instead of this in small updates and minor upgrades the reinstallation of the already installed product has to be defined:

„msiexe.exe /i myUpgrade.msi REINSTALL=ALL REINSTALLMODE =vomus“

if all features shall be reinstalled. In this case there appears only the progress dialog, shown in below. No user input is required.

Progress dialog in small update and minor upgrade

Applying a patch to a local installation requires the following command:

„msiexe.exe /p myUpgrade.msp REINSTALL=ALL REINSTALLMODE =omus“

A patch and an upgrade can also be applied to an administrative installation. The update can then be propagated to users by requesting that they reinstall the application from the new administrative source image.

The administrator updates the administrative source image located at

//server/staroffice70.msi with the patch staroffice71.msp with the command:

msiexec.exe /a //server/staroffice70.msi /p staroffice71.msp

Users have to enter

msiexe.exe /fvomus //server/staroffice70.msi

to update (reinstall) the application from the new administrative source image.

The third updating of software is the Major Upgrade. In this case the ProductVersion and the ProductCode are changed (StarOffice 8 to StarOffice 9). The upgrading software can find the older version only because of the same UpgradeCode, which is never changed for all products of a product family. In this case the older version is upgraded if this is specified in the upgrade table of the msi database. Because of the different ProductCode the installer can be started without further command line parameters. In the default Major Upgrade process there is no special dialog, showing the user that his old installation will be updated.

b. Root privileges

Property ALLUSERS:

For Microsoft Windows NT 4.0, Microsoft Windows 2000, Microsoft Windows XP Professional and Microsoft Windows Server 2003 the user or computer installation is determined by the property ALLUSERS. This property can have different values:

If ALLUSERS is not set, a userinstallation is executed.

If ALLUSERS is set to „1“, the Windows Installer makes a Computer Installation. This requires administrative rights.

If ALLUSERS is set to „2“, the Windows Installer tries to make a Computer Installation. If the user has not sufficient rights for this, the Windows Installer makes a userinstallation.

For Microsoft Windows 95, Microsoft Windows 98 and Microsoft Windows Me the installation type is dependent from the configuration of the operating system:

If User profiles are used and the Startmenu is specific for a user, a userinstallation is executed.

If Userprofiles and the Startmenu are commonly used, a Computer installation is executed.

If no Userprofiles are used and the Startmenu is commonly used, a userinstallation is executed.

For these cases the Windows Installer sets the property ALLUSERS to the value corresponding to the configuration of the operating system.

Elevated Privileges:

The software installation is executed with user privileges. Only those actions can be executed without error, for which the user has sufficient rights. The Windows Installer is an operating system service, that can be executed in its own security context and can execute installation tasks which require elevated privileges. There are two ways, which cause the Windows Installer to run with elevated rights:

The installation is executed by a user who was allowed to do it by an administrator using the system policy „AlwaysInstallElevated“.

The application was assigned or published to the user by the administrator.

In this two cases the Windows Installer changes into a context with local, administrative rights. Of course this is only possible on NT-based operating systems, not on MS Win9x.

c. Silent installation

The Windows Installer supports four different modes for the presentation of the user interface, which can be set with different parameter for the msiexec.exe.

None: Installation without user interface (silent)

Basic: Shows only progress dialog and error messages

Reduced: Shows only progress dialog and important other dialogs

Full: Shows all Dialogs

d. Customizing the installation

Installation sets based on the Windows Installer can be customized using TRANSFORMS. This are *.mst files, that can be applied to a msi-file during the installation process. In this mst files are changes of the 80 tables in the database in the msi file defined. Only the database can be manipulated, it is not possible to add new files to the installation. But by manipulating the database it is possible for instance, to hide modules, that the user cannot select them.

A big problem is, that it is very difficult to create such TRANSFORMS. This are binary files that cannot be edited easily. The normal process to create such a TRANSFORM is, to build the difference of two msi databases. The user has to take the standard msi file, has to edit it concerning to his wishes, and finally has to create the difference. Tooling for editing the database and creating the mst file is freely available in the Microsoft Platform SDK. But this tooling is not easy to handle and it requires much knowledge to edit the msi database of our product. Furthermore it cannot be our interest that customers have to edit our msi database.

Microsoft has another solution for this problem. Included in delivery of Microsoft Office XP is the Microsoft Office XP Resource Kit. This contains an application with the name „Custom Installation Wizard“. And this application can be used to customize the Microsoft Office XP. We will also provide such a tooling for OpenOffice.org / StarOffice in another CWS.

e. Responsefile installation

The responsefile installation is a silent installation, in which the installation can be customized. Concerning to point g and h this has to be replaced by combination of silent installation and TRANSFORMS. The silent mode will be no problem, because this is supported by the Windows Installer. The creation of the TRANSFORMS will be much more difficult. Microsoft solves this problem with a tooling, that is delivered with the Microsoft Office XP (see point g). If the user shall be able to make a responsefile installation as we offer it in StarOffice 7 we have to find a solution for this. Only switching to Windows Installer without additional tooling would worsen the customization possibilities of the user.

Error Conditions

Future Tasks

Create a wizard to create transforms (.mst files), which can be used to customize the installation.

Legal Issues

Windows Installer. The Legal Review is still pending. But the Java group is using the Windows Installer since the Java version 1.4.2

Hosting the Windows Installer database tables describing the dialogs on OpenOffice.org. These tables describe different dialogs, the dialog size, the size and positions of different Controls and all the strings that can be shown during the different installation processes.

Notes

References

Inside Windows Installer, Andreas Kerl, Microsoft Press, 2003

The Office InstallShield for Windows Installer Developer's Guide, Bob Baker, M&T Books, 2000

Windows Installer SDK:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/about_windows_installer.asp

<Graphical User Interface of the Windows Installer Service>

Page 22

2003-10-07T15:20:14