LibreOffice-7.6.3
Introduction to LibreOffice
LibreOffice is a full-featured office suite.
It is largely compatible with Microsoft Office
and is descended from OpenOffice.org.
Note
Development versions of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable versions of the books.
Package Information
Core Download: https://download.documentfoundation.org/libreoffice/src/7.6.3/libreoffice-7.6.3.2.tar.xz
Core Download MD5 sum: 3d083e600db4f747c90c714292f1d695
Core Download size: 268 MB
Estimated disk space required: 10 GB including the additional files if downloaded during the build (758 MB installed). Installing the whole set of languages requires more than 25 GB (around 3 GB installed)
Estimated build time: 25 SBU with parallelism=8 (will vary due to download time)
Additional Downloads
Note
Around 80 smallish tarballs and zip files will be downloaded during the
build. The download time will vary with the local internet speed and
server load. The download time is about 3 minutes on a fiber connection
and probably not much more than 10 minutes on an ADSL connection.
If you have not installed one or more of the following dependencies,
they will also be downloaded during the build.
LibreOffice Dependencies
Required
Archive-Zip-1.68,
UnZip-6.0,
Wget-1.21.4,
Which-2.21, and
Zip-3.0
Note
An Internet connection is needed for building this
package.
Recommended
Note
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.
apache-ant-1.10.14,
Boost-1.83.0,
CLucene-2.3.3.4,
Cups-2.4.7,
cURL-8.4.0,
dbus-glib-0.112,
libepoxy-1.5.10,
libjpeg-turbo-3.0.1,
LLVM-17.0.1 (clang is preferred for rendering with skia),
GLM-0.9.9.8,
GLU-9.0.3,
GPGME-1.23.1,
Graphite2-1.3.14,
gst-plugins-base-1.22.7,
GTK+-3.24.38,
HarfBuzz-8.3.0,
ICU-74.1,
libatomic_ops-7.8.0,
Little CMS-2.14,
librsvg-2.57.0,
libtiff-4.6.0,
libwebp-1.3.2,
libxml2-2.12.1 and
libxslt-1.1.39,
lxml-4.9.3,
Mesa-23.1.8,
nss-3.94,
OpenLDAP-2.6.6 (if connecting to an LDAP server),
Poppler-23.11.0,
PostgreSQL-16.1,
Redland-1.0.17, and
unixODBC-2.3.12
Optional
Avahi-0.8,
BlueZ-5.70,
DConf-0.40.0,
desktop-file-utils-0.27,
Doxygen-1.9.8 (not relevant if using --disable-odk),
evolution-data-server-3.50.1,
GDB-13.2,
GnuTLS-3.8.2,
KDE Frameworks-5.109.0,
libpaper-2.1.2,
MariaDB-10.11.5 or MySQL,
MIT Kerberos V5-1.21.2,
NASM-2.16.01,
(Qt-5.15.11 or qt-alternate-5.15.11),
Qt-6.6.1,
SANE-1.2.1,
telepathy-glib-0.24.2,
Valgrind-3.22.0,
VLC-3.0.20,
Apache Commons Codec,
Apache Commons HttpClient,
Apache Commons Lang,
Apache Commons Logging,
BeanShell,
box2d,
CoinMP,
Cppunit
Firebird,
glyphy,
Gnome VFS,
hamcrest,
Hunspell,
Hyphen,
iwyu,
junit4,
libabw,
libcdr,
libcmis,
libebook,
libepubgen,
libetonyek,
libexttextcat,
libfreehand,
liblangtag,
libmspub,
libmwaw,
libnumbertext,
libodfgen,
libpagemaker,
libqrcodegen,
libqxp,
librevenge (WordPerfect Document importer),
libstaroffice,
libvisio,
libwpd,
libwpg,
libwps,
libzmf,
lp_solve,
mdds,
MyThes,
odfvalidator,
officeotron,
OpenCOLLADA,
Orcus,
SystemTap, and
VIGRA
There are many optional dependencies not listed here. They can be
found in the download.lst
file in the sources
directory.
Editor Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libreoffice
Installation of LibreOffice
First, fix build failures caused by libxml2-2.12.x:
patch -Np1 -i ../libreoffice-7.6.3.2-consolidated_fixes-1.patch
If you have downloaded the dictionaries, help and translations tarballs,
create symlinks to them from the source directory so they won't get
downloaded again:
install -dm755 external/tarballs &&
ln -sv ../../../libreoffice-dictionaries-7.6.3.2.tar.xz external/tarballs/ &&
ln -sv ../../../libreoffice-help-7.6.3.2.tar.xz external/tarballs/ &&
ln -sv ../../../libreoffice-translations-7.6.3.2.tar.xz external/tarballs/
The instructions in the package unpack some tarballs into a location
it cannot find later. Create some symlinks to help the build system out:
ln -sv src/libreoffice-help-7.6.3.2/helpcontent2/ &&
ln -sv src/libreoffice-dictionaries-7.6.3.2/dictionaries/ &&
ln -sv src/libreoffice-translations-7.6.3.2/translations/
Note
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-7.6.3.2
:
export LO_PREFIX=<PREFIX>
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.
Note
If you set the ACLOCAL environment variable to support installing
Xorg in /opt, you will need to unset it for this package.
If you are building on a 32 bit machine, CFLAGS
is set to
-Os, which breaks the build. Prevent this
by issuing:
case $(uname -m) in
i?86) sed /-Os/d -i solenv/gbuild/platform/LINUX_INTEL_GCC.mk ;;
esac
Fix an error occurring with ICU 74+:
sed -e /LBCM/d -i i18npool/source/breakiterator/data/line.txt
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 Makefile.in &&
./autogen.sh --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-jdk-home=/opt/jdk \
--with-system-boost \
--with-system-clucene \
--with-system-curl \
--with-system-epoxy \
--with-system-expat \
--with-system-glm \
--with-system-gpgmepp \
--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-nss \
--with-system-odbc \
--with-system-openldap \
--with-system-openssl \
--with-system-poppler \
--with-system-postgresql \
--with-system-redland \
--with-system-libtiff \
--with-system-libwebp \
--with-system-zlib
Build the package:
make build
Now, as the root
user:
make distro-pack-install
If installed in /opt/libreoffice-7.6.3.2
some additional steps are necessary. Issue the following commands as the
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 libreoffice-7.6.3.2 /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/
done
unset i
fi
If you have installed desktop-file-utils-0.27, and you wish
to update the MIME database, issue, as the
root
user:
update-desktop-database
The suite and main modules can be started from the menu. From a terminal,
the suite can be started with the libreoffice command
and the modules with the libreoffice
--<module>
command,
respectively, where <module>
is one of
base, calc, draw, impress, math, web, or writer. Modules cannot be started
using their shell starting script names (see "Installed Programs", below),
if LO_PREFIX is other than /usr
,
unless the $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
. Note that the translations file
is not needed and won't be downloaded if using only en-US as a language.
Note
For a list of the available languages, look in
solenv/inc/langlist.mk
.
--with-help
: Without this switch, the help files
are not built.
--with-jdk-home=/opt/jdk
: This parameter will silence
a warning that the configure script attempted to find JAVA_HOME
automatically (even though that is passed in the environment). Omit this if
you disabled java.
--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.
--without-system-dicts
: This switch disables the
use of dictionaries from system paths so that 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 the system installed
Python 3 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.22.7.
--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.
--disable-skia
: Use Cairo-1.18.0 for rendering
instead of skia.
--enable-gtk3-kde5
: This switch allows the Visual Class
Library, which is responsible for widgets, to be built with KF5 file
dialogs if GTK+-3, Qt5 and Plasma are all available.
--enable-lto
: This switch will enable Link Time
Optimization, which results in slightly smaller libraries (about 40 MB).
This is said to make LibreOffice programs
load faster (and possibly run faster, e.g. when recalculating a
spreadsheet). On an 8-core machine with 16GB of memory, the difference
in compile times was minimal, but an extra 2GB was used for the work
files. On machines with fewer processors or a lack of memory, the compile
might be much slower.
--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. It is also needed for some optional
user interface components.
--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-kf5
: Builds with KDE/Plasma integration. If
(Qt-5.15.11 or qt-alternate-5.15.11) and/or KDE Frameworks-5.109.0 are not
installed in /usr
, the include
and library directories must be specified in QT5INC
,
QT5LIB
, KF5INC
, and KF5LIB
,
respectively.
--enable-evolution2
: Enables support for Evolution
address books through Evolution Data Server. Note that Evolution Data
Server must be installed for this feature to function.
--enable-qt5
: This switch enables support for integration
with Qt5 and the Qt5 theming engine. If (Qt-5.15.11 or qt-alternate-5.15.11) is not installed in
/usr
, the include and library
directories must be specified in the QT5INC
and
QT5LIB
environment variables.
Contents
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)
|
lobase |
is the database manager module shell starting script
|
localc |
is the spreadsheet module shell starting script
|
lodraw |
is the vector graphics editor and diagramming tool module shell
starting script
|
loimpress |
is the (PowerPoint) presentations editor and displayer
module shell starting script
|
lomath |
is the mathematical formula editor module shell starting script
|
loweb |
is the HTML editor module shell starting script
|
lowriter |
is the word processor module shell starting script
|
unopkg |
is a tool to manage LibreOffice
extensions from the command line
|