diff --git a/net-im/libquotient/Makefile b/net-im/libquotient/Makefile index 391de8c11914..b749b8c89d15 100644 --- a/net-im/libquotient/Makefile +++ b/net-im/libquotient/Makefile @@ -1,33 +1,38 @@ PORTNAME= libquotient -DISTVERSION= 0.7.1 -PORTREVISION= 2 +DISTVERSION= 0.8.0 CATEGORIES= net-im MAINTAINER= adridg@FreeBSD.org COMMENT= Matrix IM support library using Qt technologies WWW= https://github.com/quotient-im/libQuotient LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING -LIB_DEPENDS= libqt5keychain.so:security/qtkeychain@qt5 +LIB_DEPENDS= libqt5keychain.so:security/qtkeychain@qt5 \ + libolm.so:security/olm -USES= cmake qt:5 tar:xz +USES= cmake compiler:c++20-lang qt:5 tar:xz USE_QT= concurrent core gui multimedia network \ buildtools:build qmake:build testlib:build CONFLICTS= libqmatrixclient\* USE_GITHUB= yes GH_ACCOUNT= quotient-im GH_PROJECT= libQuotient -CMAKE_ARGS= -DQuotient_INSTALL_TESTS=OFF +CMAKE_OFF= Quotient_INSTALL_TESTS +CMAKE_ON= Quotient_ENABLE_E2EE + +.include # Work around compiler bug, see pr: 272285 +.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400091 USES+= llvm -CC= ${LLVM_PREFIX}/bin/clang -CPP= ${LLVM_PREFIX}/bin/clang-cpp -CXX= ${LLVM_PREFIX}/bin/clang++ +CC= clang${LLVM_VERSION} +CXX= clang++${LLVM_VERSION} +CPP= clang-cpp${LLVM_VERSION} +.endif .include diff --git a/net-im/libquotient/distinfo b/net-im/libquotient/distinfo index 44d79884ee12..0879ae4193f4 100644 --- a/net-im/libquotient/distinfo +++ b/net-im/libquotient/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1674316637 -SHA256 (quotient-im-libQuotient-0.7.1_GH0.tar.gz) = 48b15c666528405219ff0be8f0f336405c64deb1719115af75ef099cb3f86555 -SIZE (quotient-im-libQuotient-0.7.1_GH0.tar.gz) = 667590 +TIMESTAMP = 1688499360 +SHA256 (quotient-im-libQuotient-0.8.0_GH0.tar.gz) = 40d84c2a1ed8c57605836dd175aabd069aed33c77b6bd841391631607b8c3a76 +SIZE (quotient-im-libQuotient-0.8.0_GH0.tar.gz) = 725645 diff --git a/net-im/libquotient/files/patch-lib_qt__connection__util.h b/net-im/libquotient/files/patch-lib_qt__connection__util.h index a1ee6b2cbc57..0c4499ceca0e 100644 --- a/net-im/libquotient/files/patch-lib_qt__connection__util.h +++ b/net-im/libquotient/files/patch-lib_qt__connection__util.h @@ -1,52 +1,52 @@ The call std::bind_front() below only works from LLVM 14 on because libc++ needs https://reviews.llvm.org/D107199 to work correctly, otherwise uses of connectSingleShot() fail. See net-im/neochat for example [1]: In file included from /wrkdirs/usr/ports/net-im/neochat/work/neochat-23.04.2/src/controller.cpp:5: In file included from /wrkdirs/usr/ports/net-im/neochat/work/neochat-23.04.2/src/controller.h:6: In file included from /usr/local/include/qt5/QtCore/QObject:1: In file included from /usr/local/include/qt5/QtCore/qobject.h:46: In file included from /usr/local/include/qt5/QtCore/qobjectdefs.h:48: In file included from /usr/local/include/qt5/QtCore/qnamespace.h:43: In file included from /usr/local/include/qt5/QtCore/qglobal.h:142: In file included from /usr/include/c++/v1/algorithm:653: In file included from /usr/include/c++/v1/functional:495: In file included from /usr/include/c++/v1/__functional/bind_front.h:14: /usr/include/c++/v1/__functional/perfect_forward.h:77:9: error: no matching constructor for initialization of 'tuple' __bound_(_VSTD::forward<_BoundArgs>(__bound)...) { } ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/Quotient/qt_connection_util.h:22:14: note: in instantiation of function template specialization 'std::__perfect_forward_impl, std::__tuple_indices<0, 1>>::__perfect_forward_impl, std::__tuple_indices<0, 1>> &>' requested here [slotLike, pConn = std::move(pConn)](const auto&... args) ^ /usr/local/include/Quotient/qt_connection_util.h:93:23: note: in instantiation of function template specialization 'Quotient::_impl::connect, std::__tuple_indices<0, 1>>>' requested here return _impl::connect<_impl::SingleShot>( ^ /wrkdirs/usr/ports/net-im/neochat/work/neochat-23.04.2/src/controller.cpp:372:25: note: in instantiation of function template specialization 'Quotient::connectSingleShot' requested here connectSingleShot(connection, &Connection::syncDone, this, &Controller::initiated); ^ [1] https://pkg-status.freebsd.org/beefy2/data/124amd64-quarterly/8898bf465b47/logs/neochat-23.04.2.log ---- lib/qt_connection_util.h -+++ lib/qt_connection_util.h +--- Quotient/qt_connection_util.h ++++ Quotient/qt_connection_util.h @@ -3,6 +3,8 @@ #pragma once +#include // For __FreeBSD_version + #include "function_traits.h" #include @@ -81,7 +83,10 @@ inline auto connectSingleShot(auto* sender, auto signal, ContextT* context, // object has to be pre-bound to the slot to make it self-contained if constexpr (_impl::PmfSlot) { auto&& boundSlot = -# if __cpp_lib_bind_front // Needs Apple Clang 13 (other platforms are fine) +# if __cpp_lib_bind_front && \ + (!defined(__FreeBSD_version) || __FreeBSD_version >= 1301504) + // This requires LLVM >= 14, this only works with libc++ commit + // https://reviews.llvm.org/D107199. std::bind_front(slot, context); # else [context, slot](const auto&... args) diff --git a/net-im/libquotient/pkg-plist b/net-im/libquotient/pkg-plist index 69932899c66d..1d2f62c523c6 100644 --- a/net-im/libquotient/pkg-plist +++ b/net-im/libquotient/pkg-plist @@ -1,157 +1,161 @@ include/Quotient/accountregistry.h include/Quotient/application-service/definitions/location.h include/Quotient/application-service/definitions/protocol.h include/Quotient/application-service/definitions/user.h include/Quotient/avatar.h +include/Quotient/connection_p.h include/Quotient/connection.h include/Quotient/connectiondata.h +include/Quotient/connectionencryptiondata_p.h include/Quotient/converters.h include/Quotient/csapi/account-data.h include/Quotient/csapi/admin.h include/Quotient/csapi/administrative_contact.h include/Quotient/csapi/appservice_room_directory.h include/Quotient/csapi/banning.h include/Quotient/csapi/capabilities.h include/Quotient/csapi/content-repo.h include/Quotient/csapi/create_room.h include/Quotient/csapi/cross_signing.h include/Quotient/csapi/definitions/auth_data.h include/Quotient/csapi/definitions/client_device.h include/Quotient/csapi/definitions/cross_signing_key.h include/Quotient/csapi/definitions/device_keys.h include/Quotient/csapi/definitions/event_filter.h include/Quotient/csapi/definitions/openid_token.h include/Quotient/csapi/definitions/public_rooms_response.h include/Quotient/csapi/definitions/push_condition.h include/Quotient/csapi/definitions/push_rule.h include/Quotient/csapi/definitions/push_ruleset.h include/Quotient/csapi/definitions/request_email_validation.h include/Quotient/csapi/definitions/request_msisdn_validation.h include/Quotient/csapi/definitions/request_token_response.h include/Quotient/csapi/definitions/room_event_filter.h include/Quotient/csapi/definitions/sync_filter.h include/Quotient/csapi/definitions/third_party_signed.h include/Quotient/csapi/definitions/user_identifier.h include/Quotient/csapi/definitions/wellknown/full.h include/Quotient/csapi/definitions/wellknown/homeserver.h include/Quotient/csapi/definitions/wellknown/identity_server.h include/Quotient/csapi/device_management.h include/Quotient/csapi/directory.h include/Quotient/csapi/event_context.h include/Quotient/csapi/filter.h include/Quotient/csapi/inviting.h include/Quotient/csapi/joining.h include/Quotient/csapi/keys.h include/Quotient/csapi/kicking.h include/Quotient/csapi/knocking.h include/Quotient/csapi/leaving.h include/Quotient/csapi/list_joined_rooms.h include/Quotient/csapi/list_public_rooms.h +include/Quotient/csapi/login_token.h include/Quotient/csapi/login.h include/Quotient/csapi/logout.h include/Quotient/csapi/message_pagination.h include/Quotient/csapi/notifications.h include/Quotient/csapi/openid.h include/Quotient/csapi/peeking_events.h include/Quotient/csapi/presence.h include/Quotient/csapi/profile.h include/Quotient/csapi/pusher.h include/Quotient/csapi/pushrules.h include/Quotient/csapi/read_markers.h include/Quotient/csapi/receipts.h include/Quotient/csapi/redaction.h include/Quotient/csapi/refresh.h include/Quotient/csapi/registration.h include/Quotient/csapi/registration_tokens.h include/Quotient/csapi/relations.h include/Quotient/csapi/report_content.h +include/Quotient/csapi/room_event_by_timestamp.h include/Quotient/csapi/room_send.h include/Quotient/csapi/room_state.h include/Quotient/csapi/room_upgrades.h include/Quotient/csapi/rooms.h include/Quotient/csapi/search.h include/Quotient/csapi/space_hierarchy.h include/Quotient/csapi/sso_login_redirect.h include/Quotient/csapi/tags.h include/Quotient/csapi/third_party_lookup.h include/Quotient/csapi/third_party_membership.h include/Quotient/csapi/threads_list.h include/Quotient/csapi/to_device.h include/Quotient/csapi/typing.h include/Quotient/csapi/users.h include/Quotient/csapi/versions.h include/Quotient/csapi/voip.h include/Quotient/csapi/wellknown.h include/Quotient/csapi/whoami.h include/Quotient/database.h include/Quotient/e2ee/e2ee_common.h include/Quotient/e2ee/qolmaccount.h include/Quotient/e2ee/qolminboundsession.h include/Quotient/e2ee/qolmmessage.h include/Quotient/e2ee/qolmoutboundsession.h include/Quotient/e2ee/qolmsession.h include/Quotient/e2ee/qolmutility.h include/Quotient/eventitem.h include/Quotient/events/accountdataevents.h include/Quotient/events/callevents.h include/Quotient/events/directchatevent.h include/Quotient/events/encryptedevent.h include/Quotient/events/encryptionevent.h include/Quotient/events/event.h include/Quotient/events/eventcontent.h include/Quotient/events/eventloader.h include/Quotient/events/eventrelation.h include/Quotient/events/filesourceinfo.h include/Quotient/events/keyverificationevent.h include/Quotient/events/reactionevent.h include/Quotient/events/receiptevent.h include/Quotient/events/redactionevent.h include/Quotient/events/roomavatarevent.h include/Quotient/events/roomcanonicalaliasevent.h include/Quotient/events/roomcreateevent.h include/Quotient/events/roomevent.h include/Quotient/events/roomkeyevent.h include/Quotient/events/roommemberevent.h include/Quotient/events/roommessageevent.h include/Quotient/events/roompowerlevelsevent.h include/Quotient/events/roomtombstoneevent.h include/Quotient/events/simplestateevents.h include/Quotient/events/single_key_value.h include/Quotient/events/stateevent.h include/Quotient/events/stickerevent.h include/Quotient/events/typingevent.h include/Quotient/eventstats.h include/Quotient/expected.h include/Quotient/function_traits.h include/Quotient/identity/definitions/request_email_validation.h include/Quotient/identity/definitions/request_msisdn_validation.h include/Quotient/jobs/basejob.h include/Quotient/jobs/downloadfilejob.h include/Quotient/jobs/mediathumbnailjob.h include/Quotient/jobs/requestdata.h include/Quotient/jobs/syncjob.h include/Quotient/keyverificationsession.h -include/Quotient/logging.h +include/Quotient/logging_categories_p.h include/Quotient/mxcreply.h include/Quotient/networkaccessmanager.h include/Quotient/networksettings.h include/Quotient/omittable.h include/Quotient/qt_connection_util.h include/Quotient/quotient_common.h include/Quotient/quotient_export.h include/Quotient/room.h include/Quotient/roomstateview.h include/Quotient/settings.h include/Quotient/ssosession.h include/Quotient/syncdata.h include/Quotient/uri.h include/Quotient/uriresolver.h include/Quotient/user.h include/Quotient/util.h lib/cmake/Quotient/QuotientConfig.cmake lib/cmake/Quotient/QuotientConfigVersion.cmake lib/cmake/Quotient/QuotientTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/Quotient/QuotientTargets.cmake lib/libQuotient.a libdata/pkgconfig/Quotient.pc share/ndk-modules/Android.mk