Telegram Desktop и Git: репозиторий, клонирование и сборка из исходников

Официальный исходный код Telegram Desktop опубликован на GitHub в репозитории telegramdesktop/tdesktop — именно оттуда разработчики и энтузиасты клонируют проект через Git, чтобы собрать клиент самостоятельно или изучить его устройство. Прямая ссылка на репозиторий указана и на официальном сайте Telegram в разделе исходного кода, поэтому перед клонированием стоит убедиться, что вы работаете именно с этим репозиторием, а не с неофициальным форком.

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

Где находится официальный репозиторий Telegram Desktop

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

Проверить подлинность репозитория можно несколькими способами. На официальном сайте Telegram есть раздел с исходным кодом, который ссылается именно на tdesktop. Кроме того, у официального репозитория большое количество звёзд, форков и активная история коммитов от подтверждённых разработчиков.

⚠️ Внимание: в сети встречаются поддельные репозитории и «модифицированные» сборки Telegram, маскирующиеся под официальные. Скачивание кода из непроверенных источников может привести к установке вредоносного ПО. Всегда сверяйте адрес репозитория с официальным сайтом Telegram.

Как клонировать репозиторий через Git

Для клонирования потребуется установленный Git. В Windows его можно поставить с официального сайта проекта Git, в Linux он обычно доступен через пакетный менеджер, в macOS — через Xcode Command Line Tools или Homebrew. После установки откройте терминал и выполните команду клонирования.

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

Важный нюанс: проект использует подмодули Git — внешние библиотеки, подключаемые как части репозитория. Без них сборка не пройдёт, поэтому после клонирования необходимо инициализировать подмодули:

cd tdesktop

git submodule update --init --recursive

Либо можно сразу клонировать репозиторий вместе с подмодулями одной командой:

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

☑️ Подготовка к работе с репозиторием tdesktop

Выполнено: 0 / 5

Что потребуется для сборки из исходников

Сборка Telegram Desktop — ресурсоёмкий процесс. Проект написан на C++ с использованием фреймворка Qt, и для компиляции нужен полный набор инструментов разработчика. Точный перечень зависимостей зависит от операционной системы и меняется от версии к версии, поэтому актуальную инструкцию всегда стоит брать в документации самого репозитория — там есть каталог docs с описанием сборки под разные платформы.

  • 🛠️ Компилятор и среда сборки: в Windows — Visual Studio с инструментами C++, в Linux — GCC или Clang, в macOS — Xcode.
  • 📦 Система сборки: проект использует CMake для генерации файлов сборки.
  • 📚 Библиотеки: Qt и ряд сторонних зависимостей, часть из которых подтягивается как подмодули.
  • 🐍 Дополнительные инструменты: в зависимости от платформы могут понадобиться Python, Perl и другие утилиты для генерации кода.
  • 💾 Ресурсы: компиляция потребляет много оперативной памяти и может занять продолжительное время даже на производительной машине.
📊 Зачем вам исходный код Telegram Desktop?
Собрать клиент самостоятельно
Изучить код в учебных целях
Внести свой вклад (pull request)
Проверить безопасность приложения

Сборка под Windows, Linux и macOS: в чём различия

Единой универсальной команды сборки не существует: для каждой платформы в репозитории предусмотрен свой сценарий. В репозитории есть инструкции для Windows, Linux и macOS, и они различаются как по набору инструментов, так и по шагам подготовки окружения.

На Windows сборка традиционно самая требовательная к настройке: нужна определённая версия Visual Studio и набор библиотек, которые подготавливаются специальными скриптами из репозитория. На Linux процесс ближе к классической сборке CMake-проекта, но зависит от дистрибутива. На macOS потребуется Xcode и инструменты командной строки.

ПлатформаОсновной инструментарийОсобенности
WindowsVisual Studio, CMakeТребуется подготовка библиотек скриптами из репозитория
LinuxGCC/Clang, CMakeНабор пакетов зависит от дистрибутива
macOSXcode, CMakeНужны командные инструменты Xcode

