Две недели назад мы рассмотрели механизм сборки клиента Telegram Desktop в виртуальной машине. Сегодня мы соберём готовые RPM пакеты, которые могут быть установлены в системе.
Введение
Сборка RPM пакетов Telegram Desktop может осуществляться как в mock, так и в rpmbuild средах. Для сборки нам потребуется Fedora версии 25 и выше с подключёнными репозиториями RPMFusion (у пользователей RussianFedora они уже подключены).
Внимание! Не пытайтесь собрать Telegram Desktop в Fedora COPR или других публичных системах для пользовательских сборок, т.к. это приведёт к блокировке вашей учётной записи из-за того, что используется ffmpeg и патентованные кодеки, находящиеся в списке запрещённых к распространению в Fedora Project.
Пользователям Fedora 24 и ниже
Для сборки и запуска клиента необходима библиотека ffmpeg версии 3.1 и выше, однако в репозиториях RPMFusion для Fedora 24 до сих присутствует только ffmpeg 3.0.
Соответственно, пользователи Fedora 24 должны либо самостоятельно собрать из исходников и обновить ffmpeg до версии 3.1, либо ждать решения в соответствующем баге RPMFusion.
Подготовка к сборке
Для начала нам потребуется установить в систему Git (для загрузки исходников спека), rpmbuild (для сборки RPM пакета из спека) и spectool (для загрузки исходников Telegram Desktop и необходимых зависимостей):
sudo dnf install git rpm-build rpmdevtools
Загружаем исходники спека и ряд необходимых патчей:
git clone https://github.com/EasyCoding/tgbuild.git tgbuild
Создаём базовую структуру каталогов rpmbuild:
rpmdev-setuptree
Сборка RPM пакета
Перейдём в каталог с загруженным спеком и патчами и запустим установку необходимых заголовочных файлов и библиотек:
cd tgbuild sudo dnf builddep telegram-desktop.spec
Скачаем исходники клиента Telegram Desktop с GitHub, а также необходимые для сборки исходники Qt 5.6.0 (OpenSource версия) и Google Breakpad:
spectool -g -R telegram-desktop.spec
Запускаем сборку RPM пакета:
rpmbuild -ba telegram-desktop.spec
Установка пакета
По окончании достаточно длительного процесса сборки, мы найдём результат в каталоге ~/rpmbuild/RPMS/$(uname -m).
Установим собранный пакет:
sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/telegram-desktop*.rpm
fedora 34, не работает… 🙁 ошибка:
Ошибки сборки пакетов:
Неверный код возврата из /var/tmp/rpm-tmp.bbFUK5 (%prep)
Начиная с 1 марта 2021 года я больше не занимаюсь поддержкой пакета Telegram Desktop для Fedora.
Для сборки актуальной версии требуется модификация SPEC-файла для добавления новых зависимостей сборки, а также обновление встроенного WebRTC из пакета tg_owt.