Commit graph

358 commits

Author SHA1 Message Date
abraunegg
e9e5274253
Remove auto configuration of using a larger fragment size (#3370)
* Remove auto configuration of using a larger fragment size
* Update documentation around safe values to use
2025-07-04 07:20:03 +10:00
abraunegg
ea7c3abd2d
Fix Bug #3355: Fix that long running big upload (250GB+) fails because of an expired access token (#3361)
* Revert back to v2.5.5 performSessionFileUpload() and apply minimal change for upload session offset handling to prevent desynchronisation on large files
* Add specific 403 handler for when the upload session URL itself expires
* Add 'file_fragment_size'
* Clean up debug logging output
* Add 'tempauth' to spelling words
* Update documentation URL's
* Ensure that on each fragment upload, whilst the application is using the 'tempauth' for session upload, the global OAuth2 token needs to be checked for validity and refreshed if required
* Add limit check for 'file_fragment_size' option
* Add to default 'config' file
* Update documentation for 'file_fragment_size'
* Add 'file_fragment_size' to --display-config output
* Add --file-fragment-size option to enable use via Docker option
* Add to manpage
* Update Docker entrypoint
* Update Docker | Podman documentation
* Update logging output to include connection method to URL
* Update Upload Session URL expiry update to include UTC and LocalTime values
* Update comment which was dropped / missed
* Clarify that this is the OAuth2 Access Token
* Clarify that the expiry timestamp is localTime
* Update PR with dynamic use of fragment size if fileSize > 100MiB
* Enforce multiple 320KiB for fragment size to align to Microsoft documentation
* Fix Docker entrypoint and confirm working for ONEDRIVE_FILE_FRAGMENT_SIZE
* Change 'defaultMaxFileFragmentSize' to 60
* Revise fragmentSize calculation to be as close to 60 MiB as possible without breaching Microsoft documented threshold
2025-07-03 17:21:16 +10:00
abraunegg
a1a8b46673
Add curl 8.13.x and 8.14.0 to known bad curl versions (#3356)
* Add curl 8.13.x and 8.14.0 to known bad curl versions that when used, have operational impacts to this client
2025-06-25 08:06:44 +10:00
abraunegg
4c1d242a9e
Update documentation and function for how 'threads' is used (#3352)
* Update documentation for 'threads' to be clearer
* Update setDefaultApplicationThreads()
2025-06-22 10:05:47 +10:00
abraunegg
76f616f267
Update minimum compiler version details (#3330)
* Update minimum compiler version details
* Update RHEL RPM documentation
* Update spelling words
2025-06-10 13:31:45 +10:00
abraunegg
62907d4d58
Update advanced-usage.md (#3327)
* Add note about using 'ntfs-3g-onedrive' to access Microsoft Windows OneDrive folder in dual-boot scenarios
* Update allow.txt - add ntfs
2025-06-09 09:45:05 +10:00
abraunegg
42f7afaba8
Update application-config-options.md (#3326)
* Update 'threads' documentation details for clarity on the option and warning message generated
2025-06-09 07:43:16 +10:00
abraunegg
d8d695600a
Update OAuth2 Interactive Authorisation Flow prompts (#3323)
* Update OAuth2 Interactive Authorisation Flow prompts to remove any ambiguity on what actions a user needs to take
2025-06-08 13:20:57 +10:00
abraunegg
810197cc05
Implement FR #2693: Implement OAuth2 Device Authorisation Flow (#3313)
Adds support for Microsoft’s OAuth2 Device Authorisation Flow, enabling the client to authenticate using device and user codes on a second device. This is particularly useful for headless or limited-input environments where interactive browser login is not possible.

Includes:
- Initiating device code requests and displaying user instructions
- Polling token endpoint until user authorises the device or the code expires
- Error handling for pending, declined, and expired authorisation states
- Countdown display showing remaining authorisation window

This feature is enabled via the `use_device_auth` config option
2025-06-03 07:47:56 +10:00
abraunegg
d9b8966fa4
Force rebuild post GitHub Actions outage (#3298)
* Force rebuild post GitHub Actions outage
2025-05-27 04:51:37 +10:00
abraunegg
61e5a1edb6
Implement FR #3209: Add native support for authentication via Intune dbus interface (#3274)
* Adds support for calling `acquireTokenInteractively` and `acquireTokenSilently` via D-Bus
* Parses and handles the full `brokerTokenResponse` object returned by the Intune broker
* Stores and reuses `account` data to enable silent token refresh without repeated interactive authentication
* Ensures the access token and its expiry time are properly calculated and stored for consistent token management
* Fallback to interactive authentication is triggered if silent authentication fails
2025-05-26 17:14:50 +10:00
abraunegg
b496c4e21f
Update 'Client Side Filtering' documentation and handling (#3296)
* Fix documentation around missing 'check_nosync' needing a --resync when enabling / disabling
* Fix documentation around missing 'skip_size' needing a --resync when enabling / disabling
* Validate 'check_nosync' and 'skip_size' when used as part of a config file to trigger --resync
* Validate 'check_nosync' and 'skip_size' when used as part of CLI to trigger --resync
2025-05-26 15:25:04 +10:00
abraunegg
4275d0b2a4
Update Documentation - clarify --local-first (#3293)
* Update Documentation - clarify --local-first
2025-05-25 11:55:47 +10:00
Andrei Horodniceanu
92be98f833
Cleanup Gentoo install documentation (#3279)
* docs/install.md: Remove references to dlang overlay for Gentoo

The package has been added to the main Gentoo repository, users no
longer have to enable a 3rd party overlay to use it.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* docs/install.md: Correct available Gentoo architecture

On Gentoo, the package is (currently) tested on x86_64, not i686.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

---------

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
2025-05-18 08:16:40 +10:00
abraunegg
154f145262
Add Gentoo package badge (#3278)
* Add Gentoo package badge
* Fix spelling issue in cgi.d
2025-05-18 06:16:54 +10:00
abraunegg
73194b0169
Implement FR #3234: Add configurable upload delay to support Obsidian (#3262)
* As of now, Obsidian on Linux does not provide a built-in way to disable atomic saves or switch to a backup-copy method via configuration. Obsidian uses Electron and relies on the default save behavior of its underlying libraries and editor components (like CodeMirror), which typically perform atomic writes for every keystroke. This FR implements a delay in uploading changes to Microsoft OneDrive that is user configurable to better handle how Obsidian works
* Add specific note regarding compatibility with Obsidian and the options that this PR introduces
* Enforce a minimum | maximum for 'inotify_delay'
* Update documentation for feature
* Update 'config' file with 'delay_inotify_processing' option
* Add Ubuntu 24.10 version of curl (8.9.1) to known bad curl versions
* Add Ubuntu version name for Ubuntu 24.10
2025-05-12 06:29:41 +10:00
abraunegg
ce1a47ded8 Add Ubuntu 24.10 curl version for compatibility and bug reference
* Add Ubuntu 24.10 curl version for compatibility and bug reference
2025-05-09 14:12:34 +10:00
abraunegg
4736b79f56
Update Client Architecture Documentation (#3261)
* Update Client Architecture Documentation
* Fix wording in 'usage.md'
2025-05-04 10:31:16 +10:00
abraunegg
acda30e3f6 Update usage.md
* Explicitly add 'Obsidian' as an editor that performs atomic saves.
2025-05-04 07:40:35 +10:00
abraunegg
5c9a055733
Update usage.md (#3260)
* Add links to additional documentation based on feedback in https://github.com/abraunegg/onedrive/issues/3257
2025-05-03 10:40:07 +10:00
abraunegg
831445f616 Update usage.md
* Add missing TOC link for 'Client Documentation'
2025-05-03 09:13:55 +10:00
abraunegg
bad8e7bb20
Fix Bug #3228: Update how local timestamps are modified (#3256)
* Add a new configuration option 'force_session_upload' so that the local timestamp is uploaded and used by the API directly, rather than the API generating its own timestamp
* Update setLocalPathTimestamp() function to only set the timestamp of the local file if this is determined to be actually required
* Update allow.txt - add fracsec, howto
* Add config option 'force_session_upload' to 'config' file
* Add 'Compatibility with Editors and Applications Using Atomic Save Operations'
* Update application-config-options.md to document 'force_session_upload' option
* Add usage note for 'force_session_upload' option as a recommendation for applications that use atomic saves
* Update usage.md - add link(s) to other docs for easier reference / visibility
2025-05-03 06:16:34 +10:00
Paul Cuttriss
7650fc9845
Update install.md for small changes in Fedora > 41 (#3252)
* Update dnf install command for development tools with dnf5
* Modify gnupg/common.conf to comment out use-keyboxd while running dmd install.

Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2025-04-30 05:56:13 +10:00
abraunegg
c7c07b12a7
Enhancement: Update 'skip_file' documentation and option validation (#3251)
* Update 'skip_file' documentation as to why the existing defaults exist
* Add warning message about 'default' entries for 'skip_file' missing aligning to documentation
2025-04-28 08:58:32 +10:00
abraunegg
a403bdf9fa
Update ubuntu-package-install.md (#3244)
* Add Ubuntu 25.04 OpenSuSE Build Service details
2025-04-27 07:14:13 +10:00
abraunegg
25c0dea3b6 Update install.md
* Update how to install using the Fedora|EPEL Package Repositories
2025-04-26 19:33:45 +10:00
abraunegg
898f350336
Implement FR #3142: Add local recycle bin or trash folder option (#3168)
* This commit implements Feature Request #3142 by introducing a configurable local recycle bin or trash folder mechanism within the OneDrive Client for Linux. This enhancement provides users with a safeguard against unintended data loss during synchronisation operations. This capability is designed to be compatible with the FreeDesktop.org Trash Specification.
2025-04-23 04:28:32 +10:00
Andrei Horodniceanu
7ed766830c
Update Gentoo install documentation (#3222)
* docs/install.md: Update Gentoo documentation

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* contrib: Remove Gentoo ebuild

Drop the Gentoo ebuild in here in favor of using the one in the Gentoo
dlang overlay, since the latter better follows the Gentoo standards.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* Update allow.txt

* Add 'eselect' and 'onlydeps'

---------

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2025-04-20 07:36:56 +10:00
Andrei Horodniceanu
025c756c0c
Implement FR #2472: Add gdc support (#3213)
* Makefile.in: Use $^ for specifying dependencies

This fixes out-of-source builds.

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* Makefile.in: Pass required build flags outside of DCFLAGS variable

This allows specifying custom DCFLAGS when invoking make

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* Move compiler specific options into configure.ac from Makefile.in

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* Add support for building with gdc

Closes: https://github.com/abraunegg/onedrive/issues/2472
Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

* docs: Document gdc support

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>

---------

Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2025-04-16 19:03:12 +10:00
abraunegg
f76dcdaea4 Update usage.md
* Remove ambiguity around 'threads' option
2025-04-13 18:54:06 +10:00
abraunegg
1e9765d0f2
Update Docker and Podman documentation (#3202)
* Update Docker and Podman documentation around environment variable formatting due to #3198
* Update language
2025-04-06 06:20:35 +10:00
Paul Fabozzi
65a48b3de1
Enhancement: Add support for --share-password option when --create-share-link is called. (#3119)
* Update config.d to add support for --share-password
* Update sync.d to add support for --share-password when creating links
* Update config.d fixed bug requiring ARG with --share-password option
* Update application-config-options.md
* Update sync.d to evaluate if the file link share password is an empty string

---------

Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2025-03-16 07:47:35 +11:00
abraunegg
f8123a2b0a
Implement FR #2719: Add information about file creator/last editor as extended file attributes (#3113)
* Implement feature request to add information about file creator/last editor as extended file attributes
* On a --resync , if the data exists on disk, and 'write_xattr_data' has been enabled, write the xattr data out
2025-02-20 21:14:04 +11:00
abraunegg
0216b63c61
Implement FR #3107: Add config option to not set file and directory permissions (#3112)
* Implement configuration option to not set directory and file permissions
2025-02-13 19:27:14 +11:00
abraunegg
0e7d3f15f6
Implement FR #2544: Allow synchronizing smallest files first (#3114)
* Implement 'transfer_order' configuration option to allow the user to determine what order files are transferred in
2025-02-13 19:20:42 +11:00
abraunegg
7f2d981683
Add './' sync_list rule check (#3097)
* Add './' sync_list rule check as this does not align to the documentation and these rules will not get matched correctly. The user needs to take corrective action.
2025-02-03 08:55:51 +11:00
abraunegg
84a141b1d6
Calculate file transfer metrics in a consistent manner (#3091)
* Add back file transfer metrics which was available in v2.4.x (regression) 
* Calculate file transfer metrics in a consistent manner for all uploads and downloads
2025-01-29 06:38:21 +11:00
abraunegg
defcd8bf2d
Update usage.md (#3084)
* Update usage.md
2025-01-24 20:15:31 +11:00
abraunegg
27a25bef4e
Fix Upload|Download Loop for AIP Protected File in Monitor Mode (#3071)
* Fix Upload|Download Loop for AIP Protected File in Monitor Mode
2025-01-18 07:46:56 +11:00
abraunegg
0247902d08 Update install.md
* Remove Ubuntu 23.04
* Add LTS designation for the Ubuntu Long Term Stuffed platforms
2025-01-17 09:53:14 +11:00
abraunegg
1d00a5228e Update install.md
* Add 'systemd-dev' due to Ubuntu 24.10 changes that now requires this package so that pkg-config can detect systemd
2025-01-15 07:00:15 +11:00
abraunegg
260be9496a
Support FreeBSD - Code and documentation changes to support FreeBSD (#3048)
* Code and documentation changes to support FreeBSD
2025-01-13 15:32:18 +11:00
abraunegg
6634284efa
Fix regression in handling uploading new and modified content to OneDrive Business and SharePoint (#3032)
* Fix regression from v2.4.x in handling uploading new and modified content to OneDrive Business and SharePoint to not create new versions of files post upload which adds to user quota
* Ad configuration option 'create_new_file_version' to create new versions if that is the desire
2024-12-09 14:24:33 +11:00
abraunegg
279057962c
Update Arch Linux instructions (#3036)
* Update Arch Linux instructions
* Re-order list
2024-12-08 14:32:40 +11:00
abraunegg
900ffa814f
Update docker.md (#3028)
* Fix details on docker compose process to clearly articulate that the client must be manually authenticated before running using docker compose file
2024-12-05 06:15:12 +11:00
Pieter Scheffers
c7f1b7f407
feat: optionally use standalone mode for syncing using Docker container (#3018)
* feat: optionally use standalone mode for syncing using Docker container

* Update podman.md
* Update podman.md

---------

Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2024-11-29 06:29:30 +11:00
abraunegg
228e7db188
Implement Feature Request: Support Permanent Delete on OneDrive (#2999)
* Implement Feature Request: Support Permanent Delete on OneDrive (#2803)
2024-11-26 19:30:41 +11:00
abraunegg
c74e008c9b Update usage.md
* Add note about Debian 12 / LMDE6 and installing curl from backports
2024-11-21 21:26:37 +11:00
abraunegg
01da452ae4
Update usage.md (#2990)
* Give more context around curl bugs, impacted distributions
2024-11-21 07:59:03 +11:00
abraunegg
8c1938f400
Add curl bugs to documentation (#2987)
* Add curl bugs to documentation
* If user makes configuration file remediation, dont send a gui notification
2024-11-20 06:52:28 +11:00