Commit graph

398 commits

Author SHA1 Message Date
abraunegg
adcbb36df8
Update ubuntu-package-install.md (#3641)
* Fix other heading
2026-02-15 08:08:19 +11:00
abraunegg
527705ec8f
Update ubuntu-package-install.md (#3640)
* Update section about removing the errant systemd service file installed by Debian / Ubuntu distribution packages
2026-02-15 08:00:29 +11:00
abraunegg
881218238a
Update usage.md and known-issues.md regarding AADSTS70000 errors (#3615)
* Add detailed guidance to usage and known-issues documentation explaining
AADSTS70000 errors during authentication. Clarifies that these failures are
caused by invalid or expired authorisation codes, commonly due to browser
extensions or privacy features modifying the redirect URI, and documents
recommended remediation steps.
* Fix 'OneDrive Free Client' as this should read 'OneDrive Client for Linux'
2026-01-24 08:04:40 +11:00
abraunegg
7b3f7a08a4
Correct Docker documentation (#3605)
* Correct Docker documentation as to distribution versions being used for the Docker images. This should have been updated with the December 2025 update
2026-01-13 08:00:46 +11:00
abraunegg
31d2887f71
Update documentation (#3599)
* Update docker documentation to clarify docker mounts as read-write and how to make them read-only for certain scenarios
* Update Ubuntu install guide to fix that ARMHF packages are available for those platforms on the OpenSuSE Build Service
2026-01-09 09:29:34 +11:00
abraunegg
32928bf3ed
Update --force and --force-sync (#3593)
* --force and --resync cannot be used together as --resync blows away the database, thus there is no way to calculate large local deletes
* Update --force-sync documentation
2026-01-03 17:41:44 +11:00
abraunegg
19b050fa79
Improve --resync warning prompt for clarity and safer operation (#3562)
This update refines the --resync user warning prompt to provide clearer,
more accurate guidance on the behaviour and risks associated with performing a
resynchronisation operation.

Key improvements include:

Explicitly explaining that --resync deletes the client’s local state
database and rebuilds it entirely from the current OneDrive contents.

Accurately describing possible outcomes, including overwrite scenarios,
conflict-driven renames or duplications, increased upload/download activity,
and potential Microsoft Graph API throttling (HTTP 429).

Removing incorrect implications that local-only files may be deleted during
--resync (they will instead be uploaded, unless destructive cleanup modes
are explicitly used).

Strengthening safety guidance by recommending:

Maintaining a current backup of the sync_dir

Running the same command with --dry-run before executing a real --resync

Enabling use_recycle_bin so locally triggered online deletions are preserved

Improved formatting and readability for terminal output.

This change enhances user understanding, reduces the likelihood of accidental
data loss, and aligns runtime messaging with the client’s actual synchronisation
logic and documented behaviour.
2025-12-12 12:47:29 +11:00
abraunegg
bbe3f40a0b
Clarify what is enabled with 'display_manager_integration' (#3554)
* Clarify what is enabled with 'display_manager_integration' to avoid the misconception this need to be enabled to use the recycle bin feature
2025-12-11 09:51:55 +11:00
abraunegg
a4598fe358
Clarify 'sync_list' rules in documentation (#3551)
* Clarify 'sync_list' rules and clearly articulate which rules are computationally expensive.
2025-11-28 08:38:58 +11:00
abraunegg
bdf3a77dbe
Update broken link for FreeDesktop.org Trash Specification (#3550)
* Update broken link for FreeDesktop.org Trash Specification and add graphic
2025-11-27 18:46:41 +11:00
abraunegg
cf428828a1
Fix Bug #3536: Fix that large files fail to download due operational timeout being exceeded (#3541)
* Adjust default 'operation_timeout' value to align to CURLOPT_TIMEOUT default
* Update downloadFile() to ensure correct handling when operational timeouts occur to correctly resume download and use correct offset for download
2025-11-20 20:42:05 +11:00
abraunegg
4f634b8340
Update OAuth2 Authentication Process Diagrams (#3537)
* Update OAuth2 Authentication Process Diagrams
2025-11-17 06:50:48 +11:00
abraunegg
408bb80a3c
Add MX Linux (#3532)
* Add MX Linux details
2025-11-14 06:49:02 +11:00
abraunegg
b59c1dbc2d
Fix Bug #3522: OneDrive client create many file versions when file modified time differ (#3526)
* Fix issue where the client will create many file versions when file modified time differ locally to that online, and does not evaluate which timestamp should be corrected - online or local
* Add missing TOC entry in application-config-options.md
2025-11-12 19:40:31 +11:00
abraunegg
78955e0de2
Add configuration option 'disable_version_check' (#3530)
* Add configuration option 'disable_version_check' to allow users to configure whether the application will check the GitHub API for release information to assist in advising users of new application releases.
2025-11-12 07:28:04 +11:00
abraunegg
f860744252
Update Documentation (#3527)
* Update install.md for readability
* Update ubuntu-package-install.md for readability and remove EOL platforms
2025-11-10 18:20:21 +11:00
abraunegg
7bb509c749
Fix Bug #3512: Unexpected deletion of empty nested folders during first sync with 'sync_list' (#3513)
* Fix unexpected deletion of empty nested folders during first sync with sync_list
* Add missing line breaks in usage.md
2025-11-06 10:39:44 +11:00
abraunegg
3082e7a4bd
Update Documentation (#3510)
* Update Documentation
2025-11-05 10:35:42 +11:00
abraunegg
8cfbffa24a
Fix the fetching of maximum open files to be more POSIX compliant (#3508)
* Fix the fetching of maximum open files to be more POSIX compliant
2025-11-04 10:09:56 +11:00
abraunegg
40e0ca4462
Implement Desktop Manager Integration for GNOME and KDE (#3500)
Implement full “Display Manager Integration” support for both GNOME and KDE desktop environments. This new feature allows the OneDrive Client for Linux to detect the active desktop session and automatically:

* Register the configured sync_dir as a “special place” or sidebar entry within the file manager (Nautilus on GNOME; Dolphin on KDE).
* Apply a custom “onedrive” folder icon to the synchronisation directory when the installed icon theme supports it.
* Cleanly install and uninstall required resources (icons, bookmarks, file manager integration) via the Makefile’s install and uninstall targets, thereby supporting system-wide installations, packaging workflows, and per-user installs.
* Introduce a new configuration option display_manager_integration (boolean) to enable or disable this integration behaviour at runtime.
* Update documentation and usage guidance to clearly explain what “Display Manager Integration” means, what this client implements (sidebar entry + icon) and what features remain out-of-scope (context menus, overlay badges, tray icons).
* Ensure safe, idempotent integration logic for both GNOME and KDE (bookmark manipulation, icon theme detection, cache refresh) with fallbacks and minimal dependencies.

With this merge, users installing via make install or system packages will benefit from enhanced desktop usability: the OneDrive folder appears visibly and intuitively within their standard file manager sidebar, making access and identification simpler. At the same time, the core sync engine remains focused on reliable file synchronisation, with the desktop integration layer remaining optional and disabled by default unless explicitly enabled via configuration.
2025-11-03 14:26:49 +11:00
abraunegg
defada7daf
Update Documentation for v2.5.8 (#3507)
* Update Documentation for v2.5.8 release
2025-11-03 10:31:14 +11:00
abraunegg
1e48e42363
Implement FR #3491: Add ONEDRIVE_THREADS Docker option (#3494)
* Add Docker environment variable 'ONEDRIVE_THREADS' to control the value for the number of worker threads used for parallel upload and download operations.
2025-10-28 05:55:08 +11:00
abraunegg
e1cf452ad9
Update ubuntu-package-install.md (#3496)
* Update Step 1 to be clearer
2025-10-25 12:11:16 +11:00
abraunegg
2f339c5663
Implement FR #3435: Add option to remove source folders (#3473)
* Add option to remove source folders when using --upload-only --remove-source-files
* Parental path will only be removed if path is empty - that is, no other folders or files present
2025-10-14 06:47:51 +11:00
Aleix Mariné-Tena
d9e00ee63c
Update docker.md (#3467)
* Document the correct ways to customise runtime behaviour

---------

Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2025-10-10 14:34:14 +11:00
Emily Mabrey
f27874a05a
Fix config example for max_curl_idle (#3469)
* Fix incorrect example for max_curl_idle using monitor_fullscan_frequency
2025-10-10 14:16:48 +11:00
abraunegg
18d267912e
Implement FR #3364: Add --download-file feature (#3459)
* Add feature request --download-file to download a single file based on the online path
2025-10-07 18:07:05 +11:00
abraunegg
10048d8bca
Implement FR #2360: Add websocket notification support (#3413)
* Implement FR #2360: Add websocket notification support
2025-10-05 07:09:27 +11:00
abraunegg
f4cb8ca0aa
Update Client Architecture Documentation: Add details around how the client processes the online state (#3458)
* Add new sections to documentation around how the client processes the online state
2025-10-04 07:35:08 +10:00
Andreas Dieckmann
bd80f62e65
Update documentation regarding own app registrations in Entra ID (#3436)
Added link to instructions for configuring app registration in national-cloud-deployments.md.

Co-authored-by: abraunegg <alex.braunegg@gmail.com>
2025-09-23 07:38:31 +10:00
abraunegg
0e1ac90840
Update safeBackup() function (#3445)
* Update safeBackup() function to ensure that the 'safeBackup' path addition is only added once
* Ensure that 'directories' are not renamed
2025-09-23 05:46:58 +10:00
abraunegg
b4179d1f27
Add Debian 13 details (#3424)
* Add Debian 13 details
2025-08-12 11:43:16 +10:00
abraunegg
1321ae6306
Implement FR #2576: Implement resumable downloads (#3354)
* Implement resumable downloads (FR #2576) by using a state JSON file to track download progress and resuming the download from that offset, post validation of:
  * offset point is where the local point is at
  * hash has not changed online, thus file has not changed online in-between failed download
2025-08-01 06:33:33 +10:00
abraunegg
3e61081515
Clarify using .nosync in mounted directories (#3401)
* Clarify using .nosync in mounted directories
2025-07-31 06:41:16 +10:00
abraunegg
f89cfaa6fc
Update usage.md (#3399)
* Clarify caution message about using bad curl versions to remove ambiguity and clarify that other bugs, not related to HTTP/2 will still impact operational use of this client
2025-07-27 10:15:19 +10:00
abraunegg
4301c2ee67
Update wording within first steps for clarity (#3391)
* Update wording within first steps for clarity
2025-07-22 08:23:28 +10:00
abraunegg
b36fe0a47d
Update 'threads' usage notes (#3389)
* Update 'threads' usage notes to ensure clarity around this application configuration option
2025-07-21 08:07:09 +10:00
abraunegg
4283e95f16
Update install.md with updated AUR and Homebrew details (#3380)
* Add note about which AUR package follows which code release
* Update homebrew post namechange and update ARM64 compatibility
2025-07-12 07:38:31 +10:00
abraunegg
56521bdd4c
Update GitHub Action versions for building Docker containers (#3378)
* Update GitHub Action versions for building Docker containers
* Fix documentation on OS versions used in containers
2025-07-12 07:20:46 +10:00
abraunegg
c3c5bf38bc
Fix Bug #3336: Handle inconsistent OneDrive Personal driveId casing across multiple Microsoft Graph API Endpoints (#3347)
* Handle inconsistent OneDrive Personal driveId casing across multiple Microsoft Graph API Endpoints by ensuring that where ever there is a use of a driveId for a comparison, ensure the value to compare has been transformed to 'lowercase' to avoid the situation where Microsoft Graph API sends the driveId as 'lowercase' in one API response and 'UPPERCASE' in other responses.
2025-07-05 07:14:47 +10:00
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