Lodahl's blog: 2011

18 November 2011

Now you can buy LibreOffice merchandise

You can buy several merchandise products from the LibreOffice shop at libreoffice.spreadshirt.dk.


17404580-24219071

17 November 2011

Silent installation - following up

In my earlier post about administrative installation of LibreOffice i described how its possible to use the program ORCA to manipulate the msi-file by creating a new mst-file.

Unfortunately this subject is not very well documented from the developers. if you are a developer and find that I am giving wrong or inaccurate information then please notify me ASAP.

Lately I have investigated some more details and possibilities in the installation process.

I have found that its possible to pass all the parameters directly to the installation without using a mst-file. The mst is like bundling the parameters in a container and in some situations this can be convenient e.g., if you need to distribute or publish a specific installation.

Overall I have found two interesting features. Basically I looked into the msi-file using ORCA and I found that the tables Feature and Properties include the most interesting parameters. All these can be manipulated as parameters at installation time.

Feature
The installed features are core components and it pretty much corresponds with the the page in the dialog that is only available if you select Custom installation from the gui.



If you want to manipulate the installed components with parameters you must first either identify every single component you want to install or better: install everything with the parameter ADDLOCAL=ALL and then define everything you don't want. This is done with the REMOVE parameter. Be aware that evetything you want to remove must be specified in one string with comma as separator and no space. E.g.,

REMOVE=gm_o_Testtool,gm_o_Xsltfiltersamples,gm_o_jf_Palm,gm_o_jf_Pocketpc

Predefined extensions can be removed like this:

REMOVE=gm_o_Extensions_PRESENTER_SCREEN,gm_o_Extensions_REPORTDESIGN

You can also remove dictionaries. Dictionaries are also installed as predefined extensions but in the installer process these are categorized as Dictionaries, so you need to add an extra part to the REMOVE like this:

REMOVE=gm_Dictionaries,gm_r_Extension_Dictionary_Af,gm_r_Extension_Dictionary_Pt

Please note the first value: gm_Dictionaries

Property
Another very important thing you can do during installation is setting some properties. The list is not complete, but only some examples:

  • ALLUSERS (default=1) - performs a per-user installation or per-machine installation depending on the access privileges of the user
  • CREATEDESKTOPLINK (default=1) - Create desktop shortcut icon
  • INSTALLLOCATION - specify installation directory
  • ISCHECKFORPRODUCTUPDATES (default=1) - Check for updates – I think this property is deprecated.
  • REGISTER_ALL_MSO_TYPES (default=0) - Use LibreOffice as the default application for Microsoft Office file formats
  • REGISTER_NO_MSO_TYPES (default=0) – Dont use LibreOffice as default application for any Microsoft Office file formats
  • REGISTER_DOC (default=0) - Use LibreOffice as the default application for Microsoft Word file format .doc (You can use similar for .xls, .ppt etc.)
  • IS1033 (default=1) – Unfortunately all languages are installed as default so you must specify each language that you DONT want to install. In the following example only Danish will be installed:
