GitHub Telegram Desktop: исходный код и работа с репозиторием

Репозиторий Telegram Desktop на GitHub расположен по адресу github.com/telegramdesktop/tdesktop — именно там размещён официальный исходный код десктопного клиента, туда же пользователи отправляют отчёты об ошибках через раздел Issues. Если вы ищете, откуда скачать исходники, как собрать клиент самостоятельно или куда написать о баге, вся работа ведётся именно с этим репозиторием.

Telegram Desktop — один из крупнейших открытых проектов на C++: код клиента публикуется под лицензией GNU GPL v3, что позволяет любому разработчику изучать его, собирать собственные сборки и предлагать изменения. В этой статье разберём, как устроен репозиторий, как скачать исходный код, какие инструменты нужны для сборки и как правильно взаимодействовать с командой проекта.

Что находится в репозитории tdesktop

Репозиторий tdesktop содержит полный исходный код официального десктопного приложения Telegram для Windows, macOS и Linux. Помимо самого кода, там публикуются файлы сборки, документация по компиляции, история изменений (changelog) и список релизов. Клиент написан преимущественно на C++ с использованием фреймворка Qt.

Структура репозитория включает несколько важных разделов:

  • 📂 Telegram/SourceFiles — основной исходный код клиента;
  • 📋 Issues — трекер ошибок и предложений от пользователей;
  • 🏷️ Releases — опубликованные версии с описанием изменений;
  • 📖 docs — инструкции по сборке для разных платформ;
  • 🔀 Pull Requests — предлагаемые изменения от сообщества.

Обратите внимание: в разделе Releases репозитория публикуются не всегда готовые установщики, а прежде всего исходный код версии. Готовые сборки для обычных пользователей распространяются через официальный сайт Telegram и механизм автообновления самого клиента.

Как скачать исходный код с GitHub

Получить код можно двумя способами: скачать архив конкретного релиза или клонировать репозиторий через Git. Второй вариант предпочтительнее, если вы планируете следить за обновлениями или собирать проект, поскольку репозиторий использует подмодули (submodules), которые архив не всегда включает корректно.

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

git clone --recursive https://github.com/telegramdesktop/tdesktop.git

Ключ --recursive обязателен: без него подмодули (сторонние библиотеки, от которых зависит сборка) не загрузятся, и компиляция завершится ошибкой. Если вы уже склонировали репозиторий без этого ключа, подмодули можно подтянуть отдельно:

git submodule update --init --recursive

Сборка Telegram Desktop из исходников

Сборка tdesktop — нетривиальная задача даже для опытных разработчиков. Проект требует определённой версии компилятора, набора библиотек и подготовленного окружения. Точные требования меняются от версии к версии, поэтому единственный надёжный источник — официальные инструкции в папке docs репозитория, отдельные для Windows, macOS и Linux.

Общий порядок действий выглядит так:

  • 🛠️ Установите требуемую версию Visual Studio (для Windows) или компилятор для вашей ОС;
  • 📦 Подготовьте сторонние библиотеки согласно инструкции из docs;
  • ⚙️ Сгенерируйте файлы сборки через cmake с параметрами из документации;
  • 🚀 Запустите компиляцию и дождитесь её завершения.

☑️ Перед началом сборки проверьте

Выполнено: 0 / 5
⚠️ Внимание: не используйте инструкции по сборке из сторонних блогов и старых руководств. Требования к версиям компилятора и библиотек регулярно меняются, и устаревшая инструкция почти гарантированно приведёт к ошибкам компиляции. Сверяйтесь только с актуальными файлами в папке docs репозитория.
📊 Зачем вам репозиторий Telegram Desktop на GitHub?
Скачать исходный код
Собрать клиент самостоятельно
Сообщить об ошибке
Изучить код в учебных целях

Как сообщить об ошибке через Issues

Раздел Issues — официальный канал для отчётов о багах в Telegram Desktop. Прежде чем создавать новый отчёт, воспользуйтесь поиском: велика вероятность, что ваша проблема уже описана, и вы сможете дополнить существующее обсуждение вместо создания дубликата.

