× К оглавлению На главную Об авторе

   Дата и время публикации:
Дата и время модификации:

Проблемы и решение

1. Суть проблемы

Как оказалось, что версия LibreOffice версии 7.0 в Debian/Bullseye (на момент первой публикации) не содержала нужной мне функциональности, а именно инспектор стиля (Style Inspector), который показан на рисунке 1.1

Рисунок 1.1

Поэтому решил произвести установку поддерживающей более менее эту функиональность версию LibreOffice-7.2, которая производилась путем получения и развертывания в отдельную локальную директорию, на основе уже имеющегося опыта в сети [3.1] и с привязкой к реальной системе Debain/Bullseye. Что заставило меня покопаться и затратить на достяжение указанной цели время и некоторых усилий, которые были оправданы и подтверждены результатами, которые не удавалось получить с установленной штатной версией LibreOffice-7.0 в Debian/Bullseye, поэтому в данном случае, утверждение "Це́ль опра́вдывает сре́дства" – верна.

2. Решение

2.1 Получение исходных кодов и архивных файлов словарей

Поэтому в домашней директории пользователя создадим поддиректорию $HOME/Builds/Libreoffise7x-env, в котором закачал указанную версию LibreOffice 7.2 с одного из зеркал ${MIRROR} [3.4], как показано в дапме 2.1.1

Дамп 2.1.1

$ mkdir -p ~/Build/Libreoffise7x-env/src && cd ~/Build/Libreoffise7x-env/src
user@home2:~/Build/Libreoffise7x-env$ wget -c ${MIRROR}/libreoffice/src/7.2.0/libreoffice-7.2.0.4.tar.xz
…
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 251846252 (240M) [application/octet-stream]
Сохранение в: «libreoffice-7.2.0.4.tar.xz»

libreoffice-7.2.0.4.tar.xz                           100%[===============================================>] 240,18M  11,0MB/s    за 22s

2021-08-30 13:14:09 (10,8 MB/s) - «libreoffice-7.2.0.4.tar.xz» сохранён [251846252/251846252]

После нормального завершения процедуры получения архивного файла исходных кодов, как показано в дампе 2.1.1, произвел распаковку архива libreoffice-7.2.0.4.tar.xz, как показано в дампе 2.1.2

Дамп 2.1.2

~/Build/Libreoffise7x-env/src$ tar xf libreoffice-7.2.0.4.tar.xz && cd libreoffice-7.2.0.4

и приступил к анализу используемых версий дополнительно устанавливаемых утилит и библиотек Archive-zip версии 1.68, wget версии 1.21.1 и zip версии 3.0, которые к счастью соответствовали предоставляемым версиям Debain/Bullseye и можно было установить, как показано в дампе 2.1.3

Дамп 2.1.3

~/Build/Libreoffise7x-env/src$ sudo apt update 
~/Build/Libreoffise7x-env/src$ sudo apt install libarchive-zip-perl wget zip

Перед установкой в директорию скачать накладывающий исправления freetype патч libreoffice-7.2.0.4-freetype_fix-1.patch в директорию ~/Build/Libreoffise7x-env/src [3.2]., как показано в дампе 2.1.4

Дамп 2.1.4

~/Build/Libreoffise7x-env/src$  wget -c ${FILESERVER}/libreoffice-7.2.0.4-freetype_fix-1.patch

${FILESERVER} — путь на выбранном WEB-сервере к патч libreoffice-7.2.0.4-freetype_fix-1.patch и наложить патч [3.3] на собираемый исходный код libreoffice-7.2 , как показано в дампе 2.1.5

Дамп 2.1.5

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ patch -Np1 -i ../libreoffice-7.2.0.4-freetype_fix-1.patch
patching file external/skia/freetype_2.11.patch
patching file external/skia/UnpackedTarball_skia.mk

Дальше нужно закачать словари в директории libreoffice 7.2.0/external/tarballs, которую при необходимости нужно создать, если она отсутствует, как показано в дампе 2.1.6

