mirror of
https://github.com/abraunegg/onedrive
synced 2024-06-02 14:02:21 +02:00
Merge branch 'master' into fix-issue-966
This commit is contained in:
commit
64f894ee54
14
.github/ISSUE_TEMPLATE/bug_report.md
vendored
14
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -10,15 +10,17 @@ about: Create a report to help us improve
|
|||
A clear and concise description of what the bug is.
|
||||
|
||||
**Application and Operating System Details:**
|
||||
* OS: Output of `uname -a` & provide your OS & version (CentOS 6.x, Ubuntu 18.x etc)
|
||||
* Provide your OS & version (CentOS 6.x, Ubuntu 18.x etc) and the output of: `uname -a`
|
||||
* Are you using a headless system (no gui) or with a gui installed?
|
||||
* OneDrive Account Type
|
||||
* Did you build from source or install from a package?
|
||||
* If you installed from source, what is your DMD or LDC compiler version: `dmd --version` or `ldmd2 --version`
|
||||
* Application configuration: Output of `onedrive --display-config`
|
||||
* Curl Version: Output of `curl --version`
|
||||
* OneDrive Application Configuration: Output of `onedrive --display-config`
|
||||
* Provide the version of curl you are using: Output of `curl --version`
|
||||
* Is your configured 'sync_dir' a local directory or a network mount point?
|
||||
* Provide all the mountpoints in your system: Output of: `mount`
|
||||
|
||||
**Note:** Please generate a full debug log as per [https://github.com/abraunegg/onedrive/wiki/Generate-debug-log-for-support](https://github.com/abraunegg/onedrive/wiki/Generate-debug-log-for-support) and email to support@mynas.com.au
|
||||
**Note:** Please generate a full debug log whilst reproducing the issue as per [https://github.com/abraunegg/onedrive/wiki/Generate-debug-log-for-support](https://github.com/abraunegg/onedrive/wiki/Generate-debug-log-for-support) and email to support@mynas.com.au
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior if not causing an application crash:
|
||||
|
@ -50,5 +52,7 @@ Add any other context about the problem here.
|
|||
|
||||
### Bug Report Checklist ###
|
||||
* [] Detailed description
|
||||
* [] Application and Operating System Details provided in full
|
||||
* [] Reproduction steps (if applicable)
|
||||
* [] Verbose Log Output
|
||||
* [] Verbose Log Output from your error
|
||||
* [] Debug Log generated and submitted
|
||||
|
|
20
CHANGELOG.md
20
CHANGELOG.md
|
@ -2,6 +2,26 @@
|
|||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
## 2.4.6 - 2020-10-04
|
||||
### Fixed
|
||||
* Fix flagging of remaining free space when value is being restricted
|
||||
* Fix --single-directory path handling when path does not exist locally
|
||||
* Fix checking for 'Icon' path as no longer listed by Microsoft as an invalid file or folder name
|
||||
* Fix removing child items on OneDrive when parent item responds with access denied
|
||||
* Fix to handle deletion events for files when inotify events are missing
|
||||
* Fix uninitialised value error as reported by valgrind
|
||||
* Fix to handle deletion events for directories when inotify events are missing
|
||||
|
||||
### Added
|
||||
* Implement Feature: Create shareable link
|
||||
* Implement Feature: Support wildcard within sync_list entries
|
||||
* Implement Feature: Support negative patterns in sync_list for fine grained exclusions
|
||||
* Implement Feature: Multiple skip_dir & skip_file configuration rules
|
||||
* Add GUI notification to advise users when the client needs to be reauthenticated
|
||||
|
||||
### Updated
|
||||
* Updated documentation (readme.md, install.md, usage.md, bug_report.md)
|
||||
|
||||
## 2.4.5 - 2020-08-13
|
||||
### Fixed
|
||||
* Fixed fish auto completions installation destination
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[![Docker Build](https://img.shields.io/docker/cloud/automated/driveone/onedrive)](https://hub.docker.com/r/driveone/onedrive)
|
||||
[![Docker Pulls](https://img.shields.io/docker/pulls/driveone/onedrive)](https://hub.docker.com/r/driveone/onedrive)
|
||||
|
||||
A free Microsoft OneDrive Client which supports OneDrive Personal, OneDrive for Business, OneDrive for Office365 and Sharepoint.
|
||||
A free Microsoft OneDrive Client which supports OneDrive Personal, OneDrive for Business, OneDrive for Office365 and SharePoint.
|
||||
|
||||
This powerful and highly configurable client can run on all major Linux distributions, FreeBSD, or as a Docker container. It supports one-way and two-way sync capabilities and securely connects to Microsoft OneDrive services.
|
||||
|
||||
|
@ -26,7 +26,7 @@ This client is a 'fork' of the [skilion](https://github.com/skilion/onedrive) cl
|
|||
|
||||
## What's missing
|
||||
* While local changes are uploaded right away, remote changes are delayed until next automated sync cycle when using --monitor
|
||||
* Ability to encrypt/decrpyt files on-the-fly when uploading/downloading files from OneDrive
|
||||
* Ability to encrypt/decrypt files on-the-fly when uploading/downloading files from OneDrive
|
||||
* Support for Windows 'On-Demand' functionality so file is only downloaded when accessed locally
|
||||
* A GUI for configuration management
|
||||
|
||||
|
|
20
configure
vendored
20
configure
vendored
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for onedrive v2.4.6-dev.
|
||||
# Generated by GNU Autoconf 2.69 for onedrive v2.4.6.
|
||||
#
|
||||
# Report bugs to <https://github.com/abraunegg/onedrive>.
|
||||
#
|
||||
|
@ -579,8 +579,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='onedrive'
|
||||
PACKAGE_TARNAME='onedrive'
|
||||
PACKAGE_VERSION='v2.4.6-dev'
|
||||
PACKAGE_STRING='onedrive v2.4.6-dev'
|
||||
PACKAGE_VERSION='v2.4.6'
|
||||
PACKAGE_STRING='onedrive v2.4.6'
|
||||
PACKAGE_BUGREPORT='https://github.com/abraunegg/onedrive'
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
@ -1219,7 +1219,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures onedrive v2.4.6-dev to adapt to many kinds of systems.
|
||||
\`configure' configures onedrive v2.4.6 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -1280,7 +1280,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of onedrive v2.4.6-dev:";;
|
||||
short | recursive ) echo "Configuration of onedrive v2.4.6:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -1393,7 +1393,7 @@ fi
|
|||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
onedrive configure v2.4.6-dev
|
||||
onedrive configure v2.4.6
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
@ -1410,7 +1410,7 @@ cat >config.log <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by onedrive $as_me v2.4.6-dev, which was
|
||||
It was created by onedrive $as_me v2.4.6, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
@ -2162,7 +2162,7 @@ fi
|
|||
|
||||
|
||||
|
||||
PACKAGE_DATE="August 2020"
|
||||
PACKAGE_DATE="October 2020"
|
||||
|
||||
|
||||
|
||||
|
@ -3159,7 +3159,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by onedrive $as_me v2.4.6-dev, which was
|
||||
This file was extended by onedrive $as_me v2.4.6, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
@ -3212,7 +3212,7 @@ _ACEOF
|
|||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
onedrive config.status v2.4.6-dev
|
||||
onedrive config.status v2.4.6
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ dnl - commit the changed files (configure.ac, configure)
|
|||
dnl - tag the release
|
||||
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([onedrive],[v2.4.6-dev], [https://github.com/abraunegg/onedrive], [onedrive])
|
||||
AC_INIT([onedrive],[v2.4.6], [https://github.com/abraunegg/onedrive], [onedrive])
|
||||
AC_CONFIG_SRCDIR([src/main.d])
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
%endif
|
||||
|
||||
Name: onedrive
|
||||
Version: 2.4.5
|
||||
Version: 2.4.6
|
||||
Release: 1%{?dist}
|
||||
Summary: Microsoft OneDrive Client
|
||||
Group: System Environment/Network
|
||||
|
|
|
@ -324,6 +324,8 @@ The issue here is around how the client stores the sync_dir path in the database
|
|||
|
||||
**Note:** After changing `sync_dir`, you must perform a full re-synchronization by adding `--resync` to your existing command line - for example: `onedrive --synchronize --resync`
|
||||
|
||||
**Important Note:** If your `sync_dir` is pointing to a network mount point (a network share via NFS, Windows Network Share, Samba Network Share) these types of network mount points do not support 'inotify', thus tracking real-time changes via inotify of local files is not possible. Local filesystem changes will be replicated between the local filesystem and OneDrive based on the `monitor_interval` value. This is not something (inotify support for NFS, Samba) that this client can fix.
|
||||
|
||||
#### skip_dir
|
||||
Example:
|
||||
```text
|
||||
|
|
|
@ -816,6 +816,9 @@ final class OneDriveApi
|
|||
}
|
||||
} catch (OneDriveException e) {
|
||||
if (e.httpStatusCode == 400 || e.httpStatusCode == 401) {
|
||||
// flag error and notify
|
||||
log.errorAndNotify("\nERROR: Refresh token invalid, use --logout to authorize the client again.\n");
|
||||
// set error message
|
||||
e.msg ~= "\nRefresh token invalid, use --logout to authorize the client again";
|
||||
}
|
||||
}
|
||||
|
@ -1049,7 +1052,8 @@ final class OneDriveApi
|
|||
} else {
|
||||
http.onSend = buf => 0;
|
||||
}
|
||||
return perform();
|
||||
auto response = perform();
|
||||
return response;
|
||||
}
|
||||
|
||||
private JSONValue perform()
|
||||
|
|
36
src/sync.d
36
src/sync.d
|
@ -305,7 +305,7 @@ final class SyncEngine
|
|||
if (e.httpStatusCode == 401) {
|
||||
// HTTP request returned status code 401 (Unauthorized)
|
||||
displayOneDriveErrorMessage(e.msg);
|
||||
log.error("\nERROR: Check your configuration as your refresh_token may be empty or invalid. You may need to issue a --logout and re-authorise this client.\n");
|
||||
log.errorAndNotify("\nERROR: Check your configuration as your refresh_token may be empty or invalid. You may need to issue a --logout and re-authorise this client.\n");
|
||||
// Must exit here
|
||||
exit(-1);
|
||||
}
|
||||
|
@ -344,7 +344,7 @@ final class SyncEngine
|
|||
if (e.httpStatusCode == 401) {
|
||||
// HTTP request returned status code 401 (Unauthorized)
|
||||
displayOneDriveErrorMessage(e.msg);
|
||||
log.error("\nERROR: Check your configuration as your refresh_token may be empty or invalid. You may need to issue a --logout and re-authorise this client.\n");
|
||||
log.errorAndNotify("\nERROR: Check your configuration as your refresh_token may be empty or invalid. You may need to issue a --logout and re-authorise this client.\n");
|
||||
// Must exit here
|
||||
exit(-1);
|
||||
}
|
||||
|
@ -3004,15 +3004,17 @@ final class SyncEngine
|
|||
if (!cfg.getValueBool("monitor")) {
|
||||
// Not in --monitor mode
|
||||
log.vlog("The directory has been deleted locally");
|
||||
if (noRemoteDelete) {
|
||||
// do not process remote directory delete
|
||||
log.vlog("Skipping remote directory delete as --upload-only & --no-remote-delete configured");
|
||||
} else {
|
||||
uploadDeleteItem(item, path);
|
||||
}
|
||||
} else {
|
||||
// Appropriate message as we are in --monitor mode
|
||||
log.vlog("The directory appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' rather than 'deleted'");
|
||||
log.vlog("The directory appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' on the local filesystem rather than being 'deleted'");
|
||||
log.vdebug("Most likely cause - 'inotify' event was missing for whatever action was taken locally or action taken when application was stopped");
|
||||
}
|
||||
// A moved file will be uploaded as 'new', delete the old file and reference
|
||||
if (noRemoteDelete) {
|
||||
// do not process remote directory delete
|
||||
log.vlog("Skipping remote directory delete as --upload-only & --no-remote-delete configured");
|
||||
} else {
|
||||
uploadDeleteItem(item, path);
|
||||
}
|
||||
} else {
|
||||
// we are in a --dry-run situation, directory appears to have deleted locally - this directory may never have existed as we never downloaded it ..
|
||||
|
@ -3430,15 +3432,17 @@ final class SyncEngine
|
|||
// Not --dry-run situation
|
||||
if (!cfg.getValueBool("monitor")) {
|
||||
log.vlog("The file has been deleted locally");
|
||||
if (noRemoteDelete) {
|
||||
// do not process remote file delete
|
||||
log.vlog("Skipping remote file delete as --upload-only & --no-remote-delete configured");
|
||||
} else {
|
||||
uploadDeleteItem(item, path);
|
||||
}
|
||||
} else {
|
||||
// Appropriate message as we are in --monitor mode
|
||||
log.vlog("The file appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' rather than 'deleted'");
|
||||
log.vlog("The file appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' on the local filesystem rather than being 'deleted'");
|
||||
log.vdebug("Most likely cause - 'inotify' event was missing for whatever action was taken locally or action taken when application was stopped");
|
||||
}
|
||||
// A moved file will be uploaded as 'new', delete the old file and reference
|
||||
if (noRemoteDelete) {
|
||||
// do not process remote file delete
|
||||
log.vlog("Skipping remote file delete as --upload-only & --no-remote-delete configured");
|
||||
} else {
|
||||
uploadDeleteItem(item, path);
|
||||
}
|
||||
} else {
|
||||
// We are in a --dry-run situation, file appears to have deleted locally - this file may never have existed as we never downloaded it ..
|
||||
|
|
Loading…
Reference in a new issue