Towards Desktop Publishing

Towards DTP slideIf you were not able to attend this presentation, please find the slides online. There are some really nice examples for the new InDesign-like typographical features of LibreOffice.
Unfortunatelly, I was not able to attend the conference, so many thanks to András Tímár for the presentation.

Hackweek – LibreOffice multilingual MSI installer

I had been thinking about simplifying installing process of LibreOffice under Windows for a long time. During hackweek I had the opportunity to work on this problem and at the end of the week I could produce a proof-of-concept solution.

Currently LibreOffice Windows installer is rather complicated. It starts with the NSIS pre-installer which extracts MSI file, language MST files, readmes, setup.ini and setup.exe to a directory in the user’s file system. Desktop is the default. Then setup.exe starts. It also tries to find out the language to be used, installs the vcredist files, then starts the MSI installer (with a language transform, if necessary). MSI installer does the real installation.

It is not only overcomplicated but there are problems with NSIS:

  • It does not know Unicode. Localized installers cannot be made for many languages.
  • Help packs have localized installers and localized text is displayed correctly only when the system legacy code page setting matches to that language. For example Russian help pack installer displays garbage characters on English system.
  • It extracts files to Desktop (per default). Users are confused, they don’t know, if they can remove those files or not.
  • It has a cryptic bug which caused problems with Chinese installers (garbage characters) fdo#32335

In fact MSI alone is capable to install anything. In a few steps I created a multilingual single MSI installer for LibreOffice 3.4

  1. In solenv/bin/modules/installer/global.pm set $include_cab_in_msi from 0 to 1. This creates one big MSI file with the CAB included.
  2. Instead of installing vcredist_x86.exe separately, the necessary runtime files can be merged into the MSI. We definitely need MSVCRT, I’m not sure about ATL, and we don’t need MFC. So it helps in reducing the size of installer, if we don’t ship DLLs that are not used by LibreOffice. Merge modules should be copied to external/msm90, they can be found at c:\Program Files (x86)\Common Files\Merge Modules\ in every Windows dev environment. Scp2 and installer creator perl scripts can handle merge modules (and after a while I found out how).
  3. The use of embedded language transforms is an undocumented feature of Windows Installer. A language transform is a transform that is located in a substorage of a Windows Installer package that is named after the LangId. The Summary Information Stream (Property: PID_TEMPLATE) includes a list of languages that are supported by the package. Windows Installer automatically selects the language that matches the language preference that is set for the operating system. Basically I followed the instructions on http://www.installsite.org/pages/en/msi/articles/embeddedlang/. The necessary VBScript files are part of Windows SDK, at least Microsoft mentions this in KB articles. I found them elsewhere on the net.

I uploaded the result to http://ftp.fsf.hu/LibreOffice/Multilang-MSI/.
The installer file, libreoffice34.msi starts in the default language of Windows. Any language can be forced, e.g. Hungarian with LCID 1038:
msiexec -i libreoffice34.msi TRANSFORMS=:1038
Note the colon before the number, that denotes internal transform.

TODO:

  • Test a lot, and possibly find out whether this method was not used on purpose before.
  • Implement step 3. as part of the build.
  • Do the same for helppack installers.
  • Clean up the code (remove NSIS, possibly remove ulfconv, etc.)

Lively Alphabet – coloring book and DTP example

Published for the anniversary of LibreOffice, Lively Alphabet (PDF, 4,7 Mb) is a free coloring book, also a demo of SVG vector graphics support and the new typographical features – especially the beautiful new font variant Linux Libertine Display G – of LibreOffice. To load and modify the huge ODF source document (47 Mb, released under the GNU Free Documentation License), it is recommended to check out anti-aliasing in LibreOffice in Tools » Options » LibreOffice » View page).

New fonts, unique features for LibreOffice DTP

Based on the excellent SIL Graphite font technology and Philipp H. Poll’s Libertine Open Fonts project, LibreOffice has got extraordinary DTP capabilities with the extended Graphite version of Linux Libertine and Biolinum font families. Now LibreOffice supports new bold and semibold font variants, true size variants, combining diacritics (a basic requirement for several languages and for different scientific notations, eg. IPA) with correct typography (position, kerning, glyph variants for upper case letters), Italic correction (only in LibO 3.3, yet), new features for Baltic and other languages with diacritics (true small caps for Latvian, Lithuanian, Esperanto etc.), Catalan (improved typography of long l·l), English (optional TeX-like sentence spacing, only in LibO 3.3, yet), Hungarian (Italic gj, gf, gy variants), Serbian (Italic б, г, д, п variants using feature locl), experimental hanging punctuation (see picture) and much more. Release notes and documentation with examples. The development of Linux Libertine G and Biolinum G Graphite fonts was supported by FSF.hu Foundation, Hungary.

