Index | Thread | Search

From:
Landry Breuil <landry@openbsd.org>
Subject:
[update] nheko 0.12/mtxclient 0.10
To:
ports@openbsd.org
Date:
Mon, 8 Jul 2024 09:05:44 +0200

Download raw body.

Thread
hi,

here's a wip update for nheko 0.12 which switched upstream to qt6, cf
https://github.com/Nheko-Reborn/nheko/releases/tag/v0.12.0
there's also an update for mtxclient 0.10.0 cf
https://github.com/Nheko-Reborn/mtxclient/releases/tag/v0.10.0

wip packages are available on https://packages.rhaalovely.net/wip/amd64/
using the trick from
https://github.com/Nheko-Reborn/nheko/issues/1187#issuecomment-1255831124
i've been able to connect to a matrix account and verify this new
device.

portswise, it builds a bundled copy of
https://github.com/KDAB/KDSingleApplication for which we could have a
distinct port, opinion welcome on that.

testing welcome!

Landry
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/nheko/Makefile,v
diff -u -r1.12 Makefile
--- Makefile	20 Apr 2024 09:28:33 -0000	1.12
+++ Makefile	8 Jul 2024 06:47:30 -0000
@@ -2,23 +2,22 @@
 
 GH_ACCOUNT =	Nheko-Reborn
 GH_PROJECT =	nheko
-GH_TAGNAME =	v0.11.3
-REVISION =	1
+GH_TAGNAME =	v0.12.0
 
 CATEGORIES=	net
 
 # GPLv3
 PERMIT_PACKAGE=	Yes
 
-WANTLIB += ${COMPILER_LIBCXX} Qt5Concurrent Qt5Core Qt5DBus Qt5Gui
-WANTLIB += Qt5Multimedia Qt5Network Qt5Qml Qt5QmlModels Qt5Quick
-WANTLIB += Qt5QuickControls2 Qt5QuickWidgets Qt5Svg Qt5Widgets
+WANTLIB += ${COMPILER_LIBCXX} GL Qt6Core Qt6DBus Qt6Gui
+WANTLIB += Qt6Multimedia Qt6Network Qt6Qml Qt6QmlModels Qt6Quick
+WANTLIB += Qt6QuickControls2 Qt6OpenGL Qt6Svg Qt6Widgets
 WANTLIB += c cmark coeurl crypto fmt glib-2.0 gobject-2.0 gstbase-1.0
-WANTLIB += gstreamer-1.0 gstsdp-1.0 gstwebrtc-1.0 intl lmdb m
-WANTLIB += matrix_client olm qt5keychain spdlog ssl xcb xcb-ewmh
+WANTLIB += gstreamer-1.0 gstsdp-1.0 gstwebrtc-1.0 gstgl-1.0 gstvideo-1.0 intl lmdb m
+WANTLIB += matrix_client olm qt6keychain spdlog ssl xkbcommon
 
 MODULES =	devel/cmake \
-		x11/qt5
+		x11/qt6
 
 # C++20
 COMPILER =	base-clang ports-gcc
@@ -31,7 +30,7 @@
 		devel/boost \
 		textproc/asciidoc \
 		textproc/nlohmann-json \
-		x11/qt5/qtbase
+		x11/qt6/qtbase
 
 LIB_DEPENDS =	databases/lmdb \
 		devel/coeurl>=0.3.0 \
@@ -40,14 +39,15 @@
 		devel/spdlog \
 		multimedia/gstreamer1/core \
 		multimedia/gstreamer1/plugins-base \
-		security/qtkeychain \
+		security/qtkeychain,qt6 \
 		textproc/cmark \
-		x11/qt5/qtmultimedia \
-		x11/qt5/qtquickcontrols2 \
-		x11/qt5/qtsvg
+		x11/qt6/qtdeclarative \
+		x11/qt6/qtmultimedia \
+		x11/qt6/qtsvg
 
 # -DCMAKE_DISABLE_FIND_PACKAGE_GIT=ON (or _Git or _git) do not work
 CONFIGURE_ARGS +=	-DGIT=OFF
+CONFIGURE_ARGS +=	-DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
 CONFIGURE_ARGS +=	-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/net/nheko/distinfo,v