IS1033=0 IS1078=0 IS1025=0 IS1101=0 IS1610=0 IS1059=0 IS1026=0 IS2117=0 IS2121=0 IS1150=0 IS1603=0 IS5146=0 IS1027=0 IS32771=0 IS1029=0 IS1106=0 IS1030=1 IS1031=0 IS1604=0 IS2129=0 IS1032=0 IS2057=0 IS7177=0 IS1553=0 IS1034=0 IS1061=0 IS1069=0 IS1065=0 IS1035=0 IS1036=0 IS2108=0 IS1084=0 IS1110=0 IS1095=0 IS1037=0 IS1081=0 IS1050=0 IS1038=0 IS1057=0 IS1039=0 IS1040=0 IS1041=0 IS1079=0 IS1087=0 IS1107=0 IS1099=0 IS1042=0 IS1111=0 IS1120=0 IS1574=0 IS1108=0 IS1063=0 IS1062=0 IS1605=0 IS1071=0 IS1100=0 IS1104=0 IS1112=0 IS1102=0 IS1109=0 IS1044=0 IS1121=0 IS1043=0 IS2068=0 IS1580=0 IS1132=0 IS1154=0 IS2162=0 IS1096=0 IS1094=0 IS1045=0 IS2070=0 IS1046=0 IS1048=0 IS1049=0 IS1569=0 IS1103=0 IS1606=0 IS1113=0 IS2074=0 IS2133=0 IS1051=0 IS1060=0 IS1052=0 IS3098=0 IS1579=0 IS1072=0 IS1053=0 IS1089=0 IS1097=0 IS1098=0 IS1064=0 IS1054=0 IS1074=0 IS1055=0 IS1073=0 IS2200=0 IS1058=0 IS1091=0 IS1075=0 IS1066=0 IS1076=0 IS2052=0 IS1028=0 IS1077=0

I found a list of numeric language codes here: http://www.science.co.il/language/locale-codes.asp

