From: Landry Breuil Subject: [update] nheko 0.12/mtxclient 0.10 To: ports@openbsd.org Date: Mon, 8 Jul 2024 09:05:44 +0200 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 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(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()); - 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(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 so - this, - [mediaPlayer](QMediaPlayer::Error error) { - nhlog::ui()->debug("Media player error {} and errorStr {}", -- error, -+ static_cast(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(status), -+ static_cast(mediaPlayer->error())); - }); - connect(mediaPlayer, - qOverload(&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(&MxcMediaProxy::error), - [this](QMediaPlayer::Error error) { - nhlog::ui()->info("Media player error {} and errorStr {}", -- error, -+ static_cast(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(status), -+ static_cast(this->error())); - }); - connect(this, - qOverload(&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