Дамп 2.1.6

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4/ $ \
install -dm755 external/tarballs && cd external/tarballs

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4/external/tarballs $ wget -c \
https://download.documentfoundation.org/libreoffice/src/7.2.0/libreoffice-dictionaries-7.2.0.4.tar.xz

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4/external/tarballs $ wget -c \
https://download.documentfoundation.org/libreoffice/src/7.2.0/libreoffice-help-7.2.0.4.tar.xz

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4/external/tarballs $ wget -c \
https://download.documentfoundation.org/libreoffice/src/7.2.0/libreoffice-translations-7.2.0.4.tar.xz

Далее, создал символьные ссылки на директории helpcontent2, dictionaries и translations с распакованными в будущем только что загруженными дополнительными архивами исходного кода, как показано в дампе 2.1.7

Дамп 2.1.7

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4/$ \
ln -sv src/libreoffice-help-7.2.0.4/helpcontent2/ && \
ln -sv src/libreoffice-dictionaries-7.2.0.4/dictionaries/ && \
ln -sv src/libreoffice-translations-7.2.0.4/translations/
'./helpcontent2' -> 'src/libreoffice-help-7.2.0.4/helpcontent2/'
'./dictionaries' -> 'src/libreoffice-dictionaries-7.2.0.4/dictionaries/'
'./translations' -> 'src/libreoffice-translations-7.2.0.4/translations/'

Если эту операцию не выполнить, процедура сборки может закончится с ошибками, такими как показано в дампе 2.1.8

Дамп 2.1.7

...
Module does not exist: /home/user/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4//dictionaries/Module_dictionaries.mk
...

2.2 Настройка конфигурации сборки и удовлетворение зависимостей

Далее, находясь в директории Libreoffise7x-env/src/libreoffice-7.2.0.4, переменную LO_PREFIX, предпочитаемый язык интерфейса пользователя (локали) ru_RU и запустил подготовку дерева исходных кодов, как показано в дампе 2.2.1

Дамп 2.2.1

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ \
export LO_PREFIX=$HOME/Build/Libreoffise7x-env/ && \
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='ru en-US'      \
             --with-help                 \
             --with-myspell-dicts        \
             --without-junit             \
            --without-system-dicts      \
            --disable-dconf             \
            --disable-odk               \
            --enable-release-build=yes  \
            --enable-python=system      \
            --with-jdk-home=/usr/lib/jvm/java-11-openjdk-amd64/ \
            --with-system-apr           \
            --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-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          \
            --with-system-zlib          \
            --with-boost-libdir=/usr/lib/x86_64-linux-gnu/

При этом, в процессе выполнения autogen.sh мне потребовалось дополнительно доустановить пакеты libcups2-dev, libcups2-dev<, libfontconfig-dev, gperf, libclucene-dev, libboost-all-dev, libglm-dev и т.д, как показано дамп 2.2.2

Дамп 2.2.2

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ \
sudo apt install \
                 libcups2-dev \
                 libcups2-dev \
                 libfontconfig-dev \
                 gperf \
                 libclucene-dev \
                 liblcms2-dev \
                 libxslt1-dev \
                 xsltproc \
                 libpq-dev \
                 libcurl3-gnutls \
                 libcurl4-gnutls-dev \
                 libboost-all-dev \
                 libglm-dev \
                 unixodbc-dev \
                 libnspr4-dev \
                 libnss3-dev \
                 libldap2-dev \
                 libgraphite2-dev \
                 libharfbuzz-dev \
                 libice-dev \
                 libsm-dev \
                 libxt-dev \
                 libxrender-dev \
                 libxrandr-dev \
                 libneon27-dev \
                 librdf0-dev \
                 libepoxy-dev \
                 libgtk-3-dev \
                 libgstreamer1.0-dev \
                 libgstreamer-plugins-base1.0-dev \
                 libpoppler-dev \
                 libassuan-dev \
                 libgpgmepp-dev \
                 libpoppler-dev \
                 libpoppler-private-dev \
                 libutfcpp-dev \
                 libustr-dev \
                 libpoppler-cpp-dev \
                 openjdk-11-jdk

