Created
June 9, 2020 22:16
-
-
Save Snawoot/d8c6e2862e0270166ecca7dc23ed9af1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: telegram-desktop | |
adopt-info: telegram | |
icon: Telegram/Resources/art/[email protected] | |
base: core18 | |
grade: stable | |
confinement: strict | |
architectures: | |
- build-on: amd64 | |
- build-on: i386 | |
- build-on: arm64 | |
- build-on: armhf | |
- build-on: ppc64el | |
apps: | |
telegram-desktop: | |
command: telegram-launch | |
common-id: org.telegram.desktop | |
desktop: share/applications/telegramdesktop.desktop | |
environment: | |
# Use GTK3 cursor theme, icon theme and open/save file dialogs. | |
QT_QPA_PLATFORMTHEME: gtk3 | |
extensions: | |
- kde-neon | |
plugs: | |
- alsa | |
- audio-playback | |
- audio-record | |
- desktop | |
- desktop-legacy | |
- home | |
- network | |
- network-manager | |
- opengl | |
- pulseaudio | |
- removable-media | |
- unity7 | |
- wayland | |
- x11 | |
plugs: | |
# Support for common GTK themes | |
# https://forum.snapcraft.io/t/how-to-use-the-system-gtk-theme-via-the-gtk-common-themes-snap/6235 | |
gsettings: | |
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/X11: | |
bind: $SNAP/usr/share/X11 | |
parts: | |
telegram: | |
plugin: cmake | |
source: . | |
source-type: git | |
parse-info: [share/metainfo/telegramdesktop.appdata.xml] | |
build-environment: | |
- CFLAGS: "$CFLAGS -I$SNAPCRAFT_STAGE/usr/include/$SNAPCRAFT_ARCH_TRIPLET/qt5/QtWaylandClient/5.12.3" | |
- CXXFLAGS: "$CXXFLAGS -I$SNAPCRAFT_STAGE/usr/include/$SNAPCRAFT_ARCH_TRIPLET/qt5/QtWaylandClient/5.12.3" | |
build-snaps: | |
- kde-frameworks-5-core18-sdk | |
- kde-frameworks-5-core18 | |
build-packages: | |
- gcc-8 | |
- g++-8 | |
- libasound2-dev | |
- libglib2.0-dev | |
- libglvnd-dev | |
- libgtk-3-dev | |
- liblzma-dev | |
- libopus-dev | |
- libpulse-dev | |
- libssl-dev | |
- zlib1g-dev | |
stage-packages: | |
- libgtk-3-0 | |
- liblzma5 | |
configflags: | |
- -DCMAKE_C_COMPILER=gcc-8 | |
- -DCMAKE_CXX_COMPILER=g++-8 | |
- -DCMAKE_AUTOMOC_MOC_OPTIONS=-I$SNAPCRAFT_STAGE/usr/include/$SNAPCRAFT_ARCH_TRIPLET/qt5/QtWaylandClient/5.12.3 | |
- -DCMAKE_BUILD_TYPE=Release | |
- -DTDESKTOP_API_ID=611335 | |
- -DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c | |
- -DDESKTOP_APP_USE_PACKAGED_LAZY=ON | |
- -DDESKTOP_APP_USE_PACKAGED_FONTS=OFF | |
- -DTDESKTOP_USE_FONTCONFIG_FALLBACK=ON | |
- -DTDESKTOP_USE_GTK_FILE_DIALOG=ON | |
override-pull: | | |
snapcraftctl pull | |
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[^-]\+,,')" | |
snapcraftctl set-version "$version" | |
sed -i 's|^Icon=.*|Icon=/share/icons/hicolor/512x512/apps/telegram.png|g' lib/xdg/telegramdesktop.desktop | |
after: | |
- cmake | |
- ffmpeg | |
- openal | |
- qtwayland | |
telegram-launcher: | |
plugin: dump | |
source: snap/scripts | |
organize: | |
telegram-launch: bin/telegram-launch | |
patches: | |
plugin: dump | |
source: Telegram/Patches | |
prime: [-./*] | |
qtconf: | |
plugin: nil | |
override-build: | | |
KF5_DIR=/snap/kde-frameworks-5-core18-sdk/current | |
install -d "$SNAPCRAFT_PART_INSTALL/usr/include/$SNAPCRAFT_ARCH_TRIPLET" | |
cp -a $KF5_DIR/usr/include/$SNAPCRAFT_ARCH_TRIPLET/qt5 "$SNAPCRAFT_PART_INSTALL/usr/include/$SNAPCRAFT_ARCH_TRIPLET" | |
install -d "$SNAPCRAFT_PART_INSTALL/usr/lib/$SNAPCRAFT_ARCH_TRIPLET" | |
cp -a $KF5_DIR/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5 "$SNAPCRAFT_PART_INSTALL/usr/lib/$SNAPCRAFT_ARCH_TRIPLET" | |
cat << EOF > "$SNAPCRAFT_PART_INSTALL/qt.conf" | |
[Paths] | |
Prefix=$KF5_DIR/usr | |
ArchData=lib/$SNAPCRAFT_ARCH_TRIPLET/qt5 | |
Binaries=lib/qt5/bin | |
Data=share/qt5 | |
Documentation=share/qt5/doc | |
Examples=lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/examples | |
Headers=$SNAPCRAFT_STAGE/usr/include/$SNAPCRAFT_ARCH_TRIPLET/qt5 | |
HostBinaries=lib/qt5/bin | |
HostData=$SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5 | |
HostLibraries=lib/$SNAPCRAFT_ARCH_TRIPLET | |
Imports=lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/imports | |
Libraries=lib/$SNAPCRAFT_ARCH_TRIPLET | |
LibraryExecutables=lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/libexec | |
Plugins=lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/plugins | |
Qml2Imports=lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/qml | |
Settings=/etc/xdg | |
Translations=share/qt5/translations | |
EOF | |
stage: | |
- -usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqwayland* | |
- -usr/lib/x86_64-linux-gnu/qt5/plugins/wayland* | |
- -usr/lib/x86_64-linux-gnu/qt5/qml/QtWayland | |
prime: [-./*] | |
cmake: | |
source: "https://gitlab.kitware.com/cmake/cmake.git" | |
source-depth: 1 | |
source-tag: v3.16.4 | |
source-type: git | |
plugin: make | |
override-build: | | |
${SNAPCRAFT_PART_SRC}/bootstrap \ | |
--parallel=${SNAPCRAFT_PARALLEL_BUILD_COUNT} \ | |
-- \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_INSTALL_PREFIX=/ \ | |
-DBUILD_TESTING=OFF | |
snapcraftctl build | |
build-packages: | |
- build-essential | |
- libssl-dev | |
- libncurses5-dev | |
stage-packages: | |
- libssl1.1 | |
- libncurses5 | |
- libtinfo5 | |
prime: [-./*] | |
nasm: | |
source: https://repo.or.cz/nasm.git | |
source-depth: 1 | |
source-tag: nasm-2.14.02 | |
plugin: autotools | |
override-build: | | |
./autogen.sh | |
./configure --prefix= | |
make -j$(nproc) | |
install -d "$SNAPCRAFT_PART_INSTALL/bin" | |
install nasm "$SNAPCRAFT_PART_INSTALL/bin/nasm" | |
install ndisasm "$SNAPCRAFT_PART_INSTALL/bin/ndisasm" | |
prime: [-./*] | |
dav1d: | |
source: https://github.com/videolan/dav1d.git | |
source-depth: 1 | |
source-tag: 0.6.0 | |
plugin: meson | |
meson-parameters: | |
- --prefix=/usr | |
- -Denable_tools=false | |
- -Denable_tests=false | |
prime: | |
- -./usr/include | |
- -./usr/lib/*/pkgconfig | |
after: | |
- nasm | |
ffmpeg: | |
source: https://github.com/FFmpeg/FFmpeg.git | |
source-depth: 1 | |
source-branch: release/4.2 | |
plugin: autotools | |
build-packages: | |
- libopus-dev | |
- libva-dev | |
- libvdpau-dev | |
configflags: | |
- --prefix=/usr | |
- --disable-static | |
- --disable-debug | |
- --disable-programs | |
- --disable-doc | |
- --disable-network | |
- --disable-autodetect | |
- --disable-everything | |
- --disable-neon | |
- --disable-alsa | |
- --disable-iconv | |
- --enable-shared | |
- --enable-libdav1d | |
- --enable-libopus | |
- --enable-vaapi | |
- --enable-vdpau | |
- --enable-protocol=file | |
- --enable-hwaccel=h264_vaapi | |
- --enable-hwaccel=h264_vdpau | |
- --enable-hwaccel=mpeg4_vaapi | |
- --enable-hwaccel=mpeg4_vdpau | |
- --enable-decoder=aac | |
- --enable-decoder=aac_fixed | |
- --enable-decoder=aac_latm | |
- --enable-decoder=aasc | |
- --enable-decoder=alac | |
- --enable-decoder=flac | |
- --enable-decoder=gif | |
- --enable-decoder=h264 | |
- --enable-decoder=hevc | |
- --enable-decoder=libdav1d | |
- --enable-decoder=mp1 | |
- --enable-decoder=mp1float | |
- --enable-decoder=mp2 | |
- --enable-decoder=mp2float | |
- --enable-decoder=mp3 | |
- --enable-decoder=mp3adu | |
- --enable-decoder=mp3adufloat | |
- --enable-decoder=mp3float | |
- --enable-decoder=mp3on4 | |
- --enable-decoder=mp3on4float | |
- --enable-decoder=mpeg4 | |
- --enable-decoder=msmpeg4v2 | |
- --enable-decoder=msmpeg4v3 | |
- --enable-decoder=opus | |
- --enable-decoder=pcm_alaw | |
- --enable-decoder=pcm_f32be | |
- --enable-decoder=pcm_f32le | |
- --enable-decoder=pcm_f64be | |
- --enable-decoder=pcm_f64le | |
- --enable-decoder=pcm_lxf | |
- --enable-decoder=pcm_mulaw | |
- --enable-decoder=pcm_s16be | |
- --enable-decoder=pcm_s16be_planar | |
- --enable-decoder=pcm_s16le | |
- --enable-decoder=pcm_s16le_planar | |
- --enable-decoder=pcm_s24be | |
- --enable-decoder=pcm_s24daud | |
- --enable-decoder=pcm_s24le | |
- --enable-decoder=pcm_s24le_planar | |
- --enable-decoder=pcm_s32be | |
- --enable-decoder=pcm_s32le | |
- --enable-decoder=pcm_s32le_planar | |
- --enable-decoder=pcm_s64be | |
- --enable-decoder=pcm_s64le | |
- --enable-decoder=pcm_s8 | |
- --enable-decoder=pcm_s8_planar | |
- --enable-decoder=pcm_u16be | |
- --enable-decoder=pcm_u16le | |
- --enable-decoder=pcm_u24be | |
- --enable-decoder=pcm_u24le | |
- --enable-decoder=pcm_u32be | |
- --enable-decoder=pcm_u32le | |
- --enable-decoder=pcm_u8 | |
- --enable-decoder=pcm_zork | |
- --enable-decoder=vorbis | |
- --enable-decoder=wavpack | |
- --enable-decoder=wmalossless | |
- --enable-decoder=wmapro | |
- --enable-decoder=wmav1 | |
- --enable-decoder=wmav2 | |
- --enable-decoder=wmavoice | |
- --enable-encoder=libopus | |
- --enable-parser=aac | |
- --enable-parser=aac_latm | |
- --enable-parser=flac | |
- --enable-parser=h264 | |
- --enable-parser=hevc | |
- --enable-parser=mpeg4video | |
- --enable-parser=mpegaudio | |
- --enable-parser=opus | |
- --enable-parser=vorbis | |
- --enable-demuxer=aac | |
- --enable-demuxer=flac | |
- --enable-demuxer=gif | |
- --enable-demuxer=h264 | |
- --enable-demuxer=hevc | |
- --enable-demuxer=m4v | |
- --enable-demuxer=mov | |
- --enable-demuxer=mp3 | |
- --enable-demuxer=ogg | |
- --enable-demuxer=wav | |
- --enable-muxer=ogg | |
- --enable-muxer=opus | |
override-pull: | | |
snapcraftctl pull | |
patch -p1 < "$SNAPCRAFT_STAGE/ffmpeg.diff" | |
prime: | |
- -./usr/include | |
- -./usr/lib/pkgconfig | |
after: | |
- patches | |
- nasm | |
- dav1d | |
openal: | |
source: https://github.com/kcat/openal-soft.git | |
source-depth: 1 | |
source-tag: openal-soft-1.20.1 | |
plugin: cmake | |
build-packages: | |
- libasound2-dev | |
- libpulse-dev | |
- libsndio-dev | |
- portaudio19-dev | |
configflags: | |
- -DCMAKE_BUILD_TYPE=Release | |
- -DALSOFT_EXAMPLES=OFF | |
- -DALSOFT_TESTS=OFF | |
- -DALSOFT_UTILS=OFF | |
- -DALSOFT_CONFIG=OFF | |
prime: | |
- -./include | |
- -./lib/cmake | |
- -./lib/pkgconfig | |
qtimageformats: | |
source: https://github.com/qt/qtimageformats.git | |
source-depth: 1 | |
source-tag: v5.12.3 | |
plugin: dump | |
build-snaps: | |
- kde-frameworks-5-core18-sdk | |
- kde-frameworks-5-core18 | |
build-packages: | |
- libglvnd-dev | |
override-build: | | |
KF5_DIR=/snap/kde-frameworks-5-core18-sdk/current | |
$KF5_DIR/usr/lib/qt5/bin/qmake -qtconf "$SNAPCRAFT_STAGE/qt.conf" | |
make -j$(nproc) | |
make INSTALL_ROOT="$SNAPCRAFT_PART_INSTALL/tmp" install | |
cp -a "$SNAPCRAFT_PART_INSTALL/tmp/$KF5_DIR/." "$SNAPCRAFT_PART_INSTALL" | |
rm -r "$SNAPCRAFT_PART_INSTALL/tmp" | |
after: | |
- qtconf | |
qtwayland: | |
source: https://github.com/qt/qtwayland.git | |
source-depth: 1 | |
source-tag: v5.12.3 | |
plugin: dump | |
build-snaps: | |
- kde-frameworks-5-core18-sdk | |
- kde-frameworks-5-core18 | |
build-packages: | |
- libglvnd-dev | |
override-build: | | |
KF5_DIR=/snap/kde-frameworks-5-core18-sdk/current | |
$KF5_DIR/usr/lib/qt5/bin/qmake -qtconf "$SNAPCRAFT_STAGE/qt.conf" | |
make -j$(nproc) | |
make INSTALL_ROOT="$SNAPCRAFT_PART_INSTALL/tmp" install | |
cp -a "$SNAPCRAFT_PART_INSTALL/tmp/$KF5_DIR/." "$SNAPCRAFT_PART_INSTALL" | |
cp -a "$SNAPCRAFT_PART_INSTALL/tmp/$SNAPCRAFT_STAGE/." "$SNAPCRAFT_PART_INSTALL" | |
rm -r "$SNAPCRAFT_PART_INSTALL/tmp" | |
after: | |
- qtconf | |
prime: [-./*] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment