forked from mirrors/nixpkgs
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; }) ```
This commit is contained in:
parent
24b381e235
commit
e75f922e91
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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)
|
14
pkgs/applications/networking/nextcloud-client/wrapper.nix
Normal file
14
pkgs/applications/networking/nextcloud-client/wrapper.nix
Normal file
|
@ -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;
|
||||
}
|
|
@ -4374,7 +4374,11 @@ with pkgs;
|
|||
|
||||
nextcloud = callPackage ../servers/nextcloud { };
|
||||
|
||||
nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
|
||||
nextcloud-client-unwrapped = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
|
||||
|
||||
nextcloud-client = callPackage ../applications/networking/nextcloud-client/wrapper.nix {
|
||||
nextcloud-client = nextcloud-client-unwrapped;
|
||||
};
|
||||
|
||||
nextcloud-news-updater = callPackage ../servers/nextcloud/news-updater.nix { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue