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-7.7 platform.

Package Information

Additional Downloads

LibreOffice Dependencies


Archive::Zip-1.45, UnZip-6.0, Wget-1.16.1, Which-2.20, 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.


Avahi-0.6.31, BlueZ-5.28, desktop-file-utils-0.22, Doxygen- (not relevant if using --disable-odk), GDB-7.9, GTK+-3.14.8 (see “Command Explanations”), kdelibs-4.14.5, libatomic_ops-7.4.2, MariaDB-10.0.16 or MySQL, MIT Kerberos V5-1.13.1, OpenJDK-, PostgreSQL-9.4.1, SANE-1.0.24, VLC-2.1.5, CoinMP, Cppunit, firebird, glew (OpenGL Extension Wrangler Library), 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, 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



LibreOffice must be built in a graphical environment - the build will fail otherwise.



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

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

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-


For i686 systems, fix a problem introduced by gcc-4.9.0:

patch -Np1 -i ../libreoffice-

Locales "en-US" and "pt-BR", 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 &&

sed -e "/ustrbuf/a #include <algorithm>" \
    -i svl/source/misc/gridprinter.cxx   &&

chmod -v +x bin/unpack-sources &&

./ --prefix=$LO_PREFIX         \
             --sysconfdir=/etc           \
             --with-vendor="BLFS"        \
             --with-lang="en-US pt-BR"   \
             --with-help                 \
             --with-myspell-dicts        \
             --with-alloc=system         \
             --without-java              \
             --without-system-dicts      \
             --disable-gconf             \
             --disable-odk               \
             --disable-postgresql-sdbc   \
             --enable-release-build=yes  \
             --enable-python=system      \
             --with-system-boost         \
             --with-system-clucene       \
             --with-system-cairo         \
             --with-system-curl          \
             --with-system-expat         \
             --with-system-graphite      \
             --with-system-harfbuzz      \
             --with-system-icu           \
             --with-system-jpeg          \
             --with-system-lcms2         \
             --with-system-libpng        \
             --with-system-libxml        \
             --with-system-mesa-headers  \
             --with-system-neon          \
             --with-system-npapi-headers \
             --with-system-nss           \
             --with-system-odbc          \
             --with-system-openldap      \
             --with-system-openssl       \
             --with-system-poppler       \
             --with-system-redland       \
             --with-system-zlib          \
             --with-parallelism=$(getconf _NPROCESSORS_ONLN)

The instructions below will only build the package without running any unit tests. If you prefer to run the unit tests, replace make build with make.

Build the package (remember that it must be done in a graphical environment):

make build

Now, as the root user:

make distro-pack-install                                  &&
install -v -m755 -d $LO_PREFIX/share/appdata              &&
install -v -m644    sysui/desktop/appstream-appdata/*.xml \

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 -sv -f $LO_PREFIX/lib/libreoffice/program/soffice \
            /usr/bin/libreoffice &&

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

  # Desktop menu entries
  pushd $LO_PREFIX/lib/libreoffice/share/xdg &&
  for i in *; do
    ln -svf $LO_PREFIX/lib/libreoffice/share/xdg/$i \
  done; unset i &&
  popd &&

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

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


Command Explanations

sed -e ...: The first sed prevents compression of the manual pages, the second one prevents install from failing and the third one includes a missing header without which make build fails.

chmod -v +x ...: Fix the unpack script's permissions.

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

--with-lang="en-US pt-BR": 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, you can look at the translations tarball: tar -tf ../libreoffice-translations- | grep translations/source| cut -d/ -f4 | uniq.

--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-alloc=system: This switch tells LibreOffice to use system allocator instead of the internal one.

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

--without-java: This switch disables Java support in LibreOffice.

--disable-gconf: This switch disables compiling LibreOffice with the deprecated GNOME configuration system support.

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

--disable-postgresql-sdbc: This switch disables compiling LibreOffice with the ability to connect to a PostgreSQL database. Remove it if you would like LibreOffice to be able to connect to a PostgreSQL database. If you have installed PostgreSQL on your system and would like LibreOffice to use that rather than compile its own copy, use the --with-system-postgresql switch.

--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.

--with-parallelism=$(getconf _NPROCESSORS_ONLN): This switch tells LibreOffice to use all your CPUs to compile in parallel and speed up the build.

--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.

--enable-gstreamer-0-10: Use this switch if you want to use gst-plugins-base-0.10.36 instead of gst-plugins-base-1.4.5 for the avmedia module.

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

--enable-gtk3: Use this switch if you want to build the GTK+ 3 integration module. This is experimental and may not work.

--enable-kde4: Use this switch if you want to build the KDE integration module.


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/{ure/lib,program}
Installed Directory: $LO_PREFIX/lib/libreoffice

Short Descriptions


is a database manager.


is a spreadsheet program.


is a vector graphics editor and diagramming tool.


can edit and display PowerPoint presentations.


is a mathematical formula editor.


is a word processor.


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

Last updated on 2015-02-27 16:25:31 -0800