Introduction to LibreOffice

LibreOffice is a full-featured office suite. It is largely compatible with Microsoft Office and is descended from

This package is known to build and work properly using an LFS-8.4 platform.

Package Information

Additional Downloads

LibreOffice Dependencies


Archive-Zip-1.64, UnZip-6.0, Wget-1.20.1, Which-2.21, and Zip-3.0




Most of these packages are recommended because if they're not installed, the build process will compile and install its own (often older) version, with the side effect of increasing build and installed disk space and build time.


Avahi-0.7, BlueZ-5.50, DConf-0.30.1, desktop-file-utils-0.23, Doxygen-1.8.15 (not relevant if using --disable-odk), GDB-8.2.1, GnuTLS-3.6.6, KDE Frameworks-5.55.0, libpaper-1.1.24+nmu5, MariaDB-10.3.13 or MySQL, MIT Kerberos V5-1.17, NASM-2.14.02, SANE-1.0.27, Valgrind-3.14.0, VLC-3.0.6, Apache Commons Codec, Apache Commons HttpClient, Apache Commons Lang, Apache Commons Logging, BeanShell, CoinMP, Cppunit, Firebird, glew (OpenGL Extension Wrangler Library), glyphy, Gnome VFS, hamcrest, Hunspell, Hyphen, iwyu, libabw, libcdr, libcmis, libebook, libexttextcat, libfreehand, liblangtag, libmspub, libmwaw, libodfgen, libpagemaker, librevenge (WordPerfect Document importer), libvisio, libwpd, libwpg, libwps, lp_solve, mdds, MyThes, ogl-math - OpenGL Mathematics (GLM), OpenCOLLADA, Orcus, telepathy-glib , VIGRA, and Zenity

There are many optional dependencies not listed here. They can be found in “download.lst” (source directory).

User Notes:

Installation of LibreOffice



Unlike the other packages, we assume that you have not yet unpacked the package. This is because the --no-overwrite-dir switch is needed in case you unpack as the root user.

tar -xf libreoffice- --no-overwrite-dir &&
cd libreoffice-

Fix a type mismatch introduced by recent versions of Boost-1.69.0:

sed -i 's/loaded;/bool{loaded};/' sfx2/source/appl/shutdownicon.cxx

Create symlinks to tarballs from the source directory so they won't get downloaded again:

install -dm755 external/tarballs &&
ln -sv ../../../libreoffice-dictionaries- external/tarballs/ &&
ln -sv ../../../libreoffice-help-         external/tarballs/

If you have downloaded the translations tarball, create a symlink:

ln -sv ../../../libreoffice-translations- external/tarballs/


During the build process, some packages will be downloaded (including the ones listed as recommended and optional dependencies) if they are not present on the system. Because of this, build time may vary from the published time more than usual.

Due to the large size of the package, you may prefer to install it in /opt, instead of /usr. Depending on your choice, replace <PREFIX> by /usr or by /opt/libreoffice-


Locales "fr" and "en-GB", you will find below, are just examples; you should change them to suit your needs - you might want to read the "Command Explanations", further below, before proceeding.

Prepare LibreOffice for compilation by running the following commands:

sed -e "/gzip -f/d"   \
    -e "s|.1.gz|.1|g" \
    -i bin/distro-install-desktop-integration &&

sed -e "/distro-install-file-lists/d" -i &&

./ --prefix=$LO_PREFIX         \
             --sysconfdir=/etc           \
             --with-vendor=BLFS          \
             --with-lang='fr en-GB'      \
             --with-help                 \
             --with-myspell-dicts        \
             --without-junit             \
             --without-system-dicts      \
             --disable-dconf             \
             --disable-odk               \
             --enable-release-build=yes  \
             --enable-python=system      \
             --with-system-apr           \
             --with-system-boost         \
             --with-system-cairo         \
             --with-system-clucene       \
             --with-system-curl          \
             --with-system-expat         \
             --with-system-graphite      \
             --with-system-harfbuzz      \
             --with-system-icu           \
             --with-system-jpeg          \
             --with-system-lcms2         \
             --with-system-libatomic_ops \
             --with-system-libpng        \
             --with-system-libxml        \
             --with-system-neon          \
             --with-system-nss           \
             --with-system-odbc          \
             --with-system-openldap      \
             --with-system-openssl       \
             --with-system-poppler       \
             --with-system-postgresql    \
             --with-system-redland       \
             --with-system-serf          \

The instructions below will only build the package without running any unit tests. If you prefer to run the unit tests, replace make build-nocheck with make build or (as a regular user only) just make, but do not be surprised if a unit test fails right at the end of the build and breaks it.

Build the package:

make build-nocheck

Now, as the root user:

make distro-pack-install

If installed in /opt/libreoffice- some additional steps are necessary. Issue the following commands, as root user:

