diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix index 636761d2aaffc6..be255a6c1465f9 100644 --- a/pkgs/applications/networking/sync/onedrive/default.nix +++ b/pkgs/applications/networking/sync/onedrive/default.nix @@ -1,21 +1,37 @@ -{ stdenv, fetchFromGitHub, dmd, pkgconfig, curl, sqlite, libnotify }: +{ stdenv, lib, fetchFromGitHub, autoreconfHook, ldc, installShellFiles, pkgconfig +, curl, sqlite, libnotify +, withSystemd ? stdenv.isLinux, systemd ? null }: stdenv.mkDerivation rec { pname = "onedrive"; - version = "2.3.13"; + version = "2.4.2"; src = fetchFromGitHub { owner = "abraunegg"; repo = pname; rev = "v${version}"; - sha256 = "0bcsrfh1g7bdlcp0zjn6np88qzpn5frv61lzxz9b2ayxf7wyybvi"; + sha256 = "10s33p1xzq9c5n1bxv9n7n31afxgx9i6c17w0xgxdrma75micm3a"; }; - nativeBuildInputs = [ dmd pkgconfig ]; + nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkgconfig ]; - buildInputs = [ curl sqlite libnotify ]; + buildInputs = [ + curl sqlite libnotify + ] ++ lib.optional withSystemd systemd; - configureFlags = [ "--enable-notifications" ]; + configureFlags = [ + "--enable-notifications" + ] ++ lib.optionals withSystemd [ + "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" + "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user" + ]; + + # we could also pass --enable-completions to configure but we would then have to + # figure out the paths manually and pass those along. + postInstall = '' + installShellCompletion --bash --name ${pname} contrib/completions/complete.bash + installShellCompletion --zsh --name _${pname} contrib/completions/complete.zsh + ''; meta = with stdenv.lib; { description = "A complete tool to interact with OneDrive on Linux";