diff -u -r1.4 distinfo
--- distinfo	23 Feb 2023 09:14:06 -0000	1.4
+++ distinfo	8 Jul 2024 06:47:30 -0000
@@ -1,2 +1,2 @@
-SHA256 (nheko-0.11.3.tar.gz) = 8oUVaISjoMaHDz+6icE9H9cMhye9F52DELE4GfimOjc=
-SIZE (nheko-0.11.3.tar.gz) = 1780179
+SHA256 (nheko-0.12.0.tar.gz) = o6dXi9k4aguaQYj6Epb93bffD4RsOXKLgKmY+dBvNtE=
+SIZE (nheko-0.12.0.tar.gz) = 2094339
Index: patches/patch-src_Cache_cpp
===================================================================
RCS file: patches/patch-src_Cache_cpp
diff -N patches/patch-src_Cache_cpp
--- patches/patch-src_Cache_cpp	20 Apr 2024 09:28:33 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-- "Fruquent lag due to db sync" https://github.com/Nheko-Reborn/nheko/issues/1355
-  Backout d8669ccf3d4429e44caa87e2592b3bc3afa4e41c
-- Fix build against fmt10
-  e89e65dc17020772eb057414b4f0c5d6f4ad98d0
-
-Index: src/Cache.cpp
---- src/Cache.cpp.orig
-+++ src/Cache.cpp
-@@ -293,7 +293,7 @@ Cache::setup()
-         //
-         // 2022-10-28: Disable the nosync flags again in the hope to crack down on some database
-         // corruption.
--        env_.open(cacheDirectory_.toStdString().c_str()); //, MDB_NOMETASYNC | MDB_NOSYNC);
-+        env_.open(cacheDirectory_.toStdString().c_str(),      MDB_NOMETASYNC | MDB_NOSYNC);
-     } catch (const lmdb::error &e) {
-         if (e.code() != MDB_VERSION_MISMATCH && e.code() != MDB_INVALID) {
-             throw std::runtime_error("LMDB initialization failed" + std::string(e.what()));
-@@ -438,7 +438,7 @@ Cache::loadSecretsFromStore(
-                 if (job->error() && job->error() != QKeychain::Error::EntryNotFound) {
-                     nhlog::db()->error("Restoring secret '{}' failed ({}): {}",
-                                        name.toStdString(),
--                                       job->error(),
-+                                       static_cast<int>(job->error()),
-                                        job->errorString().toStdString());
- 
-                     fatalSecretError();
Index: patches/patch-src_ChatPage_cpp
===================================================================
RCS file: patches/patch-src_ChatPage_cpp
diff -N patches/patch-src_ChatPage_cpp
--- patches/patch-src_ChatPage_cpp	20 Apr 2024 09:28:33 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-Fix build with fmt 10.1.0
-871e403f6799df48cfbbe08eba56d473a0c34216
-
-Index: src/ChatPage.cpp
---- src/ChatPage.cpp.orig
-+++ src/ChatPage.cpp
-@@ -1248,7 +1248,7 @@ ChatPage::getBackupVersion()
-                       nhlog::crypto()->info("Our backup key {} does not match the one "
-                                             "used in the online backup {}",
-                                             pubkey,
--                                            auth_data["public_key"]);
-+                                            auth_data["public_key"].get<std::string>());
-                       cache::client()->deleteBackupVersion();
-                       return;
-                   }
-@@ -1664,7 +1664,7 @@ ChatPage::isRoomActive(const QString &room_id)
- void
- ChatPage::removeAllNotifications()
- {
--#if defined(Q_OS_LINUX)
-+#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
-     notificationsManager->closeAllNotifications();
- #endif
- }
Index: patches/patch-src_LoginPage_h
===================================================================
RCS file: patches/patch-src_LoginPage_h
diff -N patches/patch-src_LoginPage_h
--- patches/patch-src_LoginPage_h	23 Feb 2023 09:14:06 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: src/LoginPage.h
---- src/LoginPage.h.orig
-+++ src/LoginPage.h
-@@ -100,6 +100,8 @@ class LoginPage : public QObject (public)
-         return "Nheko on Windows";
- #elif defined(Q_OS_FREEBSD)
-         return "Nheko on FreeBSD";
-+#elif defined(Q_OS_OPENBSD)
-+        return "Nheko on OpenBSD";
- #else
-         return "Nheko";
- #endif
Index: patches/patch-src_encryption_DeviceVerificationFlow_cpp
===================================================================
RCS file: patches/patch-src_encryption_DeviceVerificationFlow_cpp
diff -N patches/patch-src_encryption_DeviceVerificationFlow_cpp
--- patches/patch-src_encryption_DeviceVerificationFlow_cpp	20 Apr 2024 09:28:33 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-Fix build against fmt10
-e89e65dc17020772eb057414b4f0c5d6f4ad98d0
-
-Index: src/encryption/DeviceVerificationFlow.cpp
---- src/encryption/DeviceVerificationFlow.cpp.orig
-+++ src/encryption/DeviceVerificationFlow.cpp
-@@ -39,7 +39,7 @@ DeviceVerificationFlow::DeviceVerificationFlow(QObject
-   , deviceIds(std::move(deviceIds_))
-   , model_(model)
- {
--    nhlog::crypto()->debug("CREATING NEW FLOW, {}, {}", flow_type, (void *)this);
-+    nhlog::crypto()->debug("CREATING NEW FLOW, {}, {}", static_cast<int>(flow_type), (void *)this);
-     if (deviceIds.size() == 1)
-         deviceId = deviceIds.front();
- 
Index: patches/patch-src_main_cpp
===================================================================
RCS file: patches/patch-src_main_cpp
diff -N patches/patch-src_main_cpp
--- patches/patch-src_main_cpp	23 Feb 2023 09:14:06 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: src/main.cpp
---- src/main.cpp.orig
-+++ src/main.cpp
-@@ -162,7 +162,7 @@ main(int argc, char *argv[])
- 
-     // this needs to be after setting the application name. Or how would we find our settings
-     // file then?
--#if defined(Q_OS_LINUX) || defined(Q_OS_WIN) || defined(Q_OS_FREEBSD)
-+#if !defined(Q_OS_MACOS)
-     if (qgetenv("QT_SCALE_FACTOR").size() == 0) {
-         float factor = utils::scaleFactor();
- 
Index: patches/patch-src_notifications_Manager_h
===================================================================
RCS file: patches/patch-src_notifications_Manager_h
diff -N patches/patch-src_notifications_Manager_h
--- patches/patch-src_notifications_Manager_h	23 Feb 2023 09:21:48 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: src/notifications/Manager.h
---- src/notifications/Manager.h.orig
-+++ src/notifications/Manager.h
-@@ -55,7 +55,7 @@ public slots:
- #if defined(NHEKO_DBUS_SYS)
- public:
-     void closeNotifications(QString roomId);
--#if defined(Q_OS_LINUX)
-+#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)
-     void closeAllNotifications();
- #endif
- 
Index: patches/patch-src_timeline_InputBar_cpp
===================================================================
RCS file: patches/patch-src_timeline_InputBar_cpp
diff -N patches/patch-src_timeline_InputBar_cpp
--- patches/patch-src_timeline_InputBar_cpp	20 Apr 2024 09:28:33 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-Fix build against fmt10
-e89e65dc17020772eb057414b4f0c5d6f4ad98d0
-
-Index: src/timeline/InputBar.cpp
---- src/timeline/InputBar.cpp.orig
-+++ src/timeline/InputBar.cpp
-@@ -948,14 +948,15 @@ MediaUpload::MediaUpload(std::unique_ptr<QIODevice> so
-                 this,
-                 [mediaPlayer](QMediaPlayer::Error error) {
-                     nhlog::ui()->debug("Media player error {} and errorStr {}",
--                                       error,
-+                                       static_cast<int>(error),
-                                        mediaPlayer->errorString().toStdString());
-                 });
-         connect(mediaPlayer,
-                 &QMediaPlayer::mediaStatusChanged,
-                 [mediaPlayer](QMediaPlayer::MediaStatus status) {
--                    nhlog::ui()->debug(
--                      "Media player status {} and error {}", status, mediaPlayer->error());
-+                    nhlog::ui()->debug("Media player status {} and error {}",
-+                                       static_cast<int>(status),
-+                                       static_cast<int>(mediaPlayer->error()));
-                 });
-         connect(mediaPlayer,
-                 qOverload<const QString &, const QVariant &>(&QMediaPlayer::metaDataChanged),
Index: patches/patch-src_ui_MxcMediaProxy_cpp
===================================================================
RCS file: patches/patch-src_ui_MxcMediaProxy_cpp
diff -N patches/patch-src_ui_MxcMediaProxy_cpp
--- patches/patch-src_ui_MxcMediaProxy_cpp	20 Apr 2024 09:28:33 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-Fix build against fmt10
-e89e65dc17020772eb057414b4f0c5d6f4ad98d0
-
-Index: src/ui/MxcMediaProxy.cpp
---- src/ui/MxcMediaProxy.cpp.orig
-+++ src/ui/MxcMediaProxy.cpp
-@@ -37,11 +37,13 @@ MxcMediaProxy::MxcMediaProxy(QObject *parent)
-             qOverload<QMediaPlayer::Error>(&MxcMediaProxy::error),
-             [this](QMediaPlayer::Error error) {
-                 nhlog::ui()->info("Media player error {} and errorStr {}",
--                                  error,
-+                                  static_cast<int>(error),
-                                   this->errorString().toStdString());
-             });
-     connect(this, &MxcMediaProxy::mediaStatusChanged, [this](QMediaPlayer::MediaStatus status) {
--        nhlog::ui()->info("Media player status {} and error {}", status, this->error());
-+        nhlog::ui()->info("Media player status {} and error {}",
-+                          static_cast<int>(status),
-+                          static_cast<int>(this->error()));
-     });
-     connect(this,
-             qOverload<const QString &, const QVariant &>(&MxcMediaProxy::metaDataChanged),
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/nheko/pkg/PLIST,v
diff -u -r1.2 PLIST
--- pkg/PLIST	10 Sep 2022 16:26:36 -0000	1.2
+++ pkg/PLIST	8 Jul 2024 06:47:30 -0000
@@ -1,4 +1,12 @@
 @bin bin/nheko
+include/kdsingleapplication-qt6/
+include/kdsingleapplication-qt6/kdsingleapplication.h
+include/kdsingleapplication-qt6/kdsingleapplication_lib.h
+include/kdsingleapplication-qt6/kdsingleapplication_version.h
+lib/cmake/KDSingleApplication-qt6/
+lib/cmake/KDSingleApplication-qt6/KDSingleApplication-qt6Targets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/KDSingleApplication-qt6/KDSingleApplication-qt6Targets.cmake
+@so lib/libkdsingleapplication-qt6.so
 @man man/man1/nheko.1
 share/applications/nheko.desktop
 share/icons/hicolor/128x128/apps/nheko.png
? mtxclient-0.10.0-libmatrix_client.so.2.0
? mtxclient-0.9.2-libmatrix_client.so.2.0
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/mtxclient/Makefile,v
diff -u -r1.8 Makefile
--- Makefile	20 Apr 2024 09:27:50 -0000	1.8
+++ Makefile	8 Jul 2024 06:47:07 -0000
@@ -1,12 +1,11 @@
 COMMENT =	client API for Matrix, built on libcurl
 CATEGORIES =	devel
 
-SHARED_LIBS +=  matrix_client	2.0
+SHARED_LIBS +=  matrix_client	3.0
 
 GH_ACCOUNT =	Nheko-Reborn
 GH_PROJECT =	mtxclient
-GH_TAGNAME =	v0.9.2
-REVISION =	2
+GH_TAGNAME =	v0.10.0
 
 # MIT
 PERMIT_PACKAGE =	Yes
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/mtxclient/distinfo,v
diff -u -r1.3 distinfo
--- distinfo	23 Feb 2023 09:14:05 -0000	1.3
+++ distinfo	8 Jul 2024 06:47:07 -0000
@@ -1,2 +1,2 @@
-SHA256 (mtxclient-0.9.2.tar.gz) = 9Vgn/boibG/ECc8ADHKxPMbQaewTACg6cjmqGckMX1Y=
-SIZE (mtxclient-0.9.2.tar.gz) = 623481
+SHA256 (mtxclient-0.10.0.tar.gz) = lQLgqZnShzFy1Qu4A3HAYSZhJsfU245ERH63DJd7AjA=
+SIZE (mtxclient-0.10.0.tar.gz) = 633765
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/mtxclient/pkg/PLIST,v
diff -u -r1.3 PLIST
--- pkg/PLIST	23 Feb 2023 09:14:06 -0000	1.3
+++ pkg/PLIST	8 Jul 2024 06:47:07 -0000
@@ -7,6 +7,7 @@
 include/mtx/events/account_data/
 include/mtx/events/account_data/direct.hpp
 include/mtx/events/account_data/fully_read.hpp
+include/mtx/events/account_data/ignored_users.hpp
 include/mtx/events/aliases.hpp
 include/mtx/events/avatar.hpp
 include/mtx/events/canonical_alias.hpp
@@ -25,18 +26,20 @@
 include/mtx/events/member.hpp
 include/mtx/events/messages/
 include/mtx/events/messages/audio.hpp
-include/mtx/events/messages/confetti.hpp
+include/mtx/events/messages/elementeffect.hpp
 include/mtx/events/messages/emote.hpp
 include/mtx/events/messages/file.hpp
 include/mtx/events/messages/image.hpp
 include/mtx/events/messages/location.hpp
 include/mtx/events/messages/notice.hpp
 include/mtx/events/messages/text.hpp
+include/mtx/events/messages/unknown.hpp
 include/mtx/events/messages/video.hpp
 include/mtx/events/mscs/
 include/mtx/events/mscs/image_packs.hpp
 include/mtx/events/name.hpp
 include/mtx/events/nheko_extensions/
+include/mtx/events/nheko_extensions/event_expiry.hpp
 include/mtx/events/nheko_extensions/hidden_events.hpp
 include/mtx/events/pinned_events.hpp
 include/mtx/events/policy_rules.hpp
@@ -44,6 +47,7 @@
 include/mtx/events/presence.hpp
 include/mtx/events/reaction.hpp
 include/mtx/events/redaction.hpp
+include/mtx/events/server_acl.hpp
 include/mtx/events/spaces.hpp
 include/mtx/events/tag.hpp
 include/mtx/events/tombstone.hpp