Why Linux LibreOffice Packaging Sucks

Introduction

It's not surprising that most Linux users of LibreOffice wait for their distro to update the package because if you actually tried to download and install it from the LibreOffice Web site, you'd have no hair left thanks to tearing it out in frustration. This page explains the amazing number of wrong packaging and documentation decisions that the LibreOffice release team persist in making and it's quite a shocking read.

First up, why three downloads for non-US users?

Being in the UK, I want the English (GB) version, so for my 64-bit CentOS 6 system I can download it here - this is for the "Fresh" (but stable) version. You are reminded here that CentOS 6 is quite some way behind with its LibreOffice releases, hence the need to manually download and install LibreOffice.

Er, hang on, why am I offered three separate downloads (all of which appear to be needed)?! For some inexplicable reason, the localised "translated user interface" package and the localised "help for offline use" are two separate downloads! These should be a (merged) single package for my language and not two, especially since they total only 13MB merged, which is way smaller than the main installer (210MB). Also note that the Windows download is only in two parts, so why isn't the Linux version?

OK, I've downloaded the three packages - where's the installation instructions?

The download page really should have a link to installation instructions in the main body of the page, but it sadly doesn't, it's actually linked to from the menu-based navigation at the top of the page under "GET HELP -> Installation Instructions" and then you click on the GNU/LINUX button. Sadly, this page is pretty useless, except for the link it gives to the Wiki entry which is the actual resting place for Linux installation instructions (and it's not even on the same domain as the main LibreOffice site!).

The first sentence of the installation instructions is completely staggering to me. Basically, it says that if you've not installed LibreOffice before or you have another office suite installed already, stop reading these instructions and go away! So LibreOffice don't want any new users at all then? That's the impression I get from that sentence...

I have to, what, manually uninstall my previous LibreOffice install?

It's extremely rare that an upgrade of a package on Linux requires you to completely uninstall the previous version, but, yep, that's exactly what you have to do with each and every LibreOffice release (and especially if it dares to jump a minor number like, say, 4.0 to 4.1). I'll explain why the uninstall is needed a bit later.

Why are the RPMs in the downloads named in two groups?

For some completely unfathomable reason, the multiple RPMs shipped in the .tar.gz files you downloaded are grouped into two name prefixes: libobasis<version> and libreoffice<version>. This is a terrible decision - the RPMs should be clearly be branded with only the libreoffice prefix.

Why do the RPMs contain the version number in the package name?

Again, another stupendously foolish move - the major.minor version is not only in the RPM filename, but also in the "Name" field of the RPM metadata! This means you can't simply upgrade to the next minor or major release with the standard "yum install *.rpm" command because you'd end up with two versions installed. This explains why you annoyingly have to manually uninstall the previous version (with the "yum remove libreoffice*" command) first.

For some bizarre reason, LibreOffice seem to think users need the ability to install two or more versions of the office suite simultaneously. They will never have this requirement - the only people who will are developers and they have their own separately-named development RPMs that can be installed alongside the stable RPMs, which is fine.

The installation instructions also fail to make it clear that each minor release of LibreOffice installs into separate /opt/libreoffice<major.version> trees because of the lunacy about simultaneously installing multiple versions. Any bets that Linux users who've downloaded the RPM versions have loads of versions installed because they didn't realise that "yum install" keeps the old version, unlike virtually every other RPM package ever installed on Linux?

Why are there en-US files (and French/Spanish dictionaries) in the main installer package?

The packaging disasters continue to crop up as the main installer completely wrongly includes 8 en-US RPMs and two dictionaries (French and Spanish)! These clearly should be part of an en-US "translated user interface" download and not included in the main installer (almost everyone outside the US will have to delete them!).

Why is there a filename clash between two of the .tar.gz's contents?

The installation instructions make no mention of the fact that there is a filename clash between the en-US dictionary (wrongly included in the main installer) and the en-GB dictionary (in the localised package) RPMs. Both are dubiously labelled with identical filenames containing just "en" and to get just the en-GB installed, you have to delete the US one and install the GB one only, not that you can tell from the filename!

Why do the three downloads unpack into separate directory trees?

After unpacking the three .tar.gz's, you're stupidly left with three different directory trees rather than them all unpacking into the same tree. This means that you have to go into two of the (long-named) directory trees and rename files into a single RPMs tree (usually in the main installer tree). The crazy filename clash mentioned above may be the reason they are separate, but it's still very annoying.

Why include an online update RPM?

Non-root users can't update LibreOffice, so it's not clear to me why an online update RPM is included. Is it for extensions perhaps? The installation instructions predictably don't tell you whether it's needed or not (on managed systems, I'd recommend not installing it).

Why are there over 40 RPMs to install?

Ludicrously, there are over 40 RPMs to install for LibreOffice - this might even be an all-time record on Linux. It's very clear that there should be far less - one common code RPM, and one RPM for each of Base, Calc, Impress, Math and Writer (because you might only want to install a subset of those).

So what's the conclusion?

The LibreOffice packaging team should hang their heads in shame at the mess they've made with the RPM release of their product for Linux. It's interesting to note that most RPM-based distros that ship LibreOffice themselves completely rework the packaging because it's such a disaster!

The solution is obvious - provide repositories for Debian/Ubuntu and Fedora/CentOS/SUSE and just let us install and update like we would for any other packages. This means one install tree across releases (/opt/libreoffice), less RPMs (40+ is stupid), no stupid version number in the package name, merging the language and help RPMs and properly separating them (including an en_US language pack). It would also mean distros wouldn't need to ship LibreOffice themselves - they could just configure in the repository and be done with it (perhaps installing via downloads as part of the first-time run after installation).