492 lines
13 KiB
YAML
492 lines
13 KiB
YAML
name: telegram-desktop
|
|
adopt-info: telegram
|
|
icon: Telegram/Resources/art/icon512@2x.png
|
|
|
|
base: core24
|
|
grade: stable
|
|
confinement: strict
|
|
compression: lzo
|
|
|
|
apps:
|
|
telegram-desktop:
|
|
command: usr/bin/telegram-desktop
|
|
command-chain:
|
|
- bin/desktop-launch
|
|
common-id: org.telegram.desktop
|
|
desktop: usr/share/applications/org.telegram.desktop.desktop
|
|
autostart: telegram-desktop_telegram-desktop.desktop
|
|
plugs:
|
|
- alsa
|
|
- audio-playback
|
|
- audio-record
|
|
- camera
|
|
- desktop
|
|
- desktop-legacy
|
|
- gsettings
|
|
- hardware-observe
|
|
- home
|
|
- network
|
|
- network-bind
|
|
- network-status
|
|
- opengl
|
|
- removable-media
|
|
- unity7
|
|
- wayland
|
|
- x11
|
|
slots:
|
|
- mpris
|
|
|
|
hooks:
|
|
configure:
|
|
command-chain:
|
|
- bin/hooks-configure-desktop
|
|
plugs:
|
|
- desktop
|
|
|
|
plugs:
|
|
desktop:
|
|
mount-host-font-cache: false
|
|
# Support for common GTK themes
|
|
# https://forum.snapcraft.io/t/how-to-use-the-system-gtk-theme-via-the-gtk-common-themes-snap/6235
|
|
gtk-3-themes:
|
|
interface: content
|
|
target: $SNAP/data-dir/themes
|
|
default-provider: gtk-common-themes
|
|
icon-themes:
|
|
interface: content
|
|
target: $SNAP/data-dir/icons
|
|
default-provider: gtk-common-themes
|
|
sound-themes:
|
|
interface: content
|
|
target: $SNAP/data-dir/sounds
|
|
default-provider: gtk-common-themes
|
|
|
|
layout:
|
|
/usr/share/alsa:
|
|
bind: $SNAP/usr/share/alsa
|
|
/usr/share/pipewire:
|
|
bind: $SNAP/usr/share/pipewire
|
|
/usr/share/X11:
|
|
bind: $SNAP/usr/share/X11
|
|
/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gtk-3.0:
|
|
bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gtk-3.0
|
|
/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gtk-4.0:
|
|
bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gtk-4.0
|
|
/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pipewire-0.3:
|
|
bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pipewire-0.3
|
|
/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/spa-0.2:
|
|
bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/spa-0.2
|
|
/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/webkitgtk-6.0:
|
|
bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/webkitgtk-6.0
|
|
|
|
parts:
|
|
telegram:
|
|
plugin: cmake
|
|
source: .
|
|
source-type: git
|
|
parse-info: [usr/share/metainfo/org.telegram.desktop.metainfo.xml]
|
|
build-environment:
|
|
- LD_LIBRARY_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
|
- LDFLAGS: ${LDFLAGS:+$LDFLAGS} -s
|
|
build-packages:
|
|
- clang
|
|
- libtool-bin
|
|
- python3
|
|
- protobuf-compiler
|
|
- libasound2-dev
|
|
- libavif-dev
|
|
- libboost-regex-dev
|
|
- libfmt-dev
|
|
- libgirepository1.0-dev
|
|
- libglib2.0-dev
|
|
- libheif-dev
|
|
- libopenal-dev
|
|
- libopus-dev
|
|
- libprotobuf-dev
|
|
- libpulse-dev
|
|
- libssl-dev
|
|
- libxcb1-dev
|
|
- libxcb-keysyms1-dev
|
|
- libxcb-record0-dev
|
|
- libxcb-screensaver0-dev
|
|
- zlib1g-dev
|
|
stage-packages:
|
|
- libasound2
|
|
- libavif16
|
|
- libboost-regex1.83.0
|
|
- libglib2.0-0t64
|
|
- libheif1
|
|
- libopenal1
|
|
- libopus0
|
|
- libprotobuf-lite32t64
|
|
- libpulse0
|
|
- libssl3t64
|
|
- libwebkitgtk-6.0-4
|
|
- libxcb1
|
|
- libxcb-keysyms1
|
|
- libxcb-record0
|
|
- libxcb-screensaver0
|
|
- zlib1g
|
|
- glib-networking
|
|
cmake-generator: Ninja
|
|
cmake-parameters:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
- -DCMAKE_INSTALL_PREFIX=/usr
|
|
- -DCMAKE_PREFIX_PATH=$CRAFT_STAGE/usr
|
|
- -DTDESKTOP_API_ID=611335
|
|
- -DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c
|
|
- -DDESKTOP_APP_USE_PACKAGED_LAZY=ON
|
|
override-pull: |
|
|
craftctl default
|
|
|
|
version_file=Telegram/build/version
|
|
version=$(sed -n "s/AppVersionStr[ ]\+\(.*\)\+/\1/p" $version_file)
|
|
beta=$(sed -n "s/BetaChannel[ ]\+\(.*\)\+/\1/p" $version_file)
|
|
|
|
if [ "$beta" != "0" ]; then
|
|
version="$version-beta"
|
|
fi
|
|
|
|
version="${version}$(git describe --tags | sed 's,^v[^-]\+,,')"
|
|
|
|
craftctl set version="$version"
|
|
|
|
sed -i 's|^Icon=telegram$|Icon=${SNAP}/meta/gui/icon.png|g' lib/xdg/org.telegram.desktop.desktop
|
|
override-build: |
|
|
craftctl default
|
|
rm -rf "$CRAFT_PART_INSTALL/usr/share/icons"
|
|
after:
|
|
- ffmpeg
|
|
- libjxl
|
|
- qt
|
|
- rnnoise
|
|
- webrtc
|
|
|
|
patches:
|
|
source: https://github.com/desktop-app/patches.git
|
|
source-depth: 1
|
|
source-commit: 803f1c2630f5eb0d3b00ba3f095b3079c0533156
|
|
plugin: dump
|
|
override-pull: |
|
|
craftctl default
|
|
cp -r . "$CRAFT_STAGE/patches"
|
|
override-prime: |
|
|
rm -rf patches
|
|
stage: [-./*]
|
|
|
|
desktop-qt:
|
|
source: https://github.com/desktop-app/snapcraft-desktop-helpers.git
|
|
source-depth: 1
|
|
source-subdir: qt
|
|
plugin: make
|
|
make-parameters: ["FLAVOR=qt5"]
|
|
build-environment:
|
|
- LD_LIBRARY_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
|
build-packages:
|
|
- build-essential
|
|
- dpkg-dev
|
|
- gtk-update-icon-cache
|
|
- libglib2.0-bin
|
|
- libgtk-3-0t64
|
|
stage-packages:
|
|
- libc-bin
|
|
- libgdk-pixbuf-2.0-0
|
|
- libnvidia-egl-wayland1
|
|
- libxkbcommon0
|
|
- locales-all
|
|
- shared-mime-info
|
|
- xdg-user-dirs
|
|
override-prime: |
|
|
craftctl default
|
|
update-mime-database usr/share/mime
|
|
glib-compile-schemas usr/share/glib-2.0/schemas
|
|
for theme in usr/share/icons/*; do
|
|
if [ -f "$theme/index.theme" ] && [ ! -f "$theme/icon-theme.cache" ]; then
|
|
update-icon-caches "$theme"
|
|
fi
|
|
done
|
|
GTK_PATH=$PWD/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gtk-3.0 /usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libgtk-3-0t64/gtk-query-immodules-3.0 > usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gtk-3.0/3.0.0/immodules/immodules.cache
|
|
after:
|
|
- telegram
|
|
|
|
ffmpeg:
|
|
plugin: nil
|
|
build-packages:
|
|
- libavcodec-dev
|
|
- libavfilter-dev
|
|
- libavformat-dev
|
|
- libavutil-dev
|
|
- libswresample-dev
|
|
- libswscale-dev
|
|
stage-packages:
|
|
- libavcodec60
|
|
- libavfilter9
|
|
- libavformat60
|
|
- libavutil58
|
|
- libswresample4
|
|
- libswscale7
|
|
- va-driver-all
|
|
- vdpau-driver-all
|
|
override-build: |
|
|
craftctl default
|
|
mv "$CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/blas/"* "$CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR"
|
|
rmdir "$CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/blas"
|
|
mv "$CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/lapack/"* "$CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR"
|
|
rmdir "$CRAFT_PART_INSTALL/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/lapack"
|
|
|
|
libjxl:
|
|
source: https://github.com/libjxl/libjxl.git
|
|
source-depth: 1
|
|
source-tag: v0.10.2
|
|
plugin: cmake
|
|
build-environment:
|
|
- LDFLAGS: ${LDFLAGS:+$LDFLAGS} -s
|
|
cmake-generator: Ninja
|
|
cmake-parameters:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
- -DCMAKE_INSTALL_PREFIX=/usr
|
|
- -DBUILD_TESTING=OFF
|
|
- -DJPEGXL_ENABLE_DEVTOOLS=OFF
|
|
- -DJPEGXL_ENABLE_TOOLS=OFF
|
|
- -DJPEGXL_INSTALL_JPEGLI_LIBJPEG=ON
|
|
- -DJPEGXL_ENABLE_DOXYGEN=OFF
|
|
- -DJPEGXL_ENABLE_MANPAGES=OFF
|
|
- -DJPEGXL_ENABLE_BENCHMARK=OFF
|
|
- -DJPEGXL_ENABLE_EXAMPLES=OFF
|
|
- -DJPEGXL_ENABLE_JNI=OFF
|
|
- -DJPEGXL_ENABLE_SJPEG=OFF
|
|
- -DJPEGXL_ENABLE_OPENEXR=OFF
|
|
- -DJPEGXL_ENABLE_SKCMS=OFF
|
|
override-pull: |
|
|
craftctl default
|
|
git apply $CRAFT_STAGE/patches/libjxl.patch
|
|
stage:
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libbrotli*
|
|
prime:
|
|
- -./usr/bin
|
|
- -./usr/include
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pkgconfig
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.a
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.so
|
|
- -./usr/share
|
|
after:
|
|
- patches
|
|
|
|
qt:
|
|
plugin: nil
|
|
build-environment:
|
|
- LDFLAGS: ${LDFLAGS:+$LDFLAGS} -s
|
|
build-packages:
|
|
- libdbus-1-dev
|
|
- libegl-dev
|
|
- libfontconfig1-dev
|
|
- libfreetype-dev
|
|
- libglib2.0-dev
|
|
- libglx-dev
|
|
- libgtk-3-dev
|
|
- libharfbuzz-dev
|
|
- libice-dev
|
|
- libicu-dev
|
|
- liblcms2-dev
|
|
- libopengl-dev
|
|
- libpcre2-dev
|
|
- libpng-dev
|
|
- libsm-dev
|
|
- libssl-dev
|
|
- libvulkan-dev
|
|
- libwayland-dev
|
|
- libx11-dev
|
|
- libx11-xcb-dev
|
|
- libxcb1-dev
|
|
- libxcb-cursor-dev
|
|
- libxcb-glx0-dev
|
|
- libxcb-icccm4-dev
|
|
- libxcb-image0-dev
|
|
- libxcb-keysyms1-dev
|
|
- libxcb-randr0-dev
|
|
- libxcb-render0-dev
|
|
- libxcb-render-util0-dev
|
|
- libxcb-shape0-dev
|
|
- libxcb-shm0-dev
|
|
- libxcb-sync-dev
|
|
- libxcb-util-dev
|
|
- libxcb-xfixes0-dev
|
|
- libxcb-xkb-dev
|
|
- libxkbcommon-dev
|
|
- libxkbcommon-x11-dev
|
|
- zlib1g-dev
|
|
stage-packages:
|
|
- libdbus-1-3
|
|
- libegl1
|
|
- libfontconfig1
|
|
- libfreetype6
|
|
- libglib2.0-0t64
|
|
- libglx0
|
|
- libgtk-3-0t64
|
|
- libharfbuzz0b
|
|
- libice6
|
|
- libicu74
|
|
- liblcms2-2
|
|
- libopengl0
|
|
- libpcre2-16-0
|
|
- libpng16-16t64
|
|
- libsm6
|
|
- libssl3t64
|
|
- libvulkan1
|
|
- libwayland-client0
|
|
- libwayland-cursor0
|
|
- libwayland-egl1
|
|
- libwayland-server0
|
|
- libx11-6
|
|
- libx11-xcb1
|
|
- libxcb1
|
|
- libxcb-cursor0
|
|
- libxcb-glx0
|
|
- libxcb-icccm4
|
|
- libxcb-image0
|
|
- libxcb-keysyms1
|
|
- libxcb-randr0
|
|
- libxcb-render0
|
|
- libxcb-render-util0
|
|
- libxcb-shape0
|
|
- libxcb-shm0
|
|
- libxcb-sync1
|
|
- libxcb-util1
|
|
- libxcb-xfixes0
|
|
- libxcb-xkb1
|
|
- libxkbcommon0
|
|
- libxkbcommon-x11-0
|
|
- zlib1g
|
|
- mesa-vulkan-drivers
|
|
- xkb-data
|
|
override-pull: |
|
|
QT=6.7.1
|
|
|
|
git clone -b v${QT} --depth=1 https://github.com/qt/qt5.git .
|
|
git submodule update --init --recursive --depth=1 qtbase qtdeclarative qtwayland qtimageformats qtsvg qtshadertools
|
|
|
|
cd qtbase
|
|
find $CRAFT_STAGE/patches/qtbase_${QT} -type f -print0 | sort -z | xargs -r0 git apply
|
|
cd ../qtwayland
|
|
find $CRAFT_STAGE/patches/qtwayland_${QT} -type f -print0 | sort -z | xargs -r0 git apply
|
|
sed -i 's/qMin(version, 8)/qMin(version, 7)/' src/client/qwaylandinputdevice.cpp
|
|
cd ..
|
|
override-build: |
|
|
./configure \
|
|
-prefix /usr \
|
|
-libdir /usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR \
|
|
-release \
|
|
-opensource \
|
|
-confirm-license \
|
|
-openssl-linked \
|
|
-nomake examples \
|
|
-nomake tests \
|
|
-- \
|
|
-DCMAKE_PREFIX_PATH=$CRAFT_STAGE/usr
|
|
|
|
cmake --build . -j$CRAFT_PARALLEL_BUILD_COUNT
|
|
DESTDIR="$CRAFT_PART_INSTALL" cmake --install .
|
|
prime:
|
|
- -./usr/bin
|
|
- -./usr/doc
|
|
- -./usr/include
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/cmake
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/metatypes
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pkgconfig
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.a
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.la
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.prl
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.so
|
|
- -./usr/libexec
|
|
- -./usr/mkspecs
|
|
- -./usr/modules
|
|
after:
|
|
- libjxl
|
|
- patches
|
|
|
|
rnnoise:
|
|
source: https://gitlab.xiph.org/xiph/rnnoise.git
|
|
source-depth: 1
|
|
source-commit: 7f449bf8bd3b933891d12c30112268c4090e4d59
|
|
plugin: autotools
|
|
build-environment:
|
|
- CFLAGS: -O2 -s
|
|
autotools-configure-parameters:
|
|
- --prefix=/usr
|
|
- --libdir=\${exec_prefix}/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR
|
|
- --disable-static
|
|
- --disable-examples
|
|
- --disable-doc
|
|
prime:
|
|
- -./usr/include
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/pkgconfig
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.la
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.so
|
|
- -./usr/share
|
|
|
|
systemd:
|
|
plugin: nil
|
|
stage-packages:
|
|
- systemd
|
|
stage:
|
|
- ./usr/bin/systemd-detect-virt
|
|
|
|
webrtc:
|
|
source: https://github.com/desktop-app/tg_owt.git
|
|
source-depth: 1
|
|
source-commit: 3bb3d757681e6cc5135aec6529a753dc3dcdcfb9
|
|
plugin: cmake
|
|
build-environment:
|
|
- LDFLAGS: ${LDFLAGS:+$LDFLAGS} -s
|
|
build-packages:
|
|
- yasm
|
|
- libdrm-dev
|
|
- libegl-dev
|
|
- libgbm-dev
|
|
- libgl-dev
|
|
- libglib2.0-dev
|
|
- libopenh264-dev
|
|
- libopus-dev
|
|
- libpipewire-0.3-dev
|
|
- libssl-dev
|
|
- libvpx-dev
|
|
- libx11-dev
|
|
- libxcomposite-dev
|
|
- libxdamage-dev
|
|
- libxext-dev
|
|
- libxfixes-dev
|
|
- libxrender-dev
|
|
- libxrandr-dev
|
|
- libxtst-dev
|
|
stage-packages:
|
|
- libdrm2
|
|
- libegl1
|
|
- libgbm1
|
|
- libgl1
|
|
- libglib2.0-0t64
|
|
- libopenh264-7
|
|
- libopus0
|
|
- libssl3t64
|
|
- libvpx9
|
|
- libx11-6
|
|
- libxcomposite1
|
|
- libxdamage1
|
|
- libxext6
|
|
- libxfixes3
|
|
- libxrender1
|
|
- libxrandr2
|
|
- libxtst6
|
|
- pipewire
|
|
cmake-generator: Ninja
|
|
cmake-parameters:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
- -DCMAKE_INSTALL_PREFIX=/usr
|
|
- -DCMAKE_PREFIX_PATH=$CRAFT_STAGE/usr
|
|
prime:
|
|
- -./usr/include
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/cmake
|
|
- -./usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/*.a
|
|
after:
|
|
- ffmpeg
|
|
- libjxl
|