Качественный отчёт об ошибке содержит:

  • 🔢 номер версии клиента (смотрите в настройках приложения);
  • 💻 операционную систему и её версию;
  • 📝 пошаговое описание действий, приводящих к проблеме;
  • 🎯 ожидаемое поведение и фактический результат;
  • 📎 логи или скриншоты, если они помогают понять ситуацию.

Чем точнее отчёт, тем выше шанс, что проблему воспроизведут и исправят. Расплывчатые сообщения вида «не работает» без деталей обычно закрываются без рассмотрения.

Что делать, если ошибка касается не клиента, а самого Telegram

Репозиторий tdesktop принимает отчёты только по десктопному приложению. Проблемы с серверами, аккаунтом, мобильными клиентами или API следует направлять через другие каналы: встроенную функцию «Спросить» в настройках приложения или соответствующие репозитории мобильных клиентов на GitHub.

Участие в разработке: Pull Requests и форки

Любой желающий может сделать форк репозитория, внести изменения и предложить их через Pull Request. Однако стоит понимать: проект развивается под контролем команды Telegram, и принятие внешних изменений происходит избирательно. Перед серьёзной доработкой имеет смысл обсудить идею в Issues, чтобы не потратить время на изменение, которое не будет принято.

Для экспериментов и собственных модификаций форк ничем не ограничен — лицензия GPL v3 разрешает изменять код и распространять производные сборки при условии публикации их исходного кода под той же лицензией. Если вы распространяете модифицированную сборку Telegram Desktop, вы обязаны открыть её исходный код — это ключевое требование лицензии.

⚠️ Внимание: скачивайте сторонние модифицированные сборки Telegram Desktop только из источников, которым полностью доверяете. Клиент имеет доступ ко всей вашей переписке, и вредоносная модификация способна скомпрометировать аккаунт. Безопасный вариант — официальный клиент с сайта Telegram или сборка из исходников собственными руками.

Сравнение способов получения Telegram Desktop

В зависимости от ваших целей подходят разные способы получения клиента:

Способ Кому подходит Особенности
Официальный сайт Telegram Обычным пользователям Готовый установщик, автообновления
GitHub Releases Тем, кто хочет конкретную версию Доступ к истории релизов и исходникам версий
Сборка из исходников Разработчикам и энтузиастам Полный контроль, требует навыков и времени
Пакетные менеджеры Linux Пользователям Linux Зависит от сопровождающих дистрибутива

Часто задаваемые вопросы

Является ли Telegram Desktop полностью открытым?

Да, исходный код десктопного клиента публикуется в репозитории telegramdesktop/tdesktop под лицензией GNU GPL v3. Любой может изучить код, собрать его и убедиться, что сборка соответствует опубликованным исходникам.

Можно ли скачать готовый установщик с GitHub?

Основной способ получить готовый клиент — официальный сайт Telegram или автообновление приложения. На GitHub в первую очередь публикуются исходные коды релизов, поэтому обычным пользователям проще использовать официальный сайт.

Почему сборка из исходников завершается ошибкой?

Наиболее частые причины: репозиторий склонирован без подмодулей (нужен ключ --recursive), версия компилятора или библиотек не соответствует требованиям из актуальной инструкции в папке docs, либо используется устаревшее стороннее руководство. Проверьте каждый из этих пунктов.

Куда сообщать о багах мобильного Telegram?

Репозиторий tdesktop предназначен только для десктопного клиента. У мобильных приложений Telegram для Android и iOS есть собственные репозитории на GitHub — отчёты по ним следует отправлять туда либо через встроенные средства обратной связи в приложении.

Можно ли использовать код tdesktop в своём проекте?

Да, лицензия GPL v3 это разрешает, но с условием: производный проект также должен распространяться с открытым исходным кодом под той же лицензией. Использовать код в закрытом коммерческом продукте без соблюдения условий GPL нельзя.