⚠️ Внимание: версии компиляторов и библиотек, указанные в старых руководствах по сборке, могут не подходить для актуального кода. Перед началом всегда открывайте свежую инструкцию из каталога docs репозитория — она обновляется вместе с проектом.

Почему сборка может не начаться даже после установки всех зависимостей

Частая причина — неинициализированные или устаревшие подмодули. Если вы обновили репозиторий командой git pull, подмодули нужно синхронизировать повторно: git submodule update --init --recursive. Вторая типичная причина — несовпадение версий библиотек с теми, что ожидает текущая версия кода.

Обновление исходников и работа с ветками

Если репозиторий уже склонирован, получить свежие изменения можно стандартными командами Git. Основная ветка разработки — dev, именно в ней появляются новые коммиты. Релизные версии помечаются тегами, что удобно, если нужно собрать конкретную стабильную версию клиента.

git pull origin dev

git submodule update --init --recursive

Чтобы переключиться на конкретный релиз, используйте теги. Сначала получите список тегов командой git fetch --tags, затем переключитесь на нужный через git checkout с именем тега. Учтите, что после смены версии подмодули также необходимо синхронизировать.

Зачем собирать Telegram Desktop самостоятельно

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

  • 🔍 Аудит безопасности: исследователи проверяют, что опубликованный клиент действительно собран из открытого кода.
  • 🎓 Обучение: код крупного production-проекта на C++ и Qt — ценный материал для изучения архитектуры приложений.
  • 🔧 Собственные модификации: разработчики могут изменять интерфейс или поведение клиента для личных нужд.
  • 🤝 Вклад в проект: исправления ошибок и улучшения можно предлагать через pull request в официальный репозиторий.

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

Типичные проблемы при клонировании и сборке

Чаще всего трудности возникают не с кодом, а с окружением. Разберём типовые ситуации и порядок диагностики.

Ошибка при клонировании или пустые папки подмодулей. Проверьте, что использовали флаг --recursive, либо выполните git submodule update --init --recursive внутри каталога проекта. Если скачивание обрывается, повторите команду — Git продолжит с места разрыва.

Ошибки компиляции. В первую очередь сверьте версии компилятора и библиотек с требованиями из документации репозитория. Если версии совпадают, а ошибка остаётся, поищите её текст в разделе Issues на GitHub — вероятно, с ней уже кто-то сталкивался.

Нехватка памяти при сборке. Компиляция большого C++-проекта требовательна к оперативной памяти. Если сборка прерывается, попробуйте уменьшить число параллельных задач компиляции — это замедлит процесс, но снизит пиковое потребление памяти.

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

Можно ли скачать исходники Telegram Desktop без Git?

Да, GitHub позволяет скачать репозиторий архивом через кнопку Code → Download ZIP. Однако такой архив не включает подмодули, поэтому для полноценной сборки клонирование через Git предпочтительнее.

Отличается ли самосборный клиент от официального?

Функционально — нет, если код не изменялся. Отличия кроются в другом: у самостоятельной сборки нет цифровой подписи разработчиков и автоматического обновления, а ответственность за корректность сборки лежит на вас.

Безопасно ли клонировать репозиторий и собирать код?

Клонирование официального репозитория telegramdesktop/tdesktop безопасно. Риски появляются при использовании сторонних форков и готовых «модифицированных» сборок из непроверенных источников — их происхождение невозможно гарантировать.

Можно ли предложить своё исправление в Telegram Desktop?

Да. Сделайте форк репозитория, внесите изменения в отдельной ветке и отправьте pull request. Учтите, что принятие изменений остаётся на усмотрение команды Telegram, а к коду предъявляются требования по стилю и качеству.

Сколько места на диске нужно для исходников и сборки?

Точный объём зависит от версии проекта и платформы: сам репозиторий с подмодулями занимает заметное место, а промежуточные файлы компиляции увеличивают потребность в разы. Заранее оставьте запас свободного пространства и ориентируйтесь на актуальные требования в документации репозитория.