diff --git a/net-im/telegram-desktop/Makefile b/net-im/telegram-desktop/Makefile new file mode 100644 index 0000000..17215e3 --- /dev/null +++ b/net-im/telegram-desktop/Makefile @@ -0,0 +1,119 @@ +PORTNAME= telegram-desktop +DISTVERSION= 4.6.5 +CATEGORIES= net-im +MASTER_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/releases/download/v${DISTVERSION}/ +DISTNAME= tdesktop-${DISTVERSION}-full +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= ports@FreeBSD.org +COMMENT= Telegram Desktop messaging app +WWW= https://desktop.telegram.org/ + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BROKEN_i386= does not build, webrtc related +NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe +NOT_FOR_ARCHS_REASON= Only little endian is supported + +BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib \ + microsoft-gsl>0:devel/microsoft-gsl \ + pulseaudio>0:audio/pulseaudio \ + range-v3>0:devel/range-v3 \ + tl-expected>0:devel/tl-expected \ + v4l_compat>0:multimedia/v4l_compat \ + yasm:devel/yasm \ + ${LOCALBASE}/lib/libtg_owt.a:net-im/tg_owt +LIB_DEPENDS= libabsl_base.so:devel/abseil \ + libavformat.so:multimedia/ffmpeg \ + libdbus-1.so:devel/dbus \ + libdispatch.so:devel/libdispatch \ + libhunspell-1.7.so:textproc/hunspell \ + liblz4.so:archivers/liblz4 \ + libopenh264.so:multimedia/openh264 \ + libopus.so:audio/opus \ + libpipewire-0.3.so:multimedia/pipewire \ + libprotobuf.so:devel/protobuf \ + libqrcodegencpp.so:graphics/qr-code-generator \ + librnnoise.so:audio/rnnoise \ + libxcb-keysyms.so:x11/xcb-util-keysyms \ + libxkbcommon.so:x11/libxkbcommon \ + libxxhash.so:devel/xxhash \ + libvpx.so:multimedia/libvpx + +FLAVORS= qt5 qt6 +FLAVOR?= ${FLAVORS:[1]} +qt5_PKGNAMESUFFIX= +qt6_PKGNAMESUFFIX= -qt6 +qt5_CONFLICTS_INSTALL= ${PORTNAME}-qt6 +qt6_CONFLICTS_INSTALL= ${PORTNAME} + +USES= cmake desktop-file-utils gl gnome jpeg localbase \ + minizip openal pkgconfig python:3.7+,build ssl xorg + +USE_CXXSTD= c++17 +USE_GITHUB= nodefault +GH_ACCOUNT= telegramdesktop +GH_PROJECT= tdesktop + +.if ${FLAVOR} == qt5 +USES+= kde:5 qt:5 +USE_QT= buildtools:build core dbus gui imageformats network qmake:build \ + svg wayland widgets +USE_KDE= coreaddons kimageformats +.else +USES+= qt:6 +USE_QT= 5compat base imageformats lottie shadertools svg tools:build wayland +.endif + +USE_GL= gl +USE_GNOME= glib20 glibmm26 +USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrandr xrender xtst + +CMAKE_ARGS= -DTDESKTOP_API_ID=${TELEGRAM_API_ID} -DTDESKTOP_API_HASH=${TELEGRAM_API_HASH} +CMAKE_ON= DESKTOP_APP_USE_PACKAGED DESKTOP_APP_DISABLE_CRASH_REPORTS \ + DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION +CMAKE_OFF= DESKTOP_APP_USE_PACKAGED_FONTS + +# Since cmake 3.25.0, BSDs are no longer recognised as Linux (in this port). +CMAKE_ARGS+= -DLINUX=true + +# libdispatch components +LDFLAGS+= -lBlocksRuntime + +# Telegram uses OpenAL for its audio, but libtgvoip (for voice calls) can use PulseAudio or ALSA. +# It dynamically loads PulseAudio, and if this fails, it loads ALSA. +# If both of them are not installed, then voice calls do not work, but other functionalities still work. +OPTIONS_DEFAULT= ALSA +OPTIONS_MULTI= AUDIO +OPTIONS_MULTI_AUDIO= ALSA PULSEAUDIO + +AUDIO_DESC= Audio backend for voice calls + +ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib +PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio + +# Telegram asks each custom build to have its own API ID and hash. +TELEGRAM_API_HASH= 20a3432aab43f24bb4460fceac5ba38d +TELEGRAM_API_ID= 601761 + +.include + +.if ${OSVERSION} > 1400000 +USES+= llvm:build +CC= ${_LLVM_MK_PREFIX}/bin/clang +CPP= ${_LLVM_MK_PREFIX}/bin/clang-cpp +CXX= ${_LLVM_MK_PREFIX}/bin/clang++ +#LD?= ${_LLVM_MK_PREFIX}/bin/ld +.else +USES+= compiler:c++17-lang +.endif + +post-patch: + # XXX fix the following on every source file + # warning: unknown warning option '-Wno-maybe-uninitialized' + # warning: argument unused during compilation: '-fstack-clash-protection' + ${REINPLACE_CMD} -e /-Wno-maybe-uninitialized/d -e /-fstack-clash-protection/d \ + ${WRKSRC}/cmake/options_linux.cmake + +.include diff --git a/net-im/telegram-desktop/distinfo b/net-im/telegram-desktop/distinfo new file mode 100644 index 0000000..f806057 --- /dev/null +++ b/net-im/telegram-desktop/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1677352285 +SHA256 (tdesktop-4.6.5-full.tar.gz) = 3448d879afdc7c5c06d2b0f9cabe339b08093cb25f380a3e398d32daa96a9c36 +SIZE (tdesktop-4.6.5-full.tar.gz) = 63793549 diff --git a/net-im/telegram-desktop/pkg-descr b/net-im/telegram-desktop/pkg-descr new file mode 100644 index 0000000..1c41166 --- /dev/null +++ b/net-im/telegram-desktop/pkg-descr @@ -0,0 +1,11 @@ +Telegram Desktop is a messaging app. It is the fast and functional open source +desktop app connected to the closed source Telegram server. + +Features: +* accounts tied to telephone numbers +* cloud-based messaging +* bots for third party developers +* channels +* secret chats featuring with client-to-client encryption +* stickers +* voice calls diff --git a/net-im/telegram-desktop/pkg-plist b/net-im/telegram-desktop/pkg-plist new file mode 100644 index 0000000..106d667 --- /dev/null +++ b/net-im/telegram-desktop/pkg-plist @@ -0,0 +1,10 @@ +bin/telegram-desktop +share/applications/org.telegram.desktop.desktop +share/icons/hicolor/128x128/apps/telegram.png +share/icons/hicolor/16x16/apps/telegram.png +share/icons/hicolor/256x256/apps/telegram.png +share/icons/hicolor/32x32/apps/telegram.png +share/icons/hicolor/48x48/apps/telegram.png +share/icons/hicolor/512x512/apps/telegram.png +share/icons/hicolor/64x64/apps/telegram.png +share/metainfo/org.telegram.desktop.metainfo.xml