if [ "$LO_PREFIX" != "/usr" ]; then

  # This symlink is necessary for the desktop menu entries
  ln -svf $LO_PREFIX/lib/libreoffice/program/soffice /usr/bin/libreoffice &&

  # Set up a generic location independent of version number
  ln -sfv $LO_PREFIX /opt/libreoffice 

  # Icons
  mkdir -vp /usr/share/pixmaps
  for i in $LO_PREFIX/share/icons/hicolor/32x32/apps/*; do
    ln -svf $i /usr/share/pixmaps
  done &&

  # Desktop menu entries
  for i in $LO_PREFIX/lib/libreoffice/share/xdg/*; do
    ln -svf $i /usr/share/applications/libreoffice-$(basename $i)
  done &&

  # Man pages
  for i in $LO_PREFIX/share/man/man1/*; do
    ln -svf $i /usr/share/man/man1/

  unset i

If you have installed desktop-file-utils-0.23, and you wish to update the MIME database, issue, as the root user:


The suite and main modules can be started from the menu. From a terminal, the suite can be started with libreoffice command and the modules with libreoffice --<module> command, respectively, where <module> is one of base, calc, draw, impress, math or writer. Modules cannot be started using their shell starting script names (see "Installed Programs", below), if LO_PREFIX is other than /usr, unless $LO_PREFIX/bin directory is appended to the PATH.

Command Explanations

sed -e ...: The first sed prevents compression of the manual pages and the second one prevents the install from failing.

--with-vendor=BLFS: This switch sets BLFS as the vendor which is mentioned when you click "About" from the Help menu on the toolbar.

--with-lang='fr en-GB': This switch sets what languages to support. To list several languages, separate them with a space. For all languages, use --with-lang=ALL.



For a list of the available languages, look in solenv/inc/

--with-help: Without this switch, the help files are not built.

--with-myspell-dicts: This switch adds myspell dictionaries to the LibreOffice installation set.

--with-system-boost: This switch enables using system boost. From time to time, recent versions of boost break the build of libreoffice. In this case, it is possible to use the bundled copy of boost, by removing this flag.

--disable-dconf: This switch disables compiling LibreOffice with the GNOME DConf configuration system support.

--without-junit: This switch disables the tests for the deprecated HSQLDB driver which is written in Java. If you wish to build this driver replace this switch with the set of switches described below under '--with-java'.

--without-system-dicts: This switch disables use of dictionaries from system paths, so the ones installed by this package are used.

--disable-odk: This switch disables installing the office development kit. Remove if you want to develop a LibreOffice based application.

--enable-release-build=yes: This switch enables a Release Build. LibreOffice can be built as a Release Build or as a Developer Build, because their default installation paths and user profile paths are different. Developer Build displays the words "Dev" and "Beta" in several places (e.g, menu and splash screen).

--enable-python=system: This switch tells LibreOffice to use installed Python 3 to build the translations instead of the bundled one.

--with-system-*: These switches prevent LibreOffice from trying to compile its own versions of these dependencies. If you've not installed some of the dependencies, remove the corresponding switches.

make distro-pack-install: this does a normal install, but if you add a DESTDIR environment variable it will also install a lot of (text) gid_Module_* files in the DESTDIR, to help distributions which want to break the package into parts.

--with-parallelism=<count>: This switch tells LibreOffice to use <count> CPU cores to compile in parallel. (Do not include literal angle brackets.) The default is to use all available cores on the system.

--disable-cups: Use this switch if you don't need printing support.

--disable-dbus: Use this switch if you've not installed D-Bus-1.8.0 or later. It also disables Bluetooth support and font install via PackageKit.

--disable-firebird-sdbc: By default, the ability to connect to a firebird database is enabled. Add this switch if you do not need that feature.

--disable-gstreamer-1-0: Use this switch if you have not installed gst-plugins-base-1.14.4.

--disable-gtk3: Use this switch if you have not installed GTK+-3, or if you have installed it but wish to use GTK+-2 (the menu icons differ). Note that a GTK+-3 build still requires GTK+-2 to build the gtk-plugin.

--disable-postgresql-sdbc: This switch disables compiling LibreOffice with the ability to connect to a PostgreSQL database. Use it if you have not installed PostgreSQL and you do not want LibreOffice to compile its bundled copy.

--without-java: This switch disables Java support in LibreOffice. Java is needed for the deprecated HSQLDB driver, which allows reading databases created by other programs or in earlier versions of libreoffice base.

--with-junit=/opt/ant/lib/junit-4.12.jar and --with-hamcrest=/opt/ant/lib/hamcrest-core-1.3.jar: Those options are needed if you want to run the tests.

--without-fonts: LibreOffice includes a number of third-party TrueType fonts. If you have already installed some or all of the same fonts, you may prefer to use the system versions.

--enable-kde5: Builds with KDE/Plasma integration. If Qt-5.12.1 and/or KDE Frameworks-5.55.0 are not installed in /usr, the include and library directories must be specified in QT5INC, QT5LIB, KF5INC, and KF5LIB, respectively.


Installed Programs: libreoffice, lobase, localc, lodraw, loffice, lofromtemplate, loimpress, lomath, loweb, lowriter, soffice and unopkg; several programs under $LO_PREFIX/lib/libreoffice/program
Installed Libraries: several libraries under $LO_PREFIX/lib/libreoffice/program
Installed Directory: $LO_PREFIX/lib/libreoffice

Short Descriptions

libreoffice (or soffice)

is the main libreofice suite (symlink to $LO_PREFIX/lib/libreoffice/program/soffice).


is the database manager module shell starting script.


is the spreadsheet module shell starting script.


is the vector graphics editor and diagramming tool module shell starting script.


is the (PowerPoint) presentations editor and displayer module shell starting script.


is the mathematical formula editor module shell starting script.


is the HTML editor module shell starting script.


is the word processor module shell starting script.


is a tool to manage LibreOffice extensions from the command line.

Last updated on 2019-02-27 21:41:38 -0800