Sunday, July 03, 2022

Re: tdesktop: provide qt6 flavour for testing

Klemens Nanni <kn@openbsd.org> wrote:
> On Fri, Jun 24, 2022 at 03:47:05PM +0000, Klemens Nanni wrote:
> > On 24/06/2022 18:20, Sergey A. Osokin wrote:
> > > On Fri, Jun 24, 2022 at 10:43:57AM +0000, Klemens Nanni wrote:
> > > > On Thu, Jun 23, 2022 at 09:44:58PM +0000, Sergey A. Osokin wrote:
> > > > >
> > > > > telegram-deskop 4.0.0, latest release, builds well with Qt5.
> > > >
> > > > On which system?
> > >
> > > FreeBSD 13.1-RELEASE amd64
> > >
> > > > With patches?
> > >
> > > A couple of patches is required, one from the vendor,
> > > https://github.com/osokin/freebsd-ports/tree/tdesktop/net-im/telegram-desktop/files
> >
> > Thanks, merely adding the media_view_pip.cpp patch to 4.0.0 without any
> > other Qt related patches fixes the Qt5 build on OpenBSD, thanks.
> >
> > So that should help updating to 4.0.0, but it still doesn't fix
> > regressions with Qt6.
>
> I haven't had much time to poke at cwm yet...
>
> > I can test and update tdesktop to 4.0.0 using Qt5 to drop our current
> > patches, then I could send a simpler FLAVOR diff to add -qt6.
>
> Here's the FLAVOR diff I'll commit in two days unless I hear objections.

builds fine here, and also seems to work fine for now. fwiw i don't
mind adding the -qt6 flavor, but would be nice to switch completely to
it (hopefully) in the near future.

ok for me :)

