diff --git a/SOURCES/nextcloud-client-2.3.3-syslibs.patch b/SOURCES/nextcloud-client-2.3.3-syslibs.patch new file mode 100644 index 0000000..6e5bd8a --- /dev/null +++ b/SOURCES/nextcloud-client-2.3.3-syslibs.patch @@ -0,0 +1,88 @@ +diff -urNr client-2.3.0-orig/src/3rdparty/qtsingleapplication/qtlocalpeer.h client-2.3.0/src/3rdparty/qtsingleapplication/qtlocalpeer.h +--- client-2.3.0-orig/src/3rdparty/qtsingleapplication/qtlocalpeer.h 2016-09-27 10:53:37.000000000 +0200 ++++ client-2.3.0/src/3rdparty/qtsingleapplication/qtlocalpeer.h 2016-10-11 07:58:58.953393364 +0200 +@@ -27,7 +27,7 @@ + ** + ****************************************************************************/ + +-#include ++#include + + #include + #include +diff -urNr client-2.3.0-orig/src/gui/application.cpp client-2.3.0/src/gui/application.cpp +--- client-2.3.0-orig/src/gui/application.cpp 2016-09-27 10:53:37.000000000 +0200 ++++ client-2.3.0/src/gui/application.cpp 2016-10-11 08:00:25.875964871 +0200 +@@ -92,7 +92,7 @@ + // ---------------------------------------------------------------------------------- + + Application::Application(int &argc, char **argv) : +- SharedTools::QtSingleApplication(Theme::instance()->appName() ,argc, argv), ++ QtSingleApplication(Theme::instance()->appName() ,argc, argv), + _gui(0), + _theme(Theme::instance()), + _helpOnly(false), +diff -urNr client-2.3.0-orig/src/gui/application.h client-2.3.0/src/gui/application.h +--- client-2.3.0-orig/src/gui/application.h 2016-09-27 10:53:37.000000000 +0200 ++++ client-2.3.0/src/gui/application.h 2016-10-11 08:01:58.240768785 +0200 +@@ -22,7 +22,7 @@ + #include + #include + +-#include "qtsingleapplication.h" ++#include "QtSolutions/QtSingleApplication" + + #include "syncresult.h" + #include "logbrowser.h" +@@ -49,7 +49,7 @@ + * @brief The Application class + * @ingroup gui + */ +-class Application : public SharedTools::QtSingleApplication ++class Application : public QtSingleApplication + { + Q_OBJECT + public: +diff -urNr client-2.3.0-orig/src/gui/CMakeLists.txt client-2.3.0/src/gui/CMakeLists.txt +--- client-2.3.0-orig/src/gui/CMakeLists.txt 2016-09-27 10:53:37.000000000 +0200 ++++ client-2.3.0/src/gui/CMakeLists.txt 2016-10-11 08:05:03.906753374 +0200 +@@ -147,10 +147,6 @@ + + set(3rdparty_SRC + ../3rdparty/QProgressIndicator/QProgressIndicator.cpp +- ../3rdparty/qtlockedfile/qtlockedfile.cpp +- ../3rdparty/qtsingleapplication/qtlocalpeer.cpp +- ../3rdparty/qtsingleapplication/qtsingleapplication.cpp +- ../3rdparty/qtsingleapplication/qtsinglecoreapplication.cpp + ) + + if (APPLE) +@@ -161,18 +157,10 @@ + ) + endif() + +-if(NOT WIN32) +- list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_unix.cpp) +-else() +- list(APPEND 3rdparty_SRC ../3rdparty/qtlockedfile/qtlockedfile_win.cpp ) +-endif() +- + set(3rdparty_INC + ${CMAKE_SOURCE_DIR}/src/3rdparty/qjson + ${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator +- ${CMAKE_SOURCE_DIR}/src/3rdparty/qtlockedfile + ${CMAKE_SOURCE_DIR}/src/3rdparty/qtmacgoodies/src +- ${CMAKE_SOURCE_DIR}/src/3rdparty/qtsingleapplication + ) + + include_directories(${3rdparty_INC}) +@@ -298,6 +286,8 @@ + target_link_libraries( ${APPLICATION_EXECUTABLE} ${QT_LIBRARIES} ) + target_link_libraries( ${APPLICATION_EXECUTABLE} ${synclib_NAME} ) + target_link_libraries( ${APPLICATION_EXECUTABLE} updater ) ++target_link_libraries( ${APPLICATION_EXECUTABLE} Qt5Solutions_LockedFile-2.4 ) ++target_link_libraries( ${APPLICATION_EXECUTABLE} Qt5Solutions_SingleApplication-2.6 ) + target_link_libraries( ${APPLICATION_EXECUTABLE} ${OS_SPECIFIC_LINK_LIBRARIES} ) + + if(WITH_CRASHREPORTER) + diff --git a/SOURCES/xcb.patch b/SOURCES/xcb.patch new file mode 100644 index 0000000..018c63a --- /dev/null +++ b/SOURCES/xcb.patch @@ -0,0 +1,29 @@ +--- desktop-3.2.2-orig/src/gui/main.cpp 2021-06-14 20:40:51.378471413 -0400 ++++ desktop-3.2.2/src/gui/main.cpp 2021-06-14 20:42:21.630180229 -0400 +@@ -49,8 +49,26 @@ + .arg(Theme::instance()->appNameGUI())); + } + ++#ifdef Q_OS_LINUX ++void wayland_hacks() ++{ ++ QByteArray currentDesktop = qgetenv("XDG_CURRENT_DESKTOP").toLower(); ++ QByteArray sessionDesktop = qgetenv("XDG_SESSION_DESKTOP").toLower(); ++ QByteArray sessionType = qgetenv("XDG_SESSION_TYPE").toLower(); ++ if (sessionType.contains("wayland") && (currentDesktop.contains("gnome") || sessionDesktop.contains("gnome"))) ++ { ++ qputenv("QT_QPA_PLATFORM", "xcb"); ++ } ++} ++#endif ++ + int main(int argc, char **argv) + { ++ ++#ifdef Q_OS_LINUX ++wayland_hacks(); ++#endif ++ + Q_INIT_RESOURCE(resources); + Q_INIT_RESOURCE(theme); + diff --git a/SPECS/nextcloud-client.spec b/SPECS/nextcloud-client.spec index 5983ccf..43d5972 100644 --- a/SPECS/nextcloud-client.spec +++ b/SPECS/nextcloud-client.spec @@ -1,15 +1,16 @@ +%undefine __cmake_in_source_build +%undefine _cmake_skip_rpath %global _hardened_build 1 Name: nextcloud-client -Version: 2.6.4 +Version: 3.2.4 Release: 1%{?dist} Summary: The Nextcloud Client # -libs are LGPLv2+, rest GPLv2 License: LGPLv2+ and GPLv2 Url: https://nextcloud.com/install/#install-clients -#Source0: https://github.com/nextcloud/desktop/archive/desktop-%{version}.tar.gz -Source0: https://github.com/nextcloud/desktop/archive/v%{version}.tar.gz +Source0: https://github.com/nextcloud/desktop/archive/v%{version}/desktop-%{version}.tar.gz Source1: nextcloud.appdata.xml # The patch does 3 things: # - Depends on system lib for QtSingleApplication and QtLockedFile @@ -19,28 +20,40 @@ Source1: nextcloud.appdata.xml # These fix are needed because the system wide QtSingleApplication is slightly # different from the bundled one. #Patch0: %%{name}-%%{version}-syslibs.patch +# Patch0: fixes GNOME quirks on Wayland sessions. Read +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3BVLBS4B3XHJEXFVGD7RK2ZMXZG6JQZT/ +Patch2: xcb.patch BuildRequires: check +BuildRequires: chrpath BuildRequires: cmake BuildRequires: desktop-file-utils BuildRequires: doxygen BuildRequires: pkgconfig(gio-2.0) +BuildRequires: inotify-tools-devel +BuildRequires: libcloudproviders-devel BuildRequires: libappstream-glib BuildRequires: neon-devel BuildRequires: openssl-devel +BuildRequires: pkgconfig(dbus-1) BuildRequires: python3-sphinx BuildRequires: qtlockedfile-qt5-devel -BuildRequires: qtkeychain-qt5-devel >= 0.7.0 +BuildRequires: qtkeychain-qt5-devel BuildRequires: qtsingleapplication-qt5-devel BuildRequires: qt5-qtbase BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qtbase-private-devel BuildRequires: qt5-qtbase-gui BuildRequires: qt5-qtwebkit-devel BuildRequires: qt5-qtxmlpatterns-devel -BuildRequires: qt5-qttools qt5-qttools-devel +BuildRequires: qt5-qttools +BuildRequires: qt5-qttools-devel +BuildRequires: qt5-qtquickcontrols2-devel BuildRequires: qt5-qtwebengine-devel +BuildRequires: qt5-qtwebsockets-devel BuildRequires: qt5-qtsvg-devel BuildRequires: extra-cmake-modules +BuildRequires: inkscape # Plasma 5 Dolphin integration %if 0%{?fedora} >= 24 || 0%{?rhel} > 7 BuildRequires: kf5-kio-devel @@ -49,6 +62,10 @@ BuildRequires: kf5-rpm-macros %endif BuildRequires: sqlite-devel Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%if 0%{?fedora} && 0%{?fedora} < 33 +# concerning libgnome-keyring read https://bugzilla.redhat.com/show_bug.cgi?id=1652973 +Requires: libgnome-keyring +%endif Provides: mirall = %{version}-%{release} Obsoletes: mirall < 1.8.0 @@ -134,23 +151,22 @@ The nextcloud desktop client dolphin extension. %prep %setup -q -n desktop-%{version} -#rm -rf src/3rdparty/qtlockedfile src/3rdparty/qtsingleapplication -sed 's/OpenSSL 1.1/OpenSSL 1.0/g' -i CMakeLists.txt +%patch2 -p1 +# change compiler flag +sed -i 's/-fPIE/-fPIC/g' src/gui/CMakeLists.txt +sed -i 's/-fPIE/-fPIC/g' src/cmd/CMakeLists.txt %build -mkdir build -pushd build -### ### ### %cmake_kf5 .. -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" -%cmake3 .. -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" -make %{?_smp_mflags} -popd +%cmake_kf5 \ + -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" \ + -DNO_SHIBBOLETH=1 +%cmake_build %install -pushd build -make install DESTDIR=%{buildroot} -popd +%cmake_install + %find_lang client --with-qt mkdir -p %{buildroot}%{_datadir}/appdata/ install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/appdata/nextcloud.appdata.xml @@ -183,14 +199,17 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/nextcloud. %files -f client.lang %{_bindir}/nextcloud %{_bindir}/nextcloudcmd -%{_datadir}/applications/nextcloud.desktop +%{_datadir}/mime/packages/nextcloud.xml +%{_datadir}/applications/com.nextcloud.desktopclient.nextcloud.desktop %{_datadir}/icons/hicolor/*/apps/* %{_datadir}/appdata/nextcloud.appdata.xml +%{_datadir}/cloud-providers/com.nextcloudgmbh.Nextcloud.ini +%{_datadir}/dbus-1/services/com.nextcloudgmbh.Nextcloud.service %files libs %{_libdir}/libnextcloudsync.so.0 %{_libdir}/libnextcloudsync.so.%%{version} -%{_libdir}/nextcloud/libocsync.so.* +%{_libdir}/libnextcloud_csync.so* %doc README.md %config %{_sysconfdir}/Nextcloud/sync-exclude.lst %dir %{_sysconfdir}/Nextcloud @@ -198,7 +217,6 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/nextcloud. %files devel %{_includedir}/nextcloudsync/ %{_libdir}/libnextcloudsync.so -%{_libdir}/nextcloud/libocsync.so %files nautilus %{_datadir}/nautilus-python/extensions/* @@ -221,6 +239,114 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/nextcloud. %endif %changelog +* Wed Jul 07 2021 Mukundan Ragavan - 3.2.4-1 +- Update to 3.2.4 + +* Thu Jun 24 2021 Mukundan Ragavan - 3.2.3-1 +- Update to 3.2.3 +- Add inkscape as buildrequires + +* Mon Jun 14 2021 Mukundan Ragavan - 3.2.2-2 +- Fix patch + +* Sat Jun 05 2021 Mukundan Ragavan - 3.2.2-1 +- Update to 3.2.2 + +* Mon May 03 2021 Mukundan Ragavan - 3.2.1-2 +- Replace picpie patch with sed (fixes FTBFS) + +* Sat May 01 2021 Germano Massullo - 3.2.1-1 +- 3.2.1 release + +* Sat May 01 2021 Germano Massullo - 3.2.0-2 +- added xcb.patch that fixes GNOME quirks on Wayland sessions. Read https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3BVLBS4B3XHJEXFVGD7RK2ZMXZG6JQZT/ + +* Thu Apr 08 2021 Mukundan Ragavan - 3.2.0-1 +- Update to 3.2.0 + +* Thu Mar 11 2021 Mukundan Ragavan - 3.1.3-1 +- Update to 3.1.3 + +* Tue Jan 26 2021 Fedora Release Engineering - 3.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Dec 23 2020 Mukundan Ragavan - 3.1.1-1 +- Update to 3.1.1 + +* Tue Dec 22 2020 Mukundan Ragavan - 3.1.0-1 +- Update to 3.1.0 +- Add qtbase-private as buildrequires + +* Fri Oct 30 2020 Mukundan Ragavan - 3.0.3-1 +- Update to 3.0.3 + +* Fri Oct 02 2020 Jeff Law - 3.0.2-2 +- Use -fPIC rather than -fPIE. Re-enable LTO. + +* Sat Sep 26 2020 Mukundan Ragavan - 3.0.2-1 +- Update to 3.0.2 + +* Thu Sep 10 2020 Nick Bebout - 3.0.1-2 +- Disable LTO + +* Sat Sep 05 2020 Mukundan Ragavan - 3.0.1-1 +- Update to 3.0.1 +- Drop upstreamed patches + +* Mon Aug 31 2020 Michel Alexandre Salim - 2.6.5-9 +- Only require libgnome-keyring on Fedora (not EPEL). EPEL8 is getting qtkeychain 0.10.0 + +* Mon Aug 24 2020 Rex Dieter - 2.6.5-8 +- %%check: verify correct rpath/runpath + +* Mon Aug 24 2020 Rex Dieter - 2.6.5-7 +- restore use of %%cmake_kf5, explicitly undefine _cmake_skip_rpath (#1871655) + +* Tue Aug 04 2020 Mukundan Ragavan - 2.6.5-6 +- Change cmake macros to fix FTBFS + +* Sat Aug 01 2020 Fedora Release Engineering - 2.6.5-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 2.6.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 15 2020 Gwyn Ciesla - 2.6.5-3 +- Require libgnome-keyring only for <=f32 + +* Tue Jul 14 2020 Gwyn Ciesla - 2.6.5-2 +- Reinstate libgnome-keyring requires. + +* Fri Jul 10 2020 Gwyn Ciesla - 2.6.5-1 +- 2.6.5 + +* Thu Jun 18 2020 Mukundan Ragavan - 2.6.4-5 +- Drop requires on libgnome-keyring (not needed with qtkeychain >= 0.10.0) + +* Mon Apr 27 2020 Germano Massullo - 2.6.4-4 +- Added Requires: libgnome-keyring Read https://bugzilla.redhat.com/show_bug.cgi?id=1652973 + +* Sun Apr 12 2020 Tim Klocke - 2.6.4-3 +- Fixed autostart when using libcloudproviders +- Fixed recently changed files in libcloudproviders support + +* Sun Apr 05 2020 Germano Massullo - 2.6.4-2 +- Added libcloudproviders support. Thanks to Tim Klocke +- Added BuildRequires: libcloudproviders-devel BuildRequires: pkgconfig(dbus-1) + +* Thu Mar 05 2020 Gwyn Ciesla - 2.6.4-1 +- 2.6.4 + +* Mon Feb 17 2020 Mukundan Ragavan - 2.6.3-1 +- Update to 2.6.3 + +* Wed Jan 29 2020 Fedora Release Engineering - 2.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Dec 27 2019 Gwyn Ciesla - 2.6.2-1 +- 2.6.2 + * Wed Nov 06 2019 Germano Massullo - 2.6.1-1 - 2.6.1 release - Replaced Requires:python-caja with Requires:python3-caja in caja subpackage