Как можно увидеть, что вышеперечисленных пакеты в дампе 2.2.2 образуют необходимое окружение для настройки и сборки пакета исходного кода libreoffice-7.2, при этом для нормального завершения процедуры конфигурации сборки мной были парированы ряд ошибок, одна из которых показана в дамп 2.2.3

Дамп 2.2.3

...
configure: error: /opt/jdk/bin/java not found, pass --with-jdk-home
Error running configure at ./autogen.sh line 322.
...

В опции --with-jdk-home< нужно указать фактическое нахождение домашней директории JAVA_HOME, которая, как в моем случае, у дистрибутива Debian/Bullseye для архитектуры amd64, находится в директории /usr/lib/jvm/java-11-openjdk-amd64/ вместо /opt/jdk/bin/java

Для исправления ошибки, которая показана в дампе 2.2.4

Дамп 2.2.4

...
configure: error: javac not found set with_jdk_home
Error running configure at ./autogen.sh line 322.
...

устраняется установкой пакета openjdk-11-jdk-headless, который устанавливает необходимое окружение JAVA, как показано в дампе 2.2.5

Дамп 2.2.5

...
sudo apt install openjdk-11-jdk-headless
...

Исправление ошибки, которая показана в дампе 2.2.6

Дамп 2.2.5

Could not find a version of the boost date_time library!

Была исправлена добавлением опции --with-boost-libdir=/usr/lib/x86_64-linux-gnu/, которая указывает где искать библиотеки boost C++

Для исправления ошибки, которая показана в дампе 2.2.7

Дамп 2.2.6

...
configure: error: glm/glm.hpp not found. install glm
Error running configure at ./autogen.sh line 322.
...

Понадобилось выполнить ряд манипуляций с переустановкой пакетов Debian/Bullseye, так как у меня система с данным дистрибутивом на момент стабилизации простояла уже два года, то для некоторых пакетов, чтобы их установить, пришлось понижать версию к актуальной замороженной версии, что привело к обновлению всех пакетов, отвеающих за реализацию поддержки графического режима.

Теперь пробежимся по некоторым интересным опциям и их значениям

Общее используемые опции

--prefix=$LO_PREFIX : производит установку собранных бинарных модулей и библиотек в указанную директорию, в данном случае, определяемую в переменной $LO_PREFIX

--sysconfdir=/etc : указывается в случае использования --prefix , когда нужно указать где находятся файлы с информацией о применяемой программно-технической платформе .

--with-lang='ru en-US' : устанавливает необходимые файлы для трансляции интерфейса пользователя к локально применяемому языку, в данном случае им является русская локаль — ru

Дополняют или разрешают

--with-help : подготавливать и устанавливать справочную инфу

--with-myspell-dicts : включает поддержку словарей myspell

--enable-release-build=yes : производится сборка релиза (Release Build), а не так называемой тестируемой версии (Developer Build), которую выпускают разработчики, отличающуюся путями размещения программных модулей LibreOffice и снабжая дополнительными словами "Dev" или "Beta" интерфейс пользователя, например меню или экранной заставки.

Использующие системную (system) версию

Дело в том, что многие программные компоненты дублируются в исходном коде LibreOffice, но их компоновка может идти в разрез с мировосприятием разработчиков дистриубутива, что исключает необходимость их подключения и , затем, проверки соблюдения зависимостей.

--enable-python=system : Python-3 идущей вместе с LibreOffice

--with-system-apr : библиотеки ARP (Apache Portable Runtime) /пакет libapr1, libapr1-dev /

--with-system-boost : библиотеки Boost C++ / пакет libboost-all-dev /

--with-system-clucene : библиотеки механизма полнотекстового поиска / пакет libclucene-dev /

--with-system-curl : библиотеки CURL / пакеты libcurl3-gnutls, libcurl4-gnutls-dev /

--with-system-epoxy : библиотеки управления указателями на функции OpenGL / пакет libepoxy0, установлен по умолчанию /

--with-system-expat : библиотеки разбора XML /пакеты expat, libexpat1-dev и т.д. /

