feat: add Telegram Desktop package

Repackages the official static tsetup.7.0.5.tar.xz Linux build for
amd64, keeping the upstream org.telegram.desktop desktop-id and
TelegramDesktop WM class.
This commit is contained in:
Александр
2026-07-25 02:28:05 +10:00
parent c34650a941
commit 07d13aca64
12 changed files with 200 additions and 1 deletions
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
set -euo pipefail
package_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
repo_root="$(cd "${package_dir}/.." && pwd)"
exec "${repo_root}/tools/package_updates.sh" check "$(basename "$package_dir")"
+24
View File
@@ -0,0 +1,24 @@
Сведения о лицензии пакета Telegram Desktop
Лицензия: GPL-3.0-only (с отдельным разрешением на линковку с OpenSSL).
Исходный проект: https://github.com/telegramdesktop/tdesktop
Официальный сайт: https://desktop.telegram.org/
Условия использования сервиса: https://telegram.org/tos
Нюансы пакета:
- Пакет перепаковывает официальный статически собранный Linux-архив
Telegram Desktop (`tsetup.<version>.tar.xz`), публикуемый Telegram напрямую
и через официальные релизы `telegramdesktop/tdesktop` на GitHub.
- Собственный код Telegram Desktop распространяется на условиях GNU GPL
версии 3 с отдельным разрешением на линковку с OpenSSL; часть bundled-
зависимостей (Qt, ffmpeg и другие) распространяется на собственных
условиях соответствующих проектов.
- Учетные записи, серверы, боты, Premium-подписка и прочие сетевые функции
Telegram в пакет не входят и регулируются условиями Telegram.
- Локальные данные, кэш и сессии создаются приложением в домашнем каталоге
пользователя после запуска и не поставляются внутри пакета.
- Пакет добавляет команду `telegram-desktop` и использует официальные
desktop-id `org.telegram.desktop`.
Полный официальный текст GPL-3.0:
https://www.gnu.org/licenses/gpl-3.0.txt
+84
View File
@@ -0,0 +1,84 @@
name='telegram-desktop'
version='7.0.5'
release=1
summary='Official Telegram messaging client'
summary_ru='Официальный клиент мессенджера Telegram'
group='Networking/Instant messaging'
desc='Telegram Desktop is the official Telegram messaging client with cloud-synced chats, voice and video calls, and no limits on file size or media history.'
desc_ru='Telegram Desktop — официальный клиент мессенджера Telegram с облачной синхронизацией чатов, голосовыми и видеозвонками и без ограничений на размер файлов и историю медиа.'
homepage='https://desktop.telegram.org/'
maintainer='Telegram Messenger LLP <https://github.com/telegramdesktop/tdesktop>'
architectures=('amd64')
license=('GPL-3.0-only')
provides=()
replaces=('telegram-desktop')
conflicts=()
auto_reqprov_method="dirty"
auto_req=0
auto_prov=0
deps=()
deps_debian=('libc6' 'libglib2.0-0t64 | libglib2.0-0' 'libfontconfig1' 'libfreetype6' 'libharfbuzz0b' 'libpng16-16' 'libpcre2-8-0' 'libbrotli1' 'libbz2-1.0' 'libblkid1' 'libmount1' 'libselinux1' 'libffi8' 'libexpat1' 'libgraphite2-3' 'zlib1g' 'libx11-6' 'hicolor-icon-theme')
deps_ubuntu=("${deps_debian[@]}")
deps_fedora=('glibc' 'glib2' 'fontconfig' 'freetype' 'harfbuzz' 'libpng' 'pcre2' 'brotli' 'bzip2-libs' 'libblkid' 'libmount' 'libselinux' 'libffi' 'expat' 'graphite2' 'zlib' 'libX11' 'hicolor-icon-theme')
deps_arch=('glibc' 'glib2' 'fontconfig' 'freetype2' 'harfbuzz' 'libpng' 'pcre2' 'brotli' 'bzip2' 'util-linux-libs' 'libselinux' 'libffi' 'expat' 'graphite' 'zlib' 'libx11' 'hicolor-icon-theme')
deps_opensuse=('glibc' 'libglib-2_0-0' 'libfontconfig1' 'libfreetype6' 'libharfbuzz0' 'libpng16-16' 'libpcre2-8-0' 'libbrotli1' 'libbz2-1' 'libblkid1' 'libmount1' 'libselinux1' 'libffi8' 'libexpat1' 'libgraphite2-3' 'libz1' 'libX11-6' 'hicolor-icon-theme')
deps_altlinux=('glibc' 'libglib2' 'libfontconfig' 'libfreetype' 'libharfbuzz' 'libpng16' 'libpcre2' 'libbrotli' 'libbz2' 'libblkid' 'libmount' 'libselinux' 'libffi' 'libexpat' 'libgraphite2' 'zlib' 'libX11' 'hicolor-icon-theme')
opt_deps=()
opt_deps_debian=('xdg-utils' 'libayatana-appindicator3-1 | libappindicator3-1' 'ca-certificates' 'libasound2t64 | libasound2 | pulseaudio' 'libgl1' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk | xdg-desktop-portal-gnome | xdg-desktop-portal-kde' 'pipewire')
opt_deps_ubuntu=("${opt_deps_debian[@]}")
opt_deps_fedora=('xdg-utils' 'libappindicator-gtk3' 'ca-certificates' 'alsa-lib' 'pulseaudio-libs' 'mesa-libGL' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk' 'pipewire')
opt_deps_arch=('xdg-utils' 'libappindicator-gtk3' 'ca-certificates' 'alsa-lib' 'pulseaudio' 'libglvnd' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk' 'pipewire')
opt_deps_opensuse=('xdg-utils' 'libappindicator3-1' 'ca-certificates' 'libasound2' 'libpulse0' 'Mesa-libGL1' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk' 'pipewire')
opt_deps_altlinux=('xdg-utils' 'libappindicator-gtk3' 'ca-certificates' 'libalsa' 'libGL' 'xdg-desktop-portal' 'xdg-desktop-portal-gtk' 'pipewire')
sources=(
"https://td.telegram.org/tlinux/tsetup.${version}.tar.xz?~archive=false&~name=tsetup.tar.xz"
'local:///org.telegram.desktop.desktop'
'local:///telegram-desktop.png'
'local:///LICENSE'
)
checksums=(
'sha256:37e23ce08333340504623042120b826f7a2a5650c831187219ab9c520740eb42'
'sha256:8ceb3f6aea1003f84f1b5757cd857f8237b294bb18456e5e0e54d96e6fff04ba'
'sha256:3fb1400c7dc9bbc3b5cb3ffedcbf4a9b09c53e28b57a7ff33a8a6b9048864090'
'sha256:f3ad1b5ecdc1c9e5ab3719a0b084a3e0b4fc87ad424fbf81043df9637be3d1f5'
)
scripts=(
['postinstall']='postinstall.sh'
['postremove']='postremove.sh'
)
package() {
cd "${srcdir}"
tar -xJf tsetup.tar.xz
install -dm755 "${pkgdir}/opt/telegram-desktop"
install -Dm755 "Telegram/Telegram" "${pkgdir}/opt/telegram-desktop/Telegram"
install -dm755 "${pkgdir}/usr/bin"
ln -sfn /opt/telegram-desktop/Telegram "${pkgdir}/usr/bin/telegram-desktop"
install-desktop org.telegram.desktop.desktop
install -Dm644 telegram-desktop.png \
"${pkgdir}/usr/share/icons/hicolor/256x256/apps/org.telegram.desktop.png"
install-license LICENSE "telegram-desktop/LICENSE.nivora"
}
files() {
files-find-binary
files-find-desktop
files-find-license
files-find \
"/opt/telegram-desktop/**/*" \
"/usr/share/icons/hicolor/256x256/apps/org.telegram.desktop.png"
}
@@ -0,0 +1,22 @@
[Desktop Entry]
Name=Telegram
Comment=New era of messaging
TryExec=telegram-desktop
Exec=telegram-desktop -- %U
Icon=org.telegram.desktop
Terminal=false
StartupWMClass=TelegramDesktop
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;x-scheme-handler/tonsite;
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
Actions=quit;
DBusActivatable=false
SingleMainWindow=true
X-GNOME-UsesNotifications=true
X-GNOME-SingleWindow=true
[Desktop Action quit]
Exec=telegram-desktop -quit
Name=Quit Telegram
Icon=application-exit
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
set -euo pipefail
optional_refresh() {
local label=$1
shift
if ! "$@"; then
echo "Предупреждение: не удалось обновить ${label}." >&2
fi
}
if command -v update-desktop-database >/dev/null 2>&1; then
optional_refresh "desktop-базу" update-desktop-database -q /usr/share/applications
fi
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
optional_refresh "кэш иконок" \
gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
fi
if command -v kbuildsycoca6 >/dev/null 2>&1; then
optional_refresh "кэш KDE" kbuildsycoca6 --noincremental
elif command -v kbuildsycoca5 >/dev/null 2>&1; then
optional_refresh "кэш KDE" kbuildsycoca5 --noincremental
fi
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
set -euo pipefail
optional_refresh() {
local label=$1
shift
if ! "$@"; then
echo "Предупреждение: не удалось обновить ${label}." >&2
fi
}
if command -v update-desktop-database >/dev/null 2>&1; then
optional_refresh "desktop-базу" update-desktop-database -q /usr/share/applications
fi
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
optional_refresh "кэш иконок" \
gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
fi
if command -v kbuildsycoca6 >/dev/null 2>&1; then
optional_refresh "кэш KDE" kbuildsycoca6 --noincremental
elif command -v kbuildsycoca5 >/dev/null 2>&1; then
optional_refresh "кэш KDE" kbuildsycoca5 --noincremental
fi
+1
View File
@@ -0,0 +1 @@
include = "../stapler-repo.toml"
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB