Lodahl's blog: 02/01/2011 - 03/01/2011

22 February 2011

Open source is not always free (of charge)

The Document Foundation, the organization behind LibreOffice is asking for financial help to establish a foundation. The base capital must be at least € 50,000 - it is the requirements in Germany, where the foundation is to be established.

The reason for establishing a solid foundation is that users, volunteers and commercial stakeholders most want to do business with an organization that has a solid financial foundation. If a large organization faces to choose office suite, then arises the doubt itself: Dare we trust that their existence in one or two years ahead? If there is no money in the bank, they might doubt the viability of the project long term.

And further more there are several expenses that can't be covered by volunteers work and there will always be a requirement for some cash. The Document Foundation has, among other somethings, requested trademark registrations in Europe and the U.S. The foundation has also purchased internet domains. Furthermore, there is need for legal services and advise.

A contribution to The Foundation Document shall not be considered as a price for using LibreOffice. LibreOffice is free to use! But a contribution is to be considered as a recognition of the many volunteer hours that are being used around the world.

In Magenta we use LibreOffice, and we make money by providing service to our customers. Were it not for open source software - including OpenOffice and LibreOffice - we could not lift the tasks for our customers as we do. We have therefore chosen to donate an amount of money to The Document Foundation. Also because we think that LibreOffice is a healthy and reliable project.

If you would like to help The Foundation Document, you can find contact and account information at: http://challenge.documentfoundation.org/

15 February 2011

Silent installation of LibreOffice on Windows

The product packaging and installation procedure of LibreOffice for Windows are rather different from earlier experiences from OpenOffice.org. LibreOffice comes with one installation file containing all languages. Further more you need to download and install the help files separately.


If you are a private user this isn't any problem. Just download the two files, install it. You can change the language under Tools – Options – Language settings – Language.

But what if you are to install LibreOffice in a larger scale? Companies, organizations and public authorities can't install LibreOffice individual on each machine.

Most IT departments uses some kind of installation tool like Zenworks or IBM Tivoli. No matter which you need to know some insight knowledge to succeed.

In this article I will demonstrate some techniques using simple batch scripting but you can probably 'translate' these demonstrations to your own tool.

Preparing the installation files

Download

First you need to do is to download the two relevant installation files:

  • LibO_3.3.0_Win_x86_install_multi.exe

  • LibO_3.3.0_Win_x86_helppack_da.exe

You can find the files here: http://da.libreoffice.org/hent-libreoffice/ or http://www.libreoffice.org/download/

When you have downloaded the files you should execute and run the installation.


Select a suitable spot where you can extract the content. Be carefull not to mix the two. Extract the content to two separate subfolders e.g.,: “Program” and “Help”.



After extracting the content you should abort the installation (Cancel).

Extracting content from the executables can be done silently with the following command:

LibO_3.3.2_Win_x86_install_multi.exe /EXTRACTONLY=ON /S /D=c:\Path\to\Extracted\Installer\Files



The installation package is now extracted but not installed yet.

Installation

Because we need to atomize the installation process we will create a simple Windows batch file named “Install.bat” in the form of a normal text file. You can use Notepad or any other plain text editor. The content could look like this:

@echo off
CD "Program"
msiexec /qn /i libreoffice33.msi /L* ../logfile1.txt
CD ..
CD "Help"
msiexec /qn /i libreoffice33.msi /L* ../logfile2.txt

Please note that the two folders “Program” and “Help” is one level below the folder where “Install.bat” is. There will be created two log files (the /L parameter is optional) so you can detect errors if any.

Execute the bat file by double-clicking on the icon. You will see an empty dos window while the installation runs. It takes several minutes.


This window will close when the installation of LibreOffice is finalized.

Language settings

The version you just installed contains all (or most) languages but the graphical interface is in English. You can manually change this in “Tools – Options – Language Settings – Language” and change User interface to any other language of your choice. The language will be changing the next time you launch LibreOffice.

This (and all other) personal settings are stored in one specific file (registrymodifications.xcu). So if you exchange this file after installation with a simular file with the correct language settings, you are controlling the selected language in the GUI. You can create a fresh version of the file by installing LibreOffice on a “clean” computer and then change the language (without changing anything else. After that you can simply pick the file from “C:\Documents and Settings\[BRUGERNAVN]\Application Data\LibreOffice\3\user“ and distribute it to all users.

The installation file now looks like this:

@echo off
CD "Program"
msiexec /qn /i libreoffice33.msi /L* ../logfile1.txt
CD ..
MKDIR "%userprofile%\Application Data\LibreOffice\3\user"
Copy registrymodifications.xcu "%userprofile%\Application Data\LibreOffice\3\user" /y
CD "Help"
msiexec /qn /i libreoffice33.msi /L* ../logfile2.txt

Select language using an extension

Its even a better idea to control the default language by using an extension. I have created an example (http://blog.magenta-aps.dk/wp-content/uploads/2011/02/DanishUI.oxt). If you want to change the language you can simply open the oxt-file using a zip-program and edit the linguistic.xcu:

Installing the extension

The extension can be installed in several ways. One is to activate the UNOPKG mechanisme but with LibreOffice you can simply extract the content of the oxt file to the extension folder in LibreOffice: %PROGRAMFILES%\LibreOffice 3\share\extensions\DanishUI\META-INF\ . The batch file looks like this:

MD "%PROGRAMFILES%\LibreOffice 3\share\extensions\DanishUI\META-INF"
copy DanishUI\* "%PROGRAMFILES%\LibreOffice 3\share\extensions\DanishUI\"
copy DanishUI\META-INF\* "%PROGRAMFILES%\LibreOffice 3\share\extensions\DanishUI\META-INF\"

The oxt file is as mentioned above a zip file. It's not possible to unzip the content using simple batch programming, so you might have to extract it manually. The other operations are simple creating the folder and copying the files.

Install only the one language

A third and even better solution will be only to install the language you need. Unfortunately this is only possible by manipulating the msi file.

The program Orca (http://www.softpedia.com/get/Authoring-tools/Setup-creators/Orca.shtml) is a free tool for manipulating Windows installation files. I will actually recommend that you don't change the msi file but creates a new so called transformation file. This is a kind of ammendmend to the installation file.

What you actually do is to open the msi file in Orca and then attaches the existing transformation file for your language e.g., trans_da.mst. When you are done you can save (generate) a new transformation file with another name.

Orca

In Orca you can find Property in the left meny and then find the languages in the right window. All languages but the one you want to install must be changed to 0 (False). Danish is IS1030. You can find a (more or less) complere list of language codes here: http://www.science.co.il/language/Locale-Codes.asp?s=hexadecimal .

When you install LibreOffice you should attach the transformation file like this:

msiexec /qn /i libreoffice33.msi TRANSFORMS=trans_dansk.mst
  • trans_dansk.mst is the new transformation file we created

  • (trans_da.mst is the original transformation file for Danish)

Please have in mind that the transformation file (mst) must match the installation file (msi) precisely. So you have to generate a new mst file for each installation file you use.

Silent deinstallation

The similar batch file for deinstallation (uninstall.bat) could look like this:

@echo off
CD "Help"
msiexec /qn /x libreoffice33.msi /L* ../Logfile3.txt
CD ..
CD "Program"
msiexec /qn /x libreoffice33.msi /L* ../Logfile4.txt
RMDIR /S /Q "%userprofile%\Application Data\LibreOffice"

Please note that this batch file also removes all user settings. If you don't want to remove the settings you should remove the line “RMDIR…” from the batch file.

Note:

The file structure in these examples are from an English Windos XP. Other versions and languages of Windows might use other file paths.