Собираем RPM пакет Telegram Desktop для Fedora

Две недели назад мы рассмотрели механизм сборки клиента 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

2 commentary to post

  1. fedora 34, не работает… 🙁 ошибка:

    Ошибки сборки пакетов:
    Неверный код возврата из /var/tmp/rpm-tmp.bbFUK5 (%prep)

    1. Начиная с 1 марта 2021 года я больше не занимаюсь поддержкой пакета Telegram Desktop для Fedora.

      Для сборки актуальной версии требуется модификация SPEC-файла для добавления новых зависимостей сборки, а также обновление встроенного WebRTC из пакета tg_owt.

Обсуждение закрыто.