diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..efd479f --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + qt6 + + diff --git a/libQuotient-0.6.11.tar.gz b/libQuotient-0.6.11.tar.gz deleted file mode 100644 index 1f45f31..0000000 --- a/libQuotient-0.6.11.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12b15d1296e630477d5e8f4d32c821dc724b3c5b99d15d383417ba7d88f03c46 -size 562144 diff --git a/libQuotient-0.8.1.1.tar.gz b/libQuotient-0.8.1.1.tar.gz new file mode 100644 index 0000000..751a084 --- /dev/null +++ b/libQuotient-0.8.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1ab944a4b42f68d2d2ebfb2782a3e92eac2b7e056c7f72af2ba3b3ddf2fd735 +size 730335 diff --git a/libQuotient.changes b/libQuotient.changes index 40b2597..7d747e6 100644 --- a/libQuotient.changes +++ b/libQuotient.changes @@ -1,3 +1,74 @@ +------------------------------------------------------------------- +Sat Aug 19 21:37:21 UTC 2023 - Christophe Marin + +- Update to 0.8.1.1 + * Got rid of deprecated RoomPinnedEvent name + (gh#quotient-im/libQuotient#680) + * Fixed session verification (gh#quotient-im/libQuotient#682) + * Constified Room::userIdsAtEvent() + (gh#quotient-im/libQuotient#686) + * Enhanced logging around key verification + (gh#quotient-im/libQuotient#690) + * Made it possible to use the key backup client-server API + in the backend (gh#quotient-im/libQuotient#693) + * Constrained the e-mail logic in linkifyUrl() so that it + doesn't trigger in the middle of another URL + (gh#quotient-im/libQuotient#698) + +------------------------------------------------------------------- +Wed Aug 9 17:21:54 UTC 2023 - Christophe Marin + +- Update to 0.8.0. Check + https://github.com/quotient-im/libQuotient/releases for older + changes list. + * Fixed AccountRegistry::invokeLogin() to still add Connection + objects after successfully connecting them to the homeserver + (gh#quotient-im/libQuotient#675) + * pinned events actually follow the specification (and + therefore, interoperable) (gh#quotient-im/libQuotient#677) +- Add a Qt6 flavor. Needed by the KDE CI +- Enable E2EE by default. This will be required by neochat soon. + +------------------------------------------------------------------- +Wed Dec 21 04:58:08 UTC 2022 - Dead Mozay + +- Update to version 0.7.0: + * E2EE is the biggest part of this release, + + The following parts of E2EE are known to work: + - foundations additional contributions and refactoring. + - Olm/Megolm signalling with our parties/devices. + - managing device and one-time keys. + - sending and receiving (monstrous new encrypted messages. + - encrypting/decrypting attachment. + - retrieval and decryption of historical messages keys + for which are already in the database. + - device verification. + + What is not there yet: + - historical Megolm sessions are not requested from other + devices/parties, so you will see quite a few undecryptable + messages in rooms with past communication - this might be + fixed (if possible without breaking the API) in further + 0.7.x releases. + - secure server-side storage (SSSS) is not supported at + all for now, and will likely require API breakage so + will come in 0.8. + - soft logout is not supported; this is also a subject of 0.8. + + Because there's no soft logout the database for a given account + is completely reset upon a successful login attempt. This may + come as a very unpleasant surprise if you don't keep your + login session between client restarts; but this is a necessary + trade-off for the current feature set (see #546 for the + discussion). Together with the rest of the above not-there-yet + list, this means that you MUST NOT use E2EE with + libQuotient-backed clients as your only device(s) on + the account - there's quite a risk of losing encrypted + conversations if anything happens to the database libQuotient + keeps key material in, or if you lose your session and have + to log in again. Did I mention the whole E2EE functionality + is still in beta? Client authors are strongly recommended + to show big scary warnings against E2EE for now. + * Read markers -> read receipts + fully read markers. + ------------------------------------------------------------------- Thu Oct 7 08:37:12 UTC 2021 - Dead Mozay diff --git a/libQuotient.spec b/libQuotient.spec index b1ced35..3f6a5fc 100644 --- a/libQuotient.spec +++ b/libQuotient.spec @@ -16,54 +16,121 @@ # -%define soversion 0_6 -%define sonum 0.6 -%bcond_with e2ee -Name: libQuotient -Version: 0.6.11 +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "qt6" +%define qt6 1 +%define pkg_suffix -qt6 +%define lib_suffix Qt6 +%endif +%define soversion 0_8 +%define sonum 0.8 +%define rname libQuotient +%bcond_without e2ee +Name: libQuotient%{?pkg_suffix} +Version: 0.8.1.1 Release: 0 Summary: Library for Qt Matrix Clients License: LGPL-2.1-only Group: Development/Libraries/C and C++ URL: https://github.com/quotient-im/libQuotient -Source0: https://github.com/quotient-im/%{name}/archive/%{version}/%{name}-%{version}.tar.gz +Source0: https://github.com/quotient-im/%{rname}/archive/%{version}/%{rname}-%{version}.tar.gz BuildRequires: cmake -BuildRequires: gcc-c++ +# c++-20 required +%if 0%{?suse_version} < 1550 +BuildRequires: gcc12-c++ +BuildRequires: gcc12-PIE +%endif BuildRequires: pkgconfig -BuildRequires: pkgconfig(Qt5Core) >= 5.9 -BuildRequires: pkgconfig(Qt5Gui) -BuildRequires: pkgconfig(Qt5Multimedia) -BuildRequires: pkgconfig(Qt5Network) +%if 0%{?qt6} +BuildRequires: cmake(Qt6Concurrent) +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6Keychain) +BuildRequires: cmake(Qt6Network) +BuildRequires: cmake(Qt6Test) +%else +BuildRequires: cmake(Qt5Concurrent) +BuildRequires: cmake(Qt5Core) >= 5.5 +BuildRequires: cmake(Qt5Gui) +BuildRequires: cmake(Qt5Keychain) +BuildRequires: cmake(Qt5Multimedia) +BuildRequires: cmake(Qt5Network) +BuildRequires: cmake(Qt5Test) +%endif %if %{with e2ee} -BuildRequires: cmake(Olm) +BuildRequires: cmake(Olm) >= 3.2.5 +BuildRequires: pkgconfig(openssl) +%if 0%{?qt6} +BuildRequires: cmake(Qt6Sql) +Requires: qt6-sql-sqlite +%else +BuildRequires: cmake(Qt5Sql) +Requires: libQt5Sql5-sqlite +%endif %endif %description Library for Qt-based Matrix chat clients. It is required by Quaternion. -%package -n %{name}%{soversion} +%package -n libQuotient%{?qt6:%{lib_suffix}-}%{soversion} Summary: Library for Qt Matrix Clients Group: System/Libraries -%description -n %{name}%{soversion} +%description -n libQuotient%{?qt6:%{lib_suffix}-}%{soversion} Library for Qt-based Matrix chat clients. It is required by Quaternion. -%package devel -Summary: Development files for %{name} +%package -n libQuotient%{?pkg_suffix}-devel +Summary: Development files for libQuotient Group: Development/Libraries/C and C++ -Requires: %{name}%{soversion} = %{version} +Requires: libQuotient%{?qt6:%{lib_suffix}-}%{soversion} = %{version} +%if 0%{?qt6} +Requires: cmake(Qt6Gui) +Requires: cmake(Qt6Network) +%if %{with e2ee} +Requires: cmake(Qt6Sql) +%endif +Requires: cmake(Qt6Keychain) +%else +Requires: cmake(Qt5Gui) +Requires: cmake(Qt5Multimedia) +Requires: cmake(Qt5Network) +%if %{with e2ee} +Requires: cmake(Qt5Sql) +%endif +Requires: cmake(Qt5Keychain) +%endif +Requires: cmake(Olm) +Requires: pkgconfig(openssl) +# The devel packages are not coinstallable in the 0.8 release +%if 0%{?qt6} +Conflicts: libQuotient-devel +%endif -%description devel -The %{name}-devel package contains libraries and header files for -developing applications that use %{name}. +%description -n libQuotient%{?pkg_suffix}-devel +The libQuotient devel package contains libraries and header files for +developing applications that use libQuotient. %prep -%autosetup -p1 +%autosetup -p1 -n %{rname}-%{version} %build +%if 0%{?suse_version} < 1550 + export CXX=g++-12 +%endif + +%if 0%{?qt6} +%cmake_qt6 \ + -DBUILD_WITH_QT6=ON \ + -DBUILD_SHARED_LIBS=ON \ +%if 0%{?suse_version} < 1550 + -DCMAKE_C_COMPILER:STRING=gcc-12 \ + -DCMAKE_CXX_COMPILER:STRING=g++-12 \ +%endif +%else %cmake \ +%endif -DQuotient_INSTALL_TESTS=OFF \ %if %{with e2ee} -DQuotient_ENABLE_E2EE=ON @@ -71,28 +138,40 @@ developing applications that use %{name}. -DQuotient_ENABLE_E2EE=OFF %endif +%if 0%{?qt6} +%qt6_build +%else %cmake_build +%endif %install +%if 0%{?qt6} +%qt6_install +%else %cmake_install +%endif + +%check +# testolmaccount needs a local server +%ctest --exclude-regex 'testolmaccount' + # Not useful rm -r %{buildroot}%{_datadir}/ndk-modules/ -%post -n %{name}%{soversion} -p /sbin/ldconfig -%postun -n %{name}%{soversion} -p /sbin/ldconfig +%ldconfig_scriptlets -n libQuotient%{?qt6:%{lib_suffix}-}%{soversion} -%files -n %{name}%{soversion} +%files -n libQuotient%{?qt6:%{lib_suffix}-}%{soversion} %doc README.md %license COPYING -%{_libdir}/libQuotient.so.%{version} -%{_libdir}/libQuotient.so.%{sonum} +%{_libdir}/libQuotient%{?qt6:%{lib_suffix}}.so.%{version} +%{_libdir}/libQuotient%{?qt6:%{lib_suffix}}.so.%{sonum} -%files devel +%files -n libQuotient%{?pkg_suffix}-devel %doc README.md %license COPYING -%{_libdir}/pkgconfig/Quotient.pc -%{_libdir}/libQuotient.so -%{_libdir}/cmake/Quotient/ +%{_libdir}/pkgconfig/Quotient%{?qt6:%{lib_suffix}}.pc +%{_libdir}/libQuotient%{?qt6:%{lib_suffix}}.so +%{_libdir}/cmake/Quotient%{?qt6:%{lib_suffix}}/ %{_includedir}/Quotient/ %changelog