Introduction to LibreOffice
        
        
          LibreOffice is a full-featured
          office suite. It is largely compatible with Microsoft Office and is descended from
          OpenOffice.org.
        
        
          This package is known to build and work properly using an LFS 12.3
          platform.
        
        
          Package Information
        
        
          
            - 
              
                Core Download: 
                https://download.documentfoundation.org/libreoffice/src/25.2.0/libreoffice-25.2.0.3.tar.xz
               
- 
              
                Core Download MD5 sum: 25650fc99e49799a0ac0f3bab8f66e41
               
- 
              
                Core Download size: 268 MB
               
- 
              
                Estimated disk space required: 11.0 GB including the
                additional files if downloaded during the build (774 MB
                installed). Installing the whole set of languages requires
                more than 25 GB (around 3 GB installed)
               
- 
              
                Estimated build time: 39 SBU with parallelism=8 (will vary
                due to download time)
               
 
        
          Additional Downloads
        
        
          ![[Note]](../images/note.png) 
          
            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, libarchive-3.7.7, Wget-1.25.0,
          Which-2.23, and Zip-3.0
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            An Internet connection is needed for building this package. The
            system certificate store may need to be set up with make-ca-1.15 before building this package.
          
         
        
          Recommended
        
        
          ![[Note]](../images/note.png) 
          
            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 both
            build and installed disk space along with increasing build time.
          
         
        
          apache-ant-1.10.15, Boost-1.87.0,
          CLucene-2.3.3.4, Cups-2.4.11, cURL-8.12.1, libepoxy-1.5.10,
          libjpeg-turbo-3.0.1, LLVM-19.1.7
          (clang is preferred for rendering with skia), GLM-1.0.1, GLU-9.0.3,
          GPGME-1.24.2, Graphite2-1.3.14, gst-plugins-base-1.24.12, GTK-3.24.48,
          harfBuzz-10.2.0, ICU-76.1, libatomic_ops-7.8.2, Little
          CMS-2.17, librsvg-2.59.2, libtiff-4.7.0,
          libwebp-1.5.0, libxml2-2.13.5
          and libxslt-1.1.42, lxml-5.3.1, Mesa-24.3.4, nss-3.108, OpenLDAP-2.6.9 (if connecting to an LDAP
          server), Poppler-25.02.0 (currently broken), PostgreSQL-17.3, Redland-1.0.17, and unixODBC-2.3.12
        
        
          Optional
        
        
          Abseil-cpp-20250127.0, Avahi-0.8,
          BlueZ-5.79, DConf-0.40.0, desktop-file-utils-0.28, Doxygen-1.13.2 (not relevant if using
          --disable-odk), evolution-data-server-3.54.3,
          GDB-16.2, GnuTLS-3.8.9,
          GTK-4.16.12, KDE Frameworks-6.11.0,
          libpaper-2.2.6, MariaDB-11.4.5
          or MySQL,
          MIT Kerberos V5-1.21.3, NASM-2.16.03, Qt-6.8.2, SANE-1.2.1,
          Valgrind-3.24.0, VLC-3.0.21,
          Apache Commons
          Codec, Apache
          Commons HttpClient, Apache Commons
          Lang, Apache Commons
          Logging, BeanShell, box2d, CoinMP, Cppunit,
          Dragonbox, Firebird, frozen, glyphy,
          Gnome VFS,
          hamcrest,
          Hunspell,
          Hyphen,
          iwyu,
          Java-WebSocket,
          junit4,
          libabw,
          libcdr,
          libcmis, libebook,
          libepubgen,
          libetonyek,
          libexttextcat,
          libfixmath,
          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 introduced by the latest version of ICU:
        
        patch -Np1 -i ../libreoffice-25.2.0.3-icu76_fixes-1.patch
        
          Next, fix a bug with linking to zlib, fix a bug that prevents the
          install from failing, and prevent compression of man pages:
        
        sed -i '/icuuc \\/a zlib\\'           writerperfect/Library_wpftdraw.mk &&
sed -i "/distro-install-file-lists/d" Makefile.in                       &&
sed -e "/gzip -f/d"   \
    -e "s|.1.gz|.1|g" \
    -i bin/distro-install-desktop-integration
        
          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-25.2.0.3.tar.xz external/tarballs/ &&
ln -sv ../../../libreoffice-help-25.2.0.3.tar.xz         external/tarballs/ &&
ln -sv ../../../libreoffice-translations-25.2.0.3.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-25.2.0.3/helpcontent2/ &&
ln -sv src/libreoffice-dictionaries-25.2.0.3/dictionaries/ &&
ln -sv src/libreoffice-translations-25.2.0.3/translations/
        
          ![[Note]](../images/note.png) 
          
            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-25.2.0.3:
        
        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]](../images/note.png) 
          
            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
        
          Prepare LibreOffice for
          compilation by running the following commands:
        
        ./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               \
             --disable-mariadb-sdbc      \
             --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-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-icu           \
             --with-system-zlib
        
          Build the package:
        
        make build
        
          Now, as the root user:
        
        make distro-pack-install
        
          If installed in /opt/libreoffice-25.2.0.3 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 $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/
  done
  unset i
fi
        
          If you have installed desktop-file-utils-0.28, 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
        
        
          --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]](../images/note.png) 
          
            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.
        
        
          --disable-mariadb-sdbc:
          This switch disables the MariaDB SDBC connector for Libreoffice
          Base. Leaving it enabled results in a build failure because of a
          problem linking to MIT Kerberos V5-1.21.3.
        
        
          --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-icu: This
          switch tells the build system to use the system installed version
          of ICU.
        
        
          --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.24.12.
        
        
          --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.2 for
          rendering instead of skia.
        
        
          --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 16 GB of memory, the difference in compile times was
          minimal, but an extra 2 GB 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-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-qt6: This switch enables
          support for integration with Qt6 and the Qt6 theming engine. If
          Qt-6.8.2
          is not installed in /usr, the include
          and library directories must be specified in the QT6INC and QT6LIB
          environment variables.
        
        
          --enable-kf6: This switch enables
          KDE/Plasma integration. If Qt-6.8.2 and/or KDE Frameworks-6.11.0
          are not installed in /usr, the
          include and library directories must be specified in QT6INC, QT6LIB,
          KF6INC, and KF6LIB, respectively. This includes a style plugin
          and KIO integration.
        
        
          --with-system-abseil: This switch
          enables using a system version of the Abseil C++ libraries instead
          of the bundled copy. Add this switch if Abseil-cpp-20250127.0 is installed and
          you wish to use it instead of the bundled copy.
        
        
          --enable-gtk4: This switch enables
          integration with GTK-4, including the usage of a GTK-4 file
          browsing dialog and themes.
        
       
      
        
          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
                   |