Официальный исходный код 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
Что потребуется для сборки из исходников
Сборка Telegram Desktop — ресурсоёмкий процесс. Проект написан на C++ с использованием фреймворка Qt, и для компиляции нужен полный набор инструментов разработчика. Точный перечень зависимостей зависит от операционной системы и меняется от версии к версии, поэтому актуальную инструкцию всегда стоит брать в документации самого репозитория — там есть каталог docs с описанием сборки под разные платформы.
- 🛠️ Компилятор и среда сборки: в Windows — Visual Studio с инструментами C++, в Linux — GCC или Clang, в macOS — Xcode.
- 📦 Система сборки: проект использует CMake для генерации файлов сборки.
- 📚 Библиотеки: Qt и ряд сторонних зависимостей, часть из которых подтягивается как подмодули.
- 🐍 Дополнительные инструменты: в зависимости от платформы могут понадобиться Python, Perl и другие утилиты для генерации кода.
- 💾 Ресурсы: компиляция потребляет много оперативной памяти и может занять продолжительное время даже на производительной машине.
Сборка под Windows, Linux и macOS: в чём различия
Единой универсальной команды сборки не существует: для каждой платформы в репозитории предусмотрен свой сценарий. В репозитории есть инструкции для Windows, Linux и macOS, и они различаются как по набору инструментов, так и по шагам подготовки окружения.
На Windows сборка традиционно самая требовательная к настройке: нужна определённая версия Visual Studio и набор библиотек, которые подготавливаются специальными скриптами из репозитория. На Linux процесс ближе к классической сборке CMake-проекта, но зависит от дистрибутива. На macOS потребуется Xcode и инструменты командной строки.
| Платформа | Основной инструментарий | Особенности |
|---|---|---|
| Windows | Visual Studio, CMake | Требуется подготовка библиотек скриптами из репозитория |
| Linux | GCC/Clang, CMake | Набор пакетов зависит от дистрибутива |
| macOS | Xcode, 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, а к коду предъявляются требования по стилю и качеству.
Сколько места на диске нужно для исходников и сборки?
Точный объём зависит от версии проекта и платформы: сам репозиторий с подмодулями занимает заметное место, а промежуточные файлы компиляции увеличивают потребность в разы. Заранее оставьте запас свободного пространства и ориентируйтесь на актуальные требования в документации репозитория.