Сборка TDE

Материал из ALT Linux Wiki

На данной странице планируется описать воспроизводимый процесс сборки для ALT Linux с участием всех заинтересованных участников.

Информация на официальных ресурсах

Информация о сборке базовых модулей указана на вики TDE - https://wiki.trinitydesktop.org/How_to_Build_TDE_Core_Modules

Перевод

Компоненты для сборки

Для сборки пакетов Trinity необходимы:

  • cmake >= 2.8.12
  • autotools (automake, autoconf и т. д.).
  • компилятор C++. (g++ до 4.6 включительно)

Дополнительные зависимости:

  • X server
  • openssl
  • fontconfig
  • freetype
  • ghostscript
  • xdg support
  • libpng
  • libmng

Для сборки tdepim также понадобится libical.

TQt

Trinity использует набор инструментов виджетов TQt. TQt — форк последней версии Qt3 со значительным количеством исправления ошибок и улучшения. Поскольку Trolltech, первоначальный разработчик Qt, прекратил поддержку Qt3, проект Trinity Project форкнул его и продолжил его обслуживание и развитие.

Порядок сборки

Порядок сборки (осн.)
Компонент
1 tqt3
2 cmake-trinity
3 tqtinterface
4 arts
5 dbus-tqt
6 dbus-1-tqt
7 tqca-tls[1]
8 libart-lgpl
9 avahi-tqt[2]
10 tdelibs
11 tdebase

Адаптация для ALT

Компоненты для сборки

Библиотеки в ALT
Компонент Треб. версия Пакет Версия
сизифа
cmake >= 2.8.12 cmake 3.31.3
autotools - autobook 1.5
g++ <=4.6 gcc-c++ 14
Библиотеки в ALT
Компонент Пакет Версия
сизифа
X server
openssl
fontconfig fontconfig-devel
freetype libfreetype-devel
ghostscript
xdg support
libpng libpng-*-devel
libmng libmng-devel
libical libical-devel

Репозиторий с исходными кодами

Git-репозиторий с TDE расположен по адресу: https://mirror.git.trinitydesktop.org/gitea/TDE/

В нем располагаются подрепозитории с различными модулями.

Через веб-интерфейс можно выбрать модуль, его версию и получить git-ссылку.

Сама сборка

Создаем каталог. Обзываем как-то TDE-build. Переходим в него.

$ mkdir tdebuild
$ cd tdebuild

1 cmake-trinity

Примечание: Репозиторий TDE - https://mirror.git.trinitydesktop.org/gitea/TDE/tde-cmake.git
Репозиторий для ALT - https://github.com/ALT-Linux-TDE/1-cmake-trinity


Получаем из архива Сизифа.

$ mkdir '2 rpm macros trinity'
$ cd '2 rpm macros trinity'
$ git clone https://git.altlinux.org/gears/r/rpm-macros-trinity.git

Смотрим содержимое каталога:

2 rpm macros trinity
├── .gear
│   └── rules
├── rpm.macros.trinity.standalone
└── trinity-filesystem.spec

Данный пакет содержит только спек и макрос для RPM для сборки пакетов с TDE.

gear/rules содержит следующую строку:

copy: rpm.macros.trinity.standalone

Т.е. сборочница просто скопирует файл в пакет и при установке расположит там, где нужно.

Примечание: Нужен комментарий от Руслана, нужно ли что-то менять для новой версии


2 tqt3

Примечание: Репозиторий TDE - https://mirror.git.trinitydesktop.org/gitea/TDE/tqt3
Репозиторий для ALT - https://github.com/ALT-Linux-TDE/2-tqt3


Получаем из архива Сизифа.

$ mkdir 1_tqt
$ cd 1_tqt
$ git clone https://git.altlinux.org/gears/t/trinity-tqt3.git

Состав:

1_tqt/trinity-tqt3
├── .gear
│   └── rules
├── altlinux
│   └── ПАТЧИ ДЛЯ ALT
├── build-examples.sh
├── import.info
├── qsa-x11-free
│   ├── changes-1.1.5
│   ├── configure
│   ├── configure2
│   ├── doc
│   ├── examples
│   ├── INSTALL
│   ├── LICENSE.GPL
│   ├── Makefile
│   ├── qsa.pro
│   ├── README
│   ├── src
│   └── tools
├── qt-ru
│   ├── tqassistant_ru.ts
│   ├── tqdesigner_ru.ts
│   ├── tqlinguist_ru.ts
│   ├── tqtconfig_ru.ts
│   └── tqt_ru.ts
├── tqt3.spec
├── trinity-tqt3
│   └── ИСХОДНИКИ TQT3
├── trinity-tqt3-rpmlintrc
├── trinity-tqt3.spec
└── upstream
    ├── build-examples.sh
    ├── tqassistant.desktop
    ├── tqdesigner.desktop
    ├── tqlinguist.desktop
    ├── tqt3-14.0.0.spec
    └── tqtconfig.desktop

Смотрим .gear/rules:

copy?: upstream/*.desktop
copy?: upstream/*.sh
copy: altlinux/*.patch
copy: altlinux/*.diff
copy: altlinux/*.png
copy: altlinux/*-sh
copy: altlinux/*.distribution
copy: altlinux/*.cpp
copy: altlinux/import.info

tar: qsa-x11-free name=qsa-x11-free-1.1.5
tar: qt-ru name=qt-ru-3.3.2-20040604 base=
tar: tqt name=trinity-tqt3-14.0.4

spec: tqt3-14.0.0.spec

В дополнение к Сборка_пакетов_start:

  • тег copy - скопирует при сборке в общий каталог с исходниками файл из указанной папки

Исходники последней версии (на 02.01.25) 14.1.3:

Для клонирования используем команду:

$ git clone --depth 1 --branch <tag_name> <repo_url>
  • опция --depth 1 указывает, что нужно скачать только одну ревизию, без всей истории

Для 14.1.3:

$ git clone --depth 1 --branch r14.1.3  https://mirror.git.trinitydesktop.org/gitea/TDE/tqt3.git

Заменяем файлы в

/home/user/TDE-project/1_tqt/trinity-tqt3
└── trinity-tqt3
    └── <...> <-- здесь

В спеке заменяем версии 14.0.х на 14.1.3. Не забываем сделать коммит.

Запускаем пересборку:

$ gear --hasher -- hsh --no-sisyphus-check -v
Примечание: Падает с ошибкой:
NIS disabled.
NIS support cannot be enabled due to functionality tests!
Turn on verbose messaging (-v) to ./configure to see the final report.
If you believe this message is in error you may use the continue
switch (-continue) to ./configure to continue.


Примечание: Что такое вообще NIS? NIS (Network Information Service, Информационная служба сети) — это клиент-серверный протокол, созданный Sun Microsystems, который позволяет обеспечивать доступ к системной конфигурации по всей сети.


Думаю, его можно выключить. В Qt4 стоит параметр nonis.

В спеке заменяем

%{?with_nis:-nis} %{?!with_nis:-no-nis}		\

на

-no-nis		\

После этого сборка падает на:

# proceed
%__make %{?_smp_mflags} sub-src sub-plugins sub-tools

С ошибкой:

make: *** No rule to make target 'sub-src'.  Stop.
Примечание: Что делать?


3 tqtinterface

4 arts

5 dbus-tqt

6 dbus-1-tqt

7 tqca-tls

8 libart-lgpl

9 avahi-tqt

10 tdelibs

11 tdebase

Примечания

  1. Рекомендуется, но требуется для некоторых приложений, таких как дополнение Kopete OTR
  2. Рекомендуется, но требуется для поддержки обнаружения служб DNS