Internship at Novell Hungary

Three computer science BSc students from Eötvös Loránd University (Budapest) have started internship at Novell Professional Services Hungary (NPSH), and more students are expected to come. During the 6 weeks period of internship their work is to get involved in LibreOffice development. NPSH officially announced this opportunity on the university’s home page (in Hungarian).

I am mentoring these students which means I help them to get started (download the source, setup the build environment, build the source, and solve an easy hack). Later they are encouraged to start with a more complex problem, with the help of the whole LibreOffice developer community. I hope that this internship program will be successful and some students will stay with LibreOffice project for a longer period.

FSF.hu donated a new Pootle server to TDF

FSF.hu logo In April, 2011 FSF.hu offered a Core 2 Quad server with 8GB RAM and 100GB disk and free Internet hosting to TDF. The parties agreed that the best utilization of this server would be the hosting of translation services (Pootle). After a few weeks of installing and testing, the server started to host Pootle yesterday.

While the VM Pootle was running in had been running stable since the last incident where VM did “freeze”, the dedicated server has enough RAM to hold the complete database in RAM, and thus does not rely on the host’s file-cache. Creation of database backup is also faster. Creating the files for download is still CPU bound and thus not affected by the amount of RAM. Last but not least this transition allows TDF to turn the old server into a playing ground again without having to worry about affecting productivity tools.

Many thanks to Christian Lohmaier (TDF) and Peter Mato (FSF.hu) who have helped a lot to set up the new server.

About FSF.hu

The FSF.hu Foundation for Promoting and Localizing Free Software in Hungary (“FSF.hu Alapítvány a Szabad Szoftverek Magyarországi Népszerűsítéséért és Honosításáért”) was officially recognized by the Hungarian state as a foundation for the public good (“közhasznú alapítvány”) on January 27th, 2003. We use the FSF.hu moniker to signify our adherence to the principles of software freedom as articulated by Richard Stallman and the Free Software Foundation.

OOo goes to Apache Foundation

It’s hard to add anything new to the plethora of comments and reviews about OpenOffice.org Contribution to Apache.

I just wanted to react to Luke Kowalski’s OpenOffice.org Apache Incubator Proposal:

Localization resources are expected to gravitate to the new project, as well.

Being a free software localizer who spent significant amount of time in the last 12 years on localizing free software on a voluntary basis, I do not find appealing to translate anything for free for a non-copyleft licensed software. I don’t like the business model where large corporations happily take the work of volunteers, who save them a lot of money, and nothing or nearly nothing comes from them in return.

I’m afraid that the new OpenOffice.org Apache project serves no other purpose than IBM can continue their practice: they take code others wrote for free, while keeping their code proprietary and occasionally dumping the unimportant parts to an open core to ease maintenance. I feel reluctant to support this scheme.

LibreOffice at Info Savaria 2011

Info Savaria is a traditional conference for Hungarian informatics teachers. It is held every year in Szombathely, Hungary. This time I was invited to give a talk about LibreOffice. I summarized the history of the project and the new features of LibreOffice 3.3. I tried to emphasize the advantages of the new free development model.

Although Microsoft software is prevalent in Hungarian educational system, an increasing group of devoted teachers use and teach free software, including Linux, Gimp, and LibreOffice. I find conversation between power users and developers very useful. Understading teachers’ point of view helps developers in prioritizing bugs and feature requests.

DFD, LibreOffice 3.3.2, and Firefox 4 Release Party

LibreOffice Kalman “KAMI” Szalai – a Hungarian free software activist – organized an event called Document Freedom Day, LibreOffice 3.3.2 and Firefox 4 Release Party.

Date: 2011-03-30
Venue: Uránia Coffee House
Program:

  • 4 lighning talks – one about ODFA, two about LibreOffice and one about Firefox
  • cakes
  • socializing

Sponsors: Uránia Coffee House, Mozilla Europe, FSF.hu, ODFA Hungary

More info (in Hungarian) and more photos can be found at Mozilla Hungary Community Site.