git: 74b7e3ece514 - main - x11/xsnow: update to 3.8.4 pre01 (+)

From: Dima Panov <fluffy_at_FreeBSD.org>
Date: Mon, 27 Jan 2025 18:30:03 UTC
The branch main has been updated by fluffy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=74b7e3ece5145165ae8d96af8ba42857e2a86004

commit 74b7e3ece5145165ae8d96af8ba42857e2a86004
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2025-01-27 12:08:53 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2025-01-27 18:29:43 +0000

    x11/xsnow: update to 3.8.4 pre01 (+)
    
    Changelog:      https://www.ratrabbit.nl/ratrabbit/xsnow/changelog/index.html
---
 x11/xsnow/Makefile | 160 ++++++++++++++++++++++++++++++++++++++++++++---------
 x11/xsnow/distinfo |   6 +-
 2 files changed, 138 insertions(+), 28 deletions(-)

diff --git a/x11/xsnow/Makefile b/x11/xsnow/Makefile
index 7b60f6faaa21..587ec3c69f86 100644
--- a/x11/xsnow/Makefile
+++ b/x11/xsnow/Makefile
@@ -1,35 +1,145 @@
-PORTNAME=	xsnow
-PORTVERSION=	3.7.9
-CATEGORIES=	x11
-MASTER_SITES=	https://ratrabbit.nl/downloads/xsnow/ \
-		SF/${PORTNAME}/
+PORTNAME=	telegram-desktop
+DISTVERSION=	5.10.6
+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=	fluffy@FreeBSD.org
-COMMENT=	Create a snowy and Santa-y desktop
-WWW=		https://www.ratrabbit.nl/ratrabbit/xsnow/
+MAINTAINER=	ports@FreeBSD.org
+COMMENT=	Telegram Desktop messaging app
+WWW=		https://desktop.telegram.org/
 
 LICENSE=	GPLv3
-LICENSE_FILE=	${WRKSRC}/COPYING
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
-LIB_DEPENDS=	libgsl.so:math/gsl \
-		libxkbcommon.so:x11/libxkbcommon
+BROKEN_i386=	does not build, webrtc related
+#BROKEN_SSL=	openssl openssl31
+#BROKEN_SSL_REASON=	undefined symbol: ERR_load_BIO_strings
+NOT_FOR_ARCHS=		powerpc powerpc64 powerpcspe
+NOT_FOR_ARCHS_REASON=	Only little endian is supported
 
-USES=		compiler:c11 gmake gnome pkgconfig xorg
-USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 libxml2
-USE_XORG=	x11 xext xinerama xpm xt xtst xorgproto
-GNU_CONFIGURE=	yes
-GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
+BUILD_DEPENDS=	boost-libs>0:devel/boost-libs \
+		microsoft-gsl>0:devel/microsoft-gsl \
+		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 \
+		libada.so:devel/libada \
+		libavformat.so:multimedia/ffmpeg \
+		libcrc32c.so:devel/crc32c \
+		libdbus-1.so:devel/dbus \
+		libdispatch.so:devel/libdispatch \
+		libfmt.so:devel/libfmt \
+		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-lite.so:devel/protobuf \
+		libqrcodegencpp.so:graphics/qr-code-generator \
+		librnnoise.so:audio/rnnoise \
+		libsrtp2.so:net/libsrtp2 \
+		libxxhash.so:devel/xxhash \
+		libvpx.so:multimedia/libvpx
 
-OPTIONS_DEFINE=		NLS
-OPTIONS_DEFAULT=	NLS
-OPTIONS_SUB=	yes
+USES=		cmake compiler:c++20-lang desktop-file-utils gl gnome jpeg kde:6 localbase \
+		minizip openal pkgconfig python:build qt:6 ssl
 
