diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2018-11-23 08:31:31 +0100 |
---|---|---|
committer | worldofpeace <worldofpeace@users.noreply.github.com> | 2018-11-23 02:31:31 -0500 |
commit | e75f922e910d674a09fb2342500b0add191bad68 (patch) | |
tree | 0f7f961a608eb713ee00a45c6f4ae0261c58fdfe /pkgs/applications/networking/nextcloud-client | |
parent | 24b381e235d95bad877055f5c717d8633b38ae0e (diff) |
nextcloud-client: 2.3.3 -> 2.5.0 (#50463)
Updates to the latest version of the desktop client available. Tested the config migration from `nextcloud-client` 2.3.3 with a Nextcloud 14.0.3 instance (hosted using `services.nextcloud`). Additionally the derivation required the following changes: * Dropped `Qt5Sql` patch: this has been fixed upstream and isn't needed anymore (furthermore their CMake structure has changed and the patch wouldn't apply anymore on 2.5.0). * Moved to a new upstream repository (nextcloud/desktop), kept `fetchgit` to properly fetch submodules. * Added OpenSSL 1.1 integration: `libsync` (the syncing provided by this package) requires 1.1, furthermore the linking flags had to be fixed manually by passing `NIX_LDFLAGS` to the derivation. Furthermore I moved the support for a Gnome3 keyring into its own wrapper to avoid a full rebuild of the package whenever you alter `withGnomeKeyring` in an override expressions. It's still possible to enable keyring (now without recompile) like this: ``` nextcloud-client.override { withGnomeKeyring = true; } ``` To override the derivation itself you now have to use `nextcloud-client-unwrapped`: ``` nextcloud-client-unwrapped.overrideAttrs (old: { src = yoursrc; }) ```
Diffstat (limited to 'pkgs/applications/networking/nextcloud-client')
3 files changed, 25 insertions, 32 deletions
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix index 6ed5e63cd0f1a..3d54ff3a7c345 100644 --- a/pkgs/applications/networking/nextcloud-client/default.nix +++ b/pkgs/applications/networking/nextcloud-client/default.nix @@ -1,37 +1,31 @@ { stdenv, fetchgit, cmake, pkgconfig, qtbase, qtwebkit, qtkeychain, qttools, sqlite -, inotify-tools, withGnomeKeyring ? false, makeWrapper, libgnome-keyring }: +, inotify-tools, makeWrapper, libgnome-keyring, openssl_1_1, pcre, qtwebengine +}: stdenv.mkDerivation rec { name = "nextcloud-client-${version}"; - version = "2.3.3"; + version = "2.5.0"; src = fetchgit { - url = "git://github.com/nextcloud/client_theming.git"; - rev = "ab40efe1e1475efddd636c09251d8917627261da"; - sha256 = "19a1kqydgx47sa1a917j46zlbc5g9nynsanasyad9c8sqi0qvyip"; + url = "git://github.com/nextcloud/desktop.git"; + rev = "refs/tags/v${version}"; + sha256 = "1wz5bz4nmni0qxzcvgmpg9ywrfixzvdd7ixgqmdm4d8g6dm8pk9k"; fetchSubmodules = true; }; - patches = [ ./find-sql.patch ]; - patchFlags = "-d client -p1"; - nativeBuildInputs = [ pkgconfig cmake ]; - buildInputs = [ qtbase qtwebkit qtkeychain qttools sqlite ] - ++ stdenv.lib.optional stdenv.isLinux inotify-tools - ++ stdenv.lib.optional withGnomeKeyring makeWrapper; + buildInputs = [ qtbase qtwebkit qtkeychain qttools qtwebengine sqlite openssl_1_1.out pcre inotify-tools ]; enableParallelBuilding = true; - dontUseCmakeBuildDir = true; - - cmakeDir = "client"; + NIX_LDFLAGS = "${openssl_1_1.out}/lib/libssl.so ${openssl_1_1.out}/lib/libcrypto.so"; cmakeFlags = [ "-UCMAKE_INSTALL_LIBDIR" "-DCMAKE_BUILD_TYPE=Release" - "-DOEM_THEME_DIR=${src}/nextcloudtheme" - ] ++ stdenv.lib.optionals stdenv.isLinux [ + "-DOPENSSL_LIBRARIES=${openssl_1_1.out}/lib" + "-DOPENSSL_INCLUDE_DIR=${openssl_1_1.dev}/include" "-DINOTIFY_LIBRARY=${inotify-tools}/lib/libinotifytools.so" "-DINOTIFY_INCLUDE_DIR=${inotify-tools}/include" ]; @@ -39,16 +33,13 @@ stdenv.mkDerivation rec { postInstall = '' sed -i 's/\(Icon.*\)=nextcloud/\1=Nextcloud/g' \ $out/share/applications/nextcloud.desktop - '' + stdenv.lib.optionalString (withGnomeKeyring) '' - wrapProgram "$out/bin/nextcloud" \ - --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libgnome-keyring ]} ''; meta = with stdenv.lib; { description = "Nextcloud themed desktop client"; homepage = https://nextcloud.com; license = licenses.gpl2; - maintainers = with maintainers; [ caugner ]; + maintainers = with maintainers; [ caugner ma27 ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/nextcloud-client/find-sql.patch b/pkgs/applications/networking/nextcloud-client/find-sql.patch deleted file mode 100644 index baf6a4fbf4917..0000000000000 --- a/pkgs/applications/networking/nextcloud-client/find-sql.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cmake/modules/QtVersionAbstraction.cmake b/cmake/modules/QtVersionAbstraction.cmake -index 5bd853c84..93ddf3cf8 100644 ---- a/cmake/modules/QtVersionAbstraction.cmake -+++ b/cmake/modules/QtVersionAbstraction.cmake -@@ -17,6 +17,7 @@ if( Qt5Core_FOUND ) - message(STATUS "Found Qt5 core, checking for further dependencies...") - find_package(Qt5Network REQUIRED) - find_package(Qt5Xml REQUIRED) -+ find_package(Qt5Sql REQUIRED) - find_package(Qt5Concurrent REQUIRED) - if(UNIT_TESTING) - find_package(Qt5Test REQUIRED) diff --git a/pkgs/applications/networking/nextcloud-client/wrapper.nix b/pkgs/applications/networking/nextcloud-client/wrapper.nix new file mode 100644 index 0000000000000..292cbaa1c401b --- /dev/null +++ b/pkgs/applications/networking/nextcloud-client/wrapper.nix @@ -0,0 +1,14 @@ +{ lib, nextcloud-client, makeWrapper, symlinkJoin, withGnomeKeyring ? false, libgnome-keyring }: + +if (!withGnomeKeyring) then nextcloud-client else symlinkJoin { + name = "${nextcloud-client.name}-with-gnome-keyring"; + paths = [ nextcloud-client ]; + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram "$out/bin/nextcloud" \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libgnome-keyring ]} + ''; + + inherit (nextcloud-client) meta; +} |