This is an example of an installation with Danish language and only danish spellchecker (I don't remove gm_r_Extension_Dictionary_Da) with a few more details:

msiexec /qn /i libreoffice34.msi /L* ../Log/logfile1.txt TRANSFORMS=trans_da.mst SELECT_WORD=1 SELECT_EXCEL=1 SELECT_POWERPOINT=1 CREATEDESKTOPLINK=0 IS1033=0 IS1078=0 IS1025=0 IS1101=0 IS1610=0 IS1059=0 IS1026=0 IS2117=0 IS2121=0 IS1150=0 IS1603=0 IS5146=0 IS1027=0 IS32771=0 IS1029=0 IS1106=0 IS1030=1 IS1031=0 IS1604=0 IS2129=0 IS1032=0 IS2057=0 IS7177=0 IS1553=0 IS1034=0 IS1061=0 IS1069=0 IS1065=0 IS1035=0 IS1036=0 IS2108=0 IS1084=0 IS1110=0 IS1095=0 IS1037=0 IS1081=0 IS1050=0 IS1038=0 IS1057=0 IS1039=0 IS1040=0 IS1041=0 IS1079=0 IS1087=0 IS1107=0 IS1099=0 IS1042=0 IS1111=0 IS1120=0 IS1574=0 IS1108=0 IS1063=0 IS1062=0 IS1605=0 IS1071=0 IS1100=0 IS1104=0 IS1112=0 IS1102=0 IS1109=0 IS1044=0 IS1121=0 IS1043=0 IS2068=0 IS1580=0 IS1132=0 IS1154=0 IS2162=0 IS1096=0 IS1094=0 IS1045=0 IS2070=0 IS1046=0 IS1048=0 IS1049=0 IS1569=0 IS1103=0 IS1606=0 IS1113=0 IS2074=0 IS2133=0 IS1051=0 IS1060=0 IS1052=0 IS3098=0 IS1579=0 IS1072=0 IS1053=0 IS1089=0 IS1097=0 IS1098=0 IS1064=0 IS1054=0 IS1074=0 IS1055=0 IS1073=0 IS2200=0 IS1058=0 IS1091=0 IS1075=0 IS1066=0 IS1076=0 IS2052=0 IS1028=0 IS1077=0 REGISTER_DOC=1 ADDLOCAL=ALL REMOVE=gm_o_Testtool,gm_o_Xsltfiltersamples,gm_o_jf_Palm,gm_o_jf_Pocketpc,gm_o_Quickstart,gm_o_Extensions_PRESENTER_SCREEN,gm_o_Extensions_REPORTDESIGN,gm_o_Extensions_MEDIAWIKI,gm_o_Extensions_MINIMIZER,gm_Dictionaries,gm_r_Extension_Dictionary_Af,gm_r_Extension_Dictionary_Pt,gm_r_Extension_Dictionary_Ca,gm_r_Extension_Dictionary_Hr,gm_r_Extension_Dictionary_Cs,gm_r_Extension_Dictionary_Nl,gm_r_Extension_Dictionary_Et,gm_r_Extension_Dictionary_Fr,gm_r_Extension_Dictionary_De_AT,gm_r_Extension_Dictionary_De_DE,gm_r_Extension_Dictionary_De_CH,gm_r_Extension_Dictionary_He,gm_r_Extension_Dictionary_Hu,gm_r_Extension_Dictionary_It,gm_r_Extension_Dictionary_Ku_Tr,gm_r_Extension_Dictionary_Lt,gm_r_Extension_Dictionary_Ne,gm_r_Extension_Dictionary_No,gm_r_Extension_Dictionary_Oc,gm_r_Extension_Dictionary_Pl,gm_r_Extension_Dictionary_Ro,gm_r_Extension_Dictionary_Ru,gm_r_Extension_Dictionary_Sr,gm_r_Extension_Dictionary_Sk,gm_r_Extension_Dictionary_Sl,gm_r_Extension_Dictionary_Es,gm_r_Extension_Dictionary_Sv,gm_r_Extension_Dictionary_Th,gm_r_Extension_Dictionary_Uk,gm_r_Extension_Dictionary_Vi,gm_r_Extension_Dictionary_Zu


If you take a look in the log file you can see some details about how the installation process was. You can also see most of the properties that you can set in the installation.

Thanks to my colleague and good friend Beemen Beshara for valuable input.

25 May 2011

Administrating LibreOffice

Professional use of LibreOffice requires the ability to manage and control the installation from the IT department. I have written earlier on how to install LibreOffice silently http://lodahl.blogspot.com/2011/02/silent-installation-of-libreoffice-on.html .

In many organizations restrictions is made enforcing that no data can or may be stored on the local hard drive, so all documents and other data are stored on the network. There can be many different reasons for this, and the most often used excuse is that its easier to back up the data from a server on the network, but its also much easier to exchange the local hardware without consequenses for the user.

LibreOffice stores quite a lot of information on the local harddrive under ..\[username]\Application Data \LibreOffice\3\user\… . This is among many things the users own settings, autotexts and user dictionaries. Not all these settings and data can be redirected in Tools - Options - Paths, but it is possible to redirect the whole user catalog to e.g. a personal drive on a network server.

It's done by changing the content of the file “Bootstrap.ini” (on Linux “bootstraprc”) that is found in the program folder (E.g.. C:\Program files\LibreOffice\program\bootstrap.ini”). The file is a text file like this:

[Bootstrap]
BaseInstallation=${OOO_BASE_DIR}
InstallMode=
ProductKey=LibreOffice 3.3
UserInstallation=$SYSUSERCONFIG/.libreoffice/3
[ErrorReport]
ErrorReportPort=80
ErrorReportServer=

The line “UserInstallation=$SYSUSERCONFIG/LibreOffice/3″ kcan be replaced by e.g., “UserInstallation=File:///p:/Application Data/LibreOffice/3″.
If this change takes place in conjunction with a first time installation you don't need to do more than changing the path. But if LibreOffice has been installed (or is installed), you must remember to copy or move the user library from the local harddrive to the new position on the network.

I have noticed that this method can result in errors if you are using a Citrix Terminal server with Roaming profiles. In this case you can exerience an errer; “fatal error. The Application cannot be started. [context="user']Caught Unexpected Exception!“.
If anyone can tell me the reason for this and perhaps also a solution, I would be happy to hear from you.

15 March 2011

Macroprogramming with Python

I've been doing some investigations on how to do macroprograming with Python. I was so lucky to find a instant word counter from https://bitbucket.org/yawaramin/oo.o-live-word-count/overview and started to hack on it. Hacking other peoples code is a very good way to get into new areas of coding.

I succeeded to improve the macro by adding a graphical progress bar.

The code will of cause be added to upstream ;-)

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.