-NLS_USES=		gettext-tools
-NLS_CONFIGURE_ENABLE=	nls
+USE_GITHUB=	nodefault
+GH_ACCOUNT=	telegramdesktop
+GH_PROJECT=	tdesktop
+
+USE_QT=		5compat base declarative imageformats lottie shadertools svg tools:build
+USE_KDE=	coreaddons kimageformats
+
+USE_GL=		gl
+USE_GNOME=	glib20 glibmm26 introspection
+
+CMAKE_ARGS=	-DTDESKTOP_API_ID=${TELEGRAM_API_ID} -DTDESKTOP_API_HASH=${TELEGRAM_API_HASH} \
+		-DQT_VERSION_MAJOR=6
+CMAKE_ON=	DESKTOP_APP_USE_PACKAGED DESKTOP_APP_DISABLE_CRASH_REPORTS \
+		DESKTOP_APP_DISABLE_JEMALLOC \
+		DESKTOP_APP_DISABLE_SCUDO
+
+# 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_DEFINE=		SYSTEM_FONTS
+OPTIONS_DEFAULT=	ALSA X11 WAYLAND
+OPTIONS_GROUP=	AUDIO
+OPTIONS_MULTI=	DESKTOP
+OPTIONS_GROUP_AUDIO=	ALSA PULSEAUDIO
+OPTIONS_MULTI_DESKTOP=	X11 WAYLAND
+
+AUDIO_DESC=		Audio backend for voice calls
+DESKTOP_DESC=		Desktop integration
+SYSTEM_FONTS_DESC=	Use system fonts instead of bundled patched ones
+
+ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
+PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
+ALSA_CMAKE_BOOL_OFF=	LIBTGVOIP_DISABLE_ALSA
+PULSEAUDIO_CMAKE_BOOL_OFF=	LIBTGVOIP_DISABLE_PULSEAUDIO
+SYSTEM_FONTS_CMAKE_BOOL_OFF=	DESKTOP_APP_USE_PACKAGED_FONTS
+WAYLAND_CMAKE_BOOL_OFF=	DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION
+WAYLAND_USE=		qt=wayland
+X11_CMAKE_BOOL_OFF=	DESKTOP_APP_DISABLE_X11_INTEGRATION
+X11_USES=		xorg
+X11_USE=		xorg=x11,xcb,xcomposite,xdamage,xext,xfixes,xrandr,xrender,xtst
+X11_LIB_DEPENDS=	libxcb-keysyms.so:x11/xcb-util-keysyms \
+			libxkbcommon.so:x11/libxkbcommon
+
+# Telegram asks each custom build to have its own API ID and hash.
+TELEGRAM_API_HASH=	20a3432aab43f24bb4460fceac5ba38d
+TELEGRAM_API_ID=	601761
+
+.include <bsd.port.pre.mk> # for COMPILER_VERSION
+
+.if ${OPSYS} == FreeBSD && defined(WITH_CCACHE_BUILD) && !defined(NO_CCACHE)
+CMAKE_ARGS+=	-DCMAKE_CC_COMPILER_LAUNCHER="${LOCALBASE}/bin/ccache" \
+		-DCMAKE_CPP_COMPILER_LAUNCHER="${LOCALBASE}/bin/ccache" \
+		-DCMAKE_CXX_COMPILER_LAUNCHER="${LOCALBASE}/bin/ccache"
+.endif
+
+.if ${OPSYS} == FreeBSD && ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 190
+EXTRA_PATCHES=		${PATCHDIR}/extrapatch-Telegram_lib__base_base_qt_qt__compare.h
+.endif
+
+post-extract:
+	# Some of the third-party components already built, and
+	# can be safely removed
+	${RM} -rf \
+		${WRKSRC}/Telegram/ThirdParty/GSL \
+		${WRKSRC}/Telegram/ThirdParty/QR \
+		${WRKSRC}/Telegram/ThirdParty/dispatch \
+		${WRKSRC}/Telegram/ThirdParty/expected \
+		${WRKSRC}/Telegram/ThirdParty/fcitx5-qt \
+		${WRKSRC}/Telegram/ThirdParty/hime \
+		${WRKSRC}/Telegram/ThirdParty/hunspell \
+		${WRKSRC}/Telegram/ThirdParty/jemalloc \
+		${WRKSRC}/Telegram/ThirdParty/jimf \
+		${WRKSRC}/Telegram/ThirdParty/kcoreaddons \
+		${WRKSRC}/Telegram/ThirdParty/kimageformats \
+		${WRKSRC}/Telegram/ThirdParty/lz4 \
+		${WRKSRC}/Telegram/ThirdParty/minizip \
+		${WRKSRC}/Telegram/ThirdParty/plasma-wayland-protocols \
+		${WRKSRC}/Telegram/ThirdParty/range-v3 \
+		${WRKSRC}/Telegram/ThirdParty/wayland \
+		${WRKSRC}/Telegram/ThirdParty/wayland-protocols \
+		${WRKSRC}/Telegram/ThirdParty/xxHash
 
 post-patch:
-	@${REINPLACE_CMD} \
-		-e 's,/games,/bin,g' \
-			${WRKSRC}/src/Makefile.in
+	# 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 <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/x11/xsnow/distinfo b/x11/xsnow/distinfo
index 399f445ca846..129ac1ef7ad9 100644
--- a/x11/xsnow/distinfo
+++ b/x11/xsnow/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1722509895
-SHA256 (xsnow-3.7.9.tar.gz) = 0c4cd06e551f9b691dd08db5b14c0edc45549bf5879ce93b4fa88c828dfe1006
-SIZE (xsnow-3.7.9.tar.gz) = 1409749
+TIMESTAMP = 1737958854
+SHA256 (tdesktop-5.10.6-full.tar.gz) = 4429e4e5ee538432b10c920b8b920b0e7a8f13cb47cea997d187fb4ef4ae8d2b
+SIZE (tdesktop-5.10.6-full.tar.gz) = 72571646