diff options
Diffstat (limited to 'net-im/telegram-desktop/telegram-desktop-1.9.10-r1.ebuild')
-rw-r--r-- | net-im/telegram-desktop/telegram-desktop-1.9.10-r1.ebuild | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/net-im/telegram-desktop/telegram-desktop-1.9.10-r1.ebuild b/net-im/telegram-desktop/telegram-desktop-1.9.10-r1.ebuild new file mode 100644 index 000000000000..660977c09e08 --- /dev/null +++ b/net-im/telegram-desktop/telegram-desktop-1.9.10-r1.ebuild @@ -0,0 +1,157 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7} ) + +inherit cmake desktop flag-o-matic python-any-r1 xdg-utils + +MY_P="tdesktop-${PV}-full" + +DESCRIPTION="Official desktop client for Telegram" +HOMEPAGE="https://desktop.telegram.org" +SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz" + +LICENSE="GPL-3-with-openssl-exception" +SLOT="0" +KEYWORDS="~amd64 ~ppc64" +IUSE="alsa dbus gtk3 libressl pulseaudio spell" + +# dbus still required to build, but use flag disables dbus usage at runtime +# pkg-config will pick up gtk2 first if found, needs a workaround +RDEPEND="!net-im/telegram-desktop-bin + app-arch/lz4 + app-arch/xz-utils + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + >=dev-cpp/ms-gsl-2.1.0 + dev-cpp/range-v3 + dev-libs/libdbusmenu-qt[qt5(+)] + dev-libs/xxhash + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtimageformats:5 + dev-qt/qtnetwork:5 + media-libs/fontconfig:= + media-libs/libtgvoip[alsa?,pulseaudio?] + media-libs/openal[alsa?,pulseaudio?] + sys-libs/zlib[minizip] + virtual/ffmpeg + virtual/libiconv + x11-libs/libva[X,drm] + x11-libs/libX11 + || ( + dev-qt/qtgui:5[png,X(-)] + dev-qt/qtgui:5[png,xcb(-)] + ) + || ( + dev-qt/qtwidgets:5[png,X(-)] + dev-qt/qtwidgets:5[png,xcb(-)] + ) + gtk3? ( + dev-libs/libappindicator:3 + x11-libs/gtk+:3 + ) + pulseaudio? ( media-sound/pulseaudio ) + spell? ( app-text/enchant:= ) +" + +DEPEND="${RDEPEND} + ${PYTHON_DEPS}" + +BDEPEND=" + >=dev-util/cmake-3.16 + virtual/pkgconfig +" +REQUIRED_USE="|| ( alsa pulseaudio )" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}/0002-PPC-big-endian.patch" + "${FILESDIR}/musl.patch" +) + +src_configure() { + local mycxxflags=( + -Wno-deprecated-declarations + -Wno-error=deprecated-declarations + -Wno-switch + ) + + append-cxxflags "${mycxxflags[@]}" + + # TODO: unbundle header-only libs, ofc telegram uses git versions... + # it fals with tl-expected-1.0.0, so we use bundled for now to avoid git rev snapshots + # EXPECTED VARIANT + local mycmakeargs=( + -Ddisable_autoupdate=1 + -DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON + -DDESKTOP_APP_USE_GLIBC_WRAPS=OFF + -DDESKTOP_APP_USE_PACKAGED=ON + -DDESKTOP_APP_USE_PACKAGED_EXPECTED=OFF + -DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF + -DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF + -DTDESKTOP_DISABLE_DESKTOP_FILE_GENERATION=ON + -DTDESKTOP_LAUNCHER_BASENAME="${PN}" + -DDESKTOP_APP_DISABLE_SPELLCHECK="$(usex spell OFF ON)" + -DTDESKTOP_DISABLE_GTK_INTEGRATION="$(usex gtk3 OFF ON)" + -DTDESKTOP_DISABLE_DBUS_INTEGRATION="$(usex dbus OFF ON)" + -DTDESKTOP_FORCE_GTK_FILE_DIALOG="$(usex gtk3)" + ) + + if [[ -n ${MY_TDESKTOP_API_ID} && -n ${MY_TDESKTOP_API_HASH} ]]; then + einfo "Found custom API credentials" + mycmakeargs+=( + -DTDESKTOP_API_ID="${MY_TDESKTOP_API_ID}" + -DTDESKTOP_API_HASH="${MY_TDESKTOP_API_HASH}" + ) + else + mycmakeargs+=( -DTDESKTOP_API_TEST=ON ) + ewarn + ewarn "Building ${PN} with test API credentials." + ewarn "Connectivity to API servers will be throttled." + ewarn "To build ${PN} custom API credentials cancel build now and obtain" + ewarn "credentials here: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/api_credentials.md" + ewarn "After getting credentials you can export variables:" + ewarn "export MY_TDESKTOP_API_ID=\"17349\"" + ewarn "export MY_TDESKTOP_API_HASH=\"344583e45741c457fe1862106095a5eb\"" + ewarn "and restart the build" + ewarn "you can save variables in /etc/portage/env/${CATEGORY}/${PN}" + ewarn "portage will use the file every build automatically" + ewarn + fi + + cmake_src_configure +} + +src_install() { + dobin "${BUILD_DIR}/bin/${PN}" + + newmenu lib/xdg/telegramdesktop.desktop "${PN}.desktop" + + local icon_size + for icon_size in 16 32 48 64 128 256 512 + do + newicon -s ${icon_size} \ + Telegram/Resources/art/icon${icon_size}.png telegram.png + done + + insinto /usr/share/appdata + doins lib/xdg/telegramdesktop.appdata.xml + + einstalldocs +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} |