* When exiting the application when using --synchronize, display that the sync is complete if we are exiting cleanly and all sync operations are complete
* systemd: use PrivateUsers= in user unit
ProtectSystem= and other sandboxing options require a user namespace in
order to work as user units (the user manager does not run as root and
thus without a user namespace it is unable to perform mounts).
* Add a try & catch block for testing if the file exists locally to catch any filesystem error that may be generated
* Test path to be valid if a symbolic link
* Add developer option 'display_processing_time' to control if performance timing is outputted or not
* If option is enabled, print performance data around how long key functions are taking to process data to assist with understanding any performance related questions
* Update docker.yaml to downgrade setup-qemu-action to use qemu-v6.2.0-26 because when using 'tonistiigi/binfmt:latest' - this uses qemu-v7.0.0-28, which, causes a build failure 'Out of memory allocating XXX bytes' for Fedora ARMv7 builds
* Update skip notification handling for the following scenarios:
* Invalid Name (Microsoft Naming Convention)
* Invalid Name (Contains an invalid whitespace item)
* Invalid Name (Contains HTML ASCII Code)
* Invalid Item (Invalid symbolic link)
Update to the rpm build docs to ensure the tar.gz file is the same version as in the spec.in file
onedrive.spec.in references version v2.4.20 however the docs reference 2.4.15
Co-authored-by: abraunegg <alex.braunegg@gmail.com>
Updating the line
%{_unitdir}/%{name}.service
to
%{_userunitdir}/%{name}.service
This fixes the issue when building the RPM on RHEL7/8/9 with the following error:
RPM build errors:
File not found: /root/rpmbuild/BUILDROOT/onedrive-2.4.20-1.el7.x86_64/usr/lib/systemd/system/onedrive.service
This is due to the file actually being created in:
/root/rpmbuild/BUILDROOT/onedrive-2.4.20-1.el7.x86_64/usr/lib/systemd/user/onedrive.service
Changing _unitdir to _userunitdir fixes this error and allows the RPMs to be build correctly.
* Rather than force exit if unable to lock the database, add a function and boolean to control if the database access has been init was successful. If not, use the exit scopes to exit the application
* Fix that the --resync option is wrongly enforced when the OneDrive client is started with --list-shared-folders option or other non-sync options. This only happens when configuration changes are detected.
* When enabling system logging to a log file, the actual ERROR line is forced to a new line in the application log. The reason for this is the \n prefix in the error message, which was in place so that when performing CLI logging or systemd logging, the error message would be displayed clearly. This change removes the \n from the actual error message, but inserts a newline before the error message is displayed (and also in some cases post error message) - thus keeping the application runtime look and feel, but improving the application log output.
* Change the exit code of the application when a --resync is required from a generic exit code of 1 to exit code 126, as 126 is supposed to be used when a command invoked cannot be executed - which, in this case, when a --resync is needed - the original command cannot be executed.
* This allows|enables watching for a 126 error code in automated environments, so that when 126 as the exit code is seen, the command can be re-tried potentially automatically with the appropriate resync arguments added.
* Add missing logfile output when enabling logging so that when uploaded new & modified files are skipped, this is correctly reflected in logfile output