--with-system-glm : математической библиотеки, предназначенной для графического программного обеспечения, основанного на языке программирования OpenGL ( OpenGL Shading Language (GLSL) / пакет libglm-dev /

--with-system-gpgmepp : библиотеки C++ и Qt обёрток для библиотеки GPGME / пакет libgpgmepp-dev и связанные с ним пакеты Qt /

--with-system-graphite : библиотеки graphite / пакет libgraphite2-dev /

--with-system-harfbuzz : библиотекb обработки для отображения ширифтов Graphite

--with-system-icu : бибилиотеки ICU

--with-system-jpeg : бибилиотеки JPEG

--with-system-lcms2 : бибилиотеки Little CMS 2 / пакет liblcms2-dev /

--with-system-libatomic_ops: библиотеку libatomic_ops / пакет libatomic-ops-dev /

--with-system-libpng : бибилиотеки png / пакет libpng-dev /

--with-system-libxml : библиотеки libxml/libxslt / пакет libxslt1-dev /

--with-system-neon : библиотеки и окружения Neon / пакет libneon27-dev /

--with-system-nss : библиотеки nss /пакет libnss3-dev /

--with-system-odbc : библиотеки ODBC / пакет unixodbc-dev /

--with-system-openldap : библиотеки OpenLDAP / пакет libldap2-dev /

--with-system-openssl : библиотеки OpenSSL / пакет openssl /

--with-system-poppler : библиотеки Poppler / пакеты libpoppler-dev, libpoppler-private-dev /

--with-system-postgresql : библиотеки libpq5 / пакет libpq-dev /

--with-system-redland : поддержки  Redland Resource Description Framework (RDF)

--with-system-serf : поддержки Serf

--with-system-zlib : библиотеки zlib / была установлена по умолчанию/

Запрещают

--without-junit : тестировние запрещенных драйверов HSQLDB

--without-system-dicts : использовать и искать базы словарей в системе.

--disable-dconf : использовать поддержку базы системы конфигурации GNOME DConf

--disable-odk : устанавливать набор разработчика для LibreOffice

2.3 Сборка пакета исходного кода

Как показано в дампе 2.3.1, сборка пакета исходного кода возможна только после успешной настройки и удовлетворения всех зависимостей в результате выполнения скрипта autogen.sh, приводимого ранее в дампа 2.3.1

Дамп 2.3.1

...
config.status: creating config_host.mk
config.status: creating config_host_lang.mk
config.status: creating Makefile
config.status: creating bin/bffvalidator.sh
config.status: creating bin/odfvalidator.sh
config.status: creating bin/officeotron.sh
config.status: creating hardened_runtime.xcent
config.status: creating instsetoo_native/util/openoffice.lst
config.status: creating sysui/desktop/macosx/Info.plist
config.status: creating vs-code-template.code-workspace
config.status: creating config_host/config_probes.h
config.status: creating config_host/config_buildid.h
config.status: creating config_host/config_box2d.h
config.status: creating config_host/config_clang.h
config.status: creating config_host/config_crypto.h
config.status: creating config_host/config_dconf.h
config.status: creating config_host/config_eot.h
config.status: creating config_host/config_extensions.h
config.status: creating config_host/config_cairo_canvas.h
config.status: creating config_host/config_cxxabi.h
config.status: creating config_host/config_dbus.h
config.status: creating config_host/config_features.h
config.status: creating config_host/config_feature_desktop.h
config.status: creating config_host/config_feature_opencl.h
config.status: creating config_host/config_firebird.h
config.status: creating config_host/config_folders.h
config.status: creating config_host/config_fuzzers.h
config.status: creating config_host/config_gio.h
config.status: creating config_host/config_global.h
config.status: creating config_host/config_gpgme.h
config.status: creating config_host/config_java.h
config.status: creating config_host/config_langs.h
config.status: creating config_host/config_lgpl.h
config.status: creating config_host/config_libcxx.h
config.status: creating config_host/config_liblangtag.h
config.status: creating config_host/config_locales.h
config.status: creating config_host/config_mpl.h
config.status: creating config_host/config_oox.h
config.status: creating config_host/config_options.h
config.status: creating config_host/config_options_calc.h
config.status: creating config_host/config_zxing.h
config.status: creating config_host/config_skia.h
config.status: creating config_host/config_typesizes.h
config.status: creating config_host/config_vendor.h
config.status: creating config_host/config_vcl.h
config.status: creating config_host/config_vclplug.h
config.status: creating config_host/config_version.h
config.status: creating config_host/config_oauth2.h
config.status: creating config_host/config_poppler.h
config.status: creating config_host/config_python.h
config.status: creating config_host/config_writerperfect.h
****************************************************************************

To build, run:
/usr/bin/make

To view some help, run:
/usr/bin/make help

After the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice

If you want to run the smoketest, run:
/usr/bin/make check

HOST config (config.warn)

Как показано в дампе 2.3.1, нормальным завершением настройки конфигурации сборки является созданием заголовочных файлов в директории config_host и печати рекомендуемого перечня действий самого процесса сборки.

Процесс сборки, показанный в дампе 2.3.1, заключается в выполнении команды make с определенным перечнем целей, который будут автоматически выполнены.

При этом руководство по сборке предлагает выполнить цель check для команды make [3.9] , но так как все зависимости были мной удовлетворены выше , сборку проводил без их проверки, как показано в дампе 2.3.2

Дамп 2.3.2

user@home2:~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ make build-nocheck
...

После запуска которой, процедура сборки LibreOffice приступит к загрузке дополнительных архивов исходного кода из репозитария dev-www.libreoffice.org, который займет достаточно продолжительное время.

После нормального завершения процедуры сборки, мне осталось лишь выполнить установлку в ранее указанную директорию в переменной LO_PREFIX=$HOME/Build/Libreoffise7x-env/, как показано в дампе 2.3.3

Дамп 2.3.3

user@home2:~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ make distro-pack-install
...

Далее, мне осталось лишь закрыть все ранее открытые уже "старые" версии LibreOffce-7.0 и в программе эмулятора консоли запустить $LO_PREFIX/bin/lowriter c опцией --writer, результат запуска показан на рисунке 2.3.4

Рисунок 2.3.4

При этом, чтобы не нарушать работу штатно установленной версии LibreOffice-7.0 в Debian/Bullseye создал в локальной директории bin ссылку на writer из только что LibreOffice-7.2, как показано в дампе 2.3.5

Дамп 2.3.5

~$ ln -s $HOME/Build/Libreoffise7x-env/bin/lowriter $HOME/bin/lowriter-7.2
...

2.5 Визуализация анализа зависимостей программных компонентов

Для генерации зависимостей в виде графа[3.9] частей исходного кода LibreOffice, после выполнения настройки конфигурации с использованием autogen.sh [2.2], следует выполнить make dump-deps-png в корне директории исходного кода LibreOffice-7.2, как показано в дампе 2.5.1

Дамп 2.5.1

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ make dump-deps-png
reading deps ................................................................................ done

В результате, в той же рабочей директории будет создан файл lo.png , который показан на рисунке 2.5.2

Рисунок 2.5.2

Граф с зависимостями программных компонентов, показанный на картинке 2.5.2, был сгенерирован утилитой webgraphviz и показывает зависимости между программными компонентами, представляющие собой поддиректории в рабочей директории LibreOffice, полный перечень которых перечислен в дампе 2.5.3 [3.9]

Дамп 2.5.3


~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ exa -d */
accessibility   bridges          cppuhelper      eventattacher  i18nlangtag       jurt            odk           qadevOOo        sccomp        soltools  sysui         unoidl            workdir
android         canvas           cpputools       extensions     i18npool          jvmaccess       offapi        readlicense_oo  schema        sot       test          unoil             writerfilter
animations      chart2           cui             external       i18nutil          jvmfwk          officecfg     registry        scp2          src       testtools     unotest           writerperfect
apple_remote    cli_ure          dbaccess        extras         icon-themes       l10ntools       onlineupdate  remotebridges   scripting     starmath  toolkit       unotools          xmerge
autom4te.cache  codemaker        desktop         filter         idl               librelogo       oovbaapi      reportbuilder   sd            stoc      tools         unoxml            xmlhelp
avmedia         comphelper       dictionaries    forms          idlc              libreofficekit  oox           reportdesign    sdext         store     translations  ure               xmloff
basctl          compilerplugins  distro-configs  formula        include           lingucomponent  opencl        ridljar         setup_native  svgio     ucb           uui               xmlreader
basegfx         config_host      drawinglayer    fpicker        instdir           linguistic      osx           sal             sfx2          svl       ucbhelper     vbahelper         xmlscript
basic           configmgr        editeng         framework      instsetoo_native  lotuswordpro    package       salhelper       shell         svtools   udkapi        vcl               xmlsecurity
bean            connectivity     embeddedobj     helpcompiler   io                m4              pch           sax             slideshow     svx       uitest        wasm-qt           
bin             cppcanvas        embedserv       helpcontent2   ios               nlpsolver       postprocess   sc              smoketest     sw        UnoControls   winaccessibility  
binaryurp       cppu             emfio           hwpfilter      javaunohelper     o3tl            pyuno         scaddins        solenv        swext     unodevtools   wizards

При этом, как видно из рисунка 2.5.2, чтобы получить перечень зависисмостей программных компонентов в текстовом виде, достаточно выполнить make dump-deps, как показано в дампе 2.5.4

Дамп 2.5.4

~/Build/Libreoffise7x-env/src/libreoffice-7.2.0.4$ make dump-deps
reading deps ................................................................................ done
digraph LibreOffice {
edge  [color="#31CEF0", len=0.4]
edge  [fontname=Arial, fontsize=10, fontcolor="#31CEF0"]
node  [fontname=Verdana, fontsize=10, height=0.02, width=0.02,shape=Mrecord,color="#BBBBBB"];accessibility;animations;binaryurp;bridges;chart2;cppu;cppuhelper;cui;dbaccess;embeddedobj;extensions;hwpfilter;i18nlangtag;javaunohelper;jurt;jvmaccess;jvmfwk;lotuswordpro;oox;pyuno;registry;remotebridges;reportdesign;sal;salhelper;sc;scaddins;sccomp;sd;sdext;shell;slideshow;smoketest;starmath;stoc;store;sw;test;ucb;unoidl;unotest;vbahelper;writerfilter;writerperfect;xmlhelp;xmlreader;xmlsecurity
node  [fontname=Verdana, fontsize=10, height=0.02, width=0.02,shape=box,style=filled,color="#CCCCCC"];UnoControls;avmedia;basctl;basegfx;basic;canvas;comphelper;configmgr;connectivity;cppcanvas;desktop;drawinglayer;editeng;emfio;eventattacher;filter;forms;formula;fpicker;framework;helpcompiler;i18npool;i18nutil;io;lingucomponent;linguistic;opencl;package;sax;scripting;sfx2;sot;svgio;svl;svtools;svx;toolkit;tools;ucbhelper;unotools;unoxml;uui;vcl;xmloff;xmlscript
UnoControls -> tools;
accessibility -> svtools;
animations -> comphelper;
avmedia -> sfx2;
avmedia -> vcl;
basctl -> svx;
basegfx -> cppuhelper;
basic -> svtools;
basic -> xmlscript;
binaryurp -> cppuhelper;
bridges -> jvmaccess;
canvas -> svtools;
chart2 -> svx;
comphelper -> ucbhelper;
comphelper -> i18nlangtag;
configmgr -> tools;
connectivity -> svtools;
connectivity -> comphelper;
cppcanvas -> canvas;
cppu -> salhelper;
cppuhelper -> unoidl;
cppuhelper -> xmlreader;
cui -> svx;
dbaccess -> svx;
desktop -> helpcompiler;
desktop -> svx;
desktop -> xmlscript;
drawinglayer -> cppcanvas;
editeng -> linguistic;
editeng -> sfx2;
embeddedobj -> svtools;
emfio -> drawinglayer;
emfio -> sax;
eventattacher -> comphelper;
extensions -> svx;
filter -> svx;
filter -> xmloff;
filter -> package;
forms -> svx;
formula -> sfx2;
fpicker -> svtools;
framework -> svtools;
helpcompiler -> comphelper;
hwpfilter -> unotools;
i18nlangtag -> sal;
i18npool -> i18nutil;
i18npool -> comphelper;
i18nutil -> unotools;
io -> tools;
javaunohelper -> sal;
javaunohelper -> jvmaccess;
javaunohelper -> tools;
jurt -> sal;
jvmaccess -> cppuhelper;
jvmfwk -> cppuhelper;
lingucomponent -> unotools;
lingucomponent -> linguistic;
linguistic -> xmloff;
lotuswordpro -> svx;
oox -> filter;
opencl -> tools;
package -> sax;
package -> unotools;
pyuno -> cppuhelper;
registry -> store;
remotebridges -> cppuhelper;
reportdesign -> dbaccess;
reportdesign -> formula;
salhelper -> sal;
sax -> tools;
sc -> formula;
sc -> vbahelper;
sc -> oox;
sc -> test;
scaddins -> unotools;
sccomp -> unotools;
scripting -> vbahelper;
sd -> oox;
sd -> xmlsecurity;
sd -> cui;
sdext -> sfx2;
sdext -> xmloff;
sfx2 -> drawinglayer;
sfx2 -> framework;
sfx2 -> sax;
sfx2 -> basic;
shell -> tools;
slideshow -> canvas;
slideshow -> svx;
smoketest -> unotest;
sot -> unotools;
starmath -> oox;
stoc -> tools;
stoc -> jvmaccess;
stoc -> jvmfwk;
store -> salhelper;
svgio -> drawinglayer;
svgio -> sax;
svl -> i18nutil;
svl -> jvmfwk;
svl -> sot;
svtools -> toolkit;
svx -> avmedia;
svx -> connectivity;
svx -> editeng;
sw -> oox;
sw -> vbahelper;
sw -> formula;
sw -> test;
test -> unotest;
test -> drawinglayer;
test -> vcl;
toolkit -> vcl;
tools -> basegfx;
tools -> comphelper;
ucb -> sax;
ucb -> vcl;
ucbhelper -> cppuhelper;
unoidl -> registry;
unotest -> comphelper;
unotest -> basic;
unotools -> tools;
unoxml -> comphelper;
unoxml -> xmloff;
uui -> svx;
vbahelper -> filter;
vcl -> jvmaccess;
vcl -> opencl;
vcl -> svl;
writerfilter -> oox;
writerperfect -> test;
writerperfect -> svx;
xmlhelp -> helpcompiler;
xmlhelp -> vcl;
xmloff -> sax;
xmloff -> vcl;
xmlreader -> cppu;
xmlscript -> tools;
xmlsecurity -> svx;
xmlsecurity -> xmloff;
}

Для того, чтобы затем, выделенный жирным текста в дампе 2.5.4 можно было визуализировать в webgraphviz, результаты которого показаны на рисунке 2.5.5

Рисунок 2.5.5

На рисунке 2.5.5, показан фрагмент результата выполнения make dump-deps в консоли с выдачей текста на stdout и показанного ранее в дампе 2.5.4, и результат работы пользовательского интерфейса оnline-утилиты webgraphviz после копирования выделенного жирным текста в дампе 2.5.4 и нажатия кнопки "Generate Graph", показанной на картинке 2.5.5

3. Библиография

3.1 Beyond Linux® From Scratch (System V Edition) - Version r11.0-1. LibreOffice-7.2.0

3.2 Mirrors for libreoffice-7.2.0.4.tar.xz

3.3 Beyond Linux® From Scratch (System V Edition). Patches/blfs/svn

3.4 Configuring OpenJDK 11 on RHELpdf

3.5 Debian. Пакет: openjdk-11-jdk-headless

3.6 configure: error: Could not find a version of the library

3.7 Building LibreOffice on Linux and *BSD systems: Tips and Tricks

3.9 Development/Build System