Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 110 lines 2.2 kB view raw
1{ 2 lib, 3 gitUpdater, 4 fetchFromGitHub, 5 qt6Packages, 6 stdenv, 7 cmake, 8 extra-cmake-modules, 9 inotify-tools, 10 kdePackages, 11 libcloudproviders, 12 libp11, 13 librsvg, 14 libsecret, 15 openssl, 16 pcre, 17 pkg-config, 18 sphinx, 19 sqlite, 20 xdg-utils, 21 libsysprof-capture, 22}: 23 24stdenv.mkDerivation rec { 25 pname = "nextcloud-client"; 26 version = "3.16.6"; 27 28 outputs = [ 29 "out" 30 "dev" 31 ]; 32 33 src = fetchFromGitHub { 34 owner = "nextcloud-releases"; 35 repo = "desktop"; 36 tag = "v${version}"; 37 hash = "sha256-f6+FwYVwuG89IjEQMOepTJEgJGXp9nmQNuAGU4proq4="; 38 }; 39 40 patches = [ 41 ./0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch 42 ]; 43 44 postPatch = '' 45 for file in src/libsync/vfs/*/CMakeLists.txt; do 46 substituteInPlace $file \ 47 --replace-fail "PLUGINDIR" "KDE_INSTALL_PLUGINDIR" 48 done 49 ''; 50 51 nativeBuildInputs = [ 52 pkg-config 53 cmake 54 extra-cmake-modules 55 librsvg 56 sphinx 57 qt6Packages.wrapQtAppsHook 58 ]; 59 60 buildInputs = [ 61 inotify-tools 62 kdePackages.kio 63 libcloudproviders 64 libp11 65 libsecret 66 openssl 67 pcre 68 qt6Packages.qt5compat 69 qt6Packages.qtbase 70 qt6Packages.qtkeychain 71 qt6Packages.qtsvg 72 qt6Packages.qttools 73 qt6Packages.qtwebengine 74 qt6Packages.qtwebsockets 75 qt6Packages.qtwayland 76 sqlite 77 libsysprof-capture 78 ]; 79 80 qtWrapperArgs = [ 81 "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}" 82 # make xdg-open overridable at runtime 83 "--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}" 84 ]; 85 86 cmakeFlags = [ 87 "-DBUILD_UPDATER=off" 88 "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH 89 "-DMIRALL_VERSION_SUFFIX=" # remove git suffix from version 90 ]; 91 92 postBuild = '' 93 make doc-man 94 ''; 95 96 passthru.updateScript = gitUpdater { rev-prefix = "v"; }; 97 98 meta = { 99 changelog = "https://github.com/nextcloud/desktop/releases/tag/v${version}"; 100 description = "Desktop sync client for Nextcloud"; 101 homepage = "https://nextcloud.com"; 102 license = lib.licenses.gpl2Plus; 103 maintainers = with lib.maintainers; [ 104 kranzes 105 SuperSandro2000 106 ]; 107 platforms = lib.platforms.linux; 108 mainProgram = "nextcloud"; 109 }; 110}