> Index: net/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/Makefile,v
> retrieving revision 1.1308
> diff -u -p -r1.1308 Makefile
> --- net/Makefile 28 Jun 2022 12:58:07 -0000 1.1308
> +++ net/Makefile 30 Jun 2022 14:52:13 -0000
> @@ -696,6 +696,7 @@
> SUBDIR += tcptrace
> SUBDIR += tcptraceroute
> SUBDIR += tdesktop
> + SUBDIR += tdesktop,qt6
> SUBDIR += tdlib
> SUBDIR += telegram-purple
> SUBDIR += telepathy
> Index: net/tdesktop/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/tdesktop/Makefile,v
> retrieving revision 1.33
> diff -u -p -r1.33 Makefile
> --- net/tdesktop/Makefile 25 Jun 2022 21:33:46 -0000 1.33
> +++ net/tdesktop/Makefile 1 Jul 2022 11:33:14 -0000
> @@ -6,6 +6,7 @@ NOT_FOR_ARCHS = ${BE_ARCHS} i386
> COMMENT = Telegram Desktop messenger
> PORTROACH = limit:-full$$
> V = 4.0.2
> +REVISION = 0
> DISTNAME = tdesktop-${V}-full
> PKGNAME = ${DISTNAME:-full=}
> CATEGORIES = net
> @@ -22,12 +23,10 @@ MAINTAINER = Andrew Krasavin <noiseless
> # rlottie: LGPL 2.1 with freetype, LGPL, MIT, BSD dependencies
> PERMIT_PACKAGE = Yes
>
> -WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5Gui Qt5Network Qt5Svg
> -WANTLIB += Qt5Widgets absl_strings avcodec avformat avutil c crypto
> -WANTLIB += gio-2.0 giomm-2.4 glib-2.0 glibmm-2.4 gobject-2.0 hunspell-1.7
> -WANTLIB += jpeg lz4 m openal qrcodegencpp rnnoise sigc-2.0 swresample
> -WANTLIB += swscale tg_owt xcb xcb-keysyms xcb-record xcb-screensaver
> -WANTLIB += xxhash z
> +WANTLIB += ${COMPILER_LIBCXX} absl_strings avcodec avformat avutil c crypto
> +WANTLIB += gio-2.0 giomm-2.4 glib-2.0 glibmm-2.4 gobject-2.0 hunspell-1.7 jpeg
> +WANTLIB += lz4 m openal qrcodegencpp rnnoise sigc-2.0 swresample swscale tg_owt
> +WANTLIB += xcb xcb-keysyms xcb-record xcb-screensaver xxhash z
>
> # C++17 set below
> COMPILER = base-clang ports-gcc
> @@ -36,8 +35,7 @@ COMPILER = base-clang ports-gcc
> # CCACHE_ENV += CCACHE_SLOPPINESS=pch_defines,time_macros
>
> MODULES = devel/cmake \
> - lang/python \
> - x11/qt5
> + lang/python
> MODPY_RUNDEP = No
>
> BUILD_DEPENDS = devel/microsoft-gsl \
> @@ -55,12 +53,10 @@ LIB_DEPENDS = archivers/lz4 \
> graphics/qr-code-generator>=1.7.0p1 \
> net/tg_owt>=0.0.0.20220507 \
> sysutils/xxhash \
> - textproc/hunspell \
> - x11/qt5/qtsvg
> + textproc/hunspell
>
> RUN_DEPENDS = devel/desktop-file-utils \
> - x11/gtk+3,-guic \
> - x11/qt5/qtimageformats
> + x11/gtk+3,-guic
>
> # look for system libraries and build a shared library, despite upstream
> # treating it as "community effort" with less support
> @@ -74,8 +70,7 @@ CONFIGURE_ARGS += -DTDESKTOP_API_ID=6113
>
> # disable unported/unwanted components
> CONFIGURE_ARGS += -DDESKTOP_APP_DISABLE_JEMALLOC=ON \
> - -DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=ON \
> - -DDESKTOP_APP_QT6=OFF
> + -DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=ON
>
> # match standard version with abseil
> CONFIGURE_ARGS += -DCMAKE_CXX_STANDARD=17
> @@ -90,6 +85,41 @@ CFLAGS += -DIOAPI_NO_64
>
> # unported and required
> NEEDED_BUNDLES += rlottie tgcalls
> +
> +
> +FLAVORS = qt6
> +FLAVOR ?= # empty/qt5
> +.if ${FLAVOR:Mqt6}
> +# avoid conflict with unflavored package to allow installing both
> +FULLPKGNAME = tdesktop${FLAVOR_EXT}-${V}
> +WANTLIB += Qt6Core Qt6Core5Compat Qt6Gui Qt6Network Qt6OpenGL Qt6OpenGLWidgets
> +WANTLIB += Qt6Svg Qt6Widgets
> +
> +MODULES += x11/qt6
> +LIB_DEPENDS += x11/qt6/qt5compat \
> + x11/qt6/qtsvg
> +RUN_DEPENDS += x11/qt6/qtimageformats
> +
> +post-install:
> + mv ${PREFIX}/bin/telegram-desktop{,${FLAVOR_EXT}}
> + mv ${PREFIX}/share/applications/telegramdesktop{,${FLAVOR_EXT}}.desktop
> + sed -i \
> + -e /Name=/s,$$,' (${FLAVOR_EXT})', \
> + -e /Exec=/s,desktop,\&${FLAVOR_EXT}, \
> + -e /Icon=/s,$$,${FLAVOR_EXT}, \
> + ${PREFIX}/share/applications/telegramdesktop${FLAVOR_EXT}.desktop
> + find ${PREFIX} -type f -name telegram.png -execdir \
> + mv {} telegram${FLAVOR_EXT}.png \;
> + mv ${PREFIX}/share/metainfo/telegramdesktop{,${FLAVOR_EXT}}.metainfo.xml
> +.else
> +WANTLIB += Qt5Core Qt5Gui Qt5Network Qt5Svg Qt5Widgets
> +
> +MODULES += x11/qt5
> +LIB_DEPENDS += x11/qt5/qtsvg
> +RUN_DEPENDS += x11/qt5/qtimageformats
> +CONFIGURE_ARGS += -DDESKTOP_APP_QT6=OFF
> +.endif
> +
>
> post-extract:
> # All bundles:
> Index: net/tdesktop/pkg/DESCR
> ===================================================================
> RCS file: /cvs/ports/net/tdesktop/pkg/DESCR,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 DESCR
> --- net/tdesktop/pkg/DESCR 26 Jan 2022 19:38:06 -0000 1.1.1.1
> +++ net/tdesktop/pkg/DESCR 1 Jul 2022 11:29:08 -0000
> @@ -1,2 +1,6 @@
> Telegram Desktop is the official desktop client for the Telegram messenger,
> based on the Telegram API and the MTProto secure protocol.
> +
> +Available flavors:
> +
> + qt6: Built against Qt 6 (default upstream) instead of Qt 5
> Index: net/tdesktop/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/net/tdesktop/pkg/PLIST,v
> retrieving revision 1.2
> diff -u -p -r1.2 PLIST
> --- net/tdesktop/pkg/PLIST 9 Mar 2022 16:48:18 -0000 1.2
> +++ net/tdesktop/pkg/PLIST 25 Jun 2022 21:35:19 -0000
> @@ -1,13 +1,13 @@
> -@bin bin/telegram-desktop
> -share/applications/telegramdesktop.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
> +@bin bin/telegram-desktop${FLAVOR_EXT}
> +share/applications/telegramdesktop${FLAVOR_EXT}.desktop
> +share/icons/hicolor/128x128/apps/telegram${FLAVOR_EXT}.png
> +share/icons/hicolor/16x16/apps/telegram${FLAVOR_EXT}.png
> +share/icons/hicolor/256x256/apps/telegram${FLAVOR_EXT}.png
> +share/icons/hicolor/32x32/apps/telegram${FLAVOR_EXT}.png
> +share/icons/hicolor/48x48/apps/telegram${FLAVOR_EXT}.png
> +share/icons/hicolor/512x512/apps/telegram${FLAVOR_EXT}.png
> +share/icons/hicolor/64x64/apps/telegram${FLAVOR_EXT}.png
> share/metainfo/
> @tag update-desktop-database
> @tag gtk-update-icon-cache %D/share/icons/hicolor
> -share/metainfo/telegramdesktop.metainfo.xml
> +share/metainfo/telegramdesktop${FLAVOR_EXT}.metainfo.xml

No comments:

Post a Comment