Important
OneDrive Client for Linux v2.5.x contains a database schema change to support the additional functionality and bug fixes in the v2.5.x branch. As such, on your first use of any v2.5.x client version, the database schema will be updated and the client will perform an entire re-validation of your data - both locally and online which may take an extended period of time.
Caution
OneDrive Client for Linux v2.5.x introduces significant changes and is not backwards compatible with v2.4.x. Please ensure that you do not use both v2.5.x and v2.4.x clients with the same Microsoft OneDrive account simultaneously - whether on the same or different systems. If you upgrade to v2.5.x, all your clients must be updated to this version. However, you can revert to v2.4.x at any time if necessary, but do not run different versions at the same time on any system.
Caution
The application has been completely re-written in version 2.5.x, leading to changes in how many features and functions operate compared to version 2.4.x. It is crucial to read the updated documentation thoroughly.
Note
Dependency Change in v2.5.6 and Later
Starting with version v2.5.6, the OneDrive client now requires D-Bus support for Microsoft Intune authentication.
As a result, any distribution package must declare libdbus-1-3
(runtime) and libdbus-1-dev
(build-time) as dependencies on Debian-based distributions, or dbus
(runtime) and dbus-devel
(build-time) on Red Hat-based distributions.
Maintainers for other distributions must ensure that equivalent D-Bus development and runtime libraries are included as part of their packaging and build process to avoid runtime failures or missing functionality.
Feature Requests
- Implement Feature Request: Add local recycle bin or trash folder option (#3168)
- Implement Feature Request: Add configurable upload delay to support Obsidian (#3262)
- Implement Feature Request: Add validation of bools in config file (#3295)
- Implement Feature Request: Add native support for authentication via Intune dbus interface (#3274, #3297, #3303)
- Implement Feature Request: Implement OAuth2 Device Authorisation Flow (#3313)
Enhancements
- Enhancement: Add gdc support to enable Gentoo compilation (#3213)
- Enhancement: Add a notification to user regarding number of objects received from OneDrive API (#3247)
- Enhancement: Update 'skip_file' documentation and option validation (#3251)
- Enhancement: Add a new configuration option 'force_session_upload' to support editors and applications using atomic save operations (#3256, #3259)
- Enhancement: Added 2 functions to check for the presence of required remoteItem elements to create a Shared Folder DB entries (#3270)
Bug Fixes
- Fix Regression: Fixed regression in handling Microsoft OneNote package folders being created in error (#3160)
- Fix Regression: Fix OneNote file MimeType detection (#3162)
- Fix Regression: Fix supporting Personal Shared Folders that have been renamed (#3308)
- Fix Bug: Correct the logging output for 'skip_file' exclusions (#3176)
- Fix Bug: Validate raw JSON from Graph API for 15 character driveId API bug (#3174)
- Fix Bug: Fix JSON exception on webhook subscription renewal due to 308 redirect (#3172)
- Fix Bug: Update 'sync_list' line parsing to correctly escape characters for regex parsing (#3184)
- Fix Bug: Fix that an empty folder or folder with onenotes are deleted online when content is shared from a SharePoint Library Document Root (#3163)
- Fix Bug: Fix that empty 'skip_file' forces resync indefinitely (#3194)
- Fix Bug: Fix that 'sync_list' rule segment|depth check fails in some scenarios and implement a better applicable mechanism check (#3204)
- Fix Bug: Resolve crash when getpwuid() breaks when there is a glibc version mismatch (#3210)
- Fix Bug: Resolve crash when opening file fails when computing file hash (#3214)
- Fix Bug: Add check for invalid exclusion 'sync_list' exclusion rules (#3221)
- Fix Bug: Fix uploading of modified files when using --upload-only & --remove-source-files (#3224)
- Fix Bug: Fix local path calculation for Relocated OneDrive Business Shared Folders (#3226, #3227)
- Fix Bug: Fix 'sync_list' anywhere rule online directory creation (#3229)
- Fix Bug: Fix online path creation to ensure parental path structure is created in a consistent manner (#3233)
- Fix Bug: Fix handling of POSIX check for existing online items (#3238)
- Fix Bug: Fix args printing in dockerfile entrypoint (#3248)
- Fix Bug: Fix the testing of parental structure for 'sync_list' inclusion when adding inotify watches (#3243)
- Fix Bug: Fix failure to handle API 403 response when file fragment upload fails (#3246)
- Fix Bug: Fix application notification output to be consistent when skipping integrity checks (#3254)
- Fix Bug: Fix how local timestamps are modified (#3256, #3259)
- Fix Bug: Fix how online remaining free space is calculated and consumed internally for free space tracking (#3264)
- Fix Bug: Fix logic of determining if a file has valid integrity when using --disable-upload-validation (#3265)
- Fix Bug: Format the OneDrive change into a consumable object for the database earlier to use values in application logging (#3269)
- Fix Bug: Fix upload session offset handling to prevent desynchronisation on large files (#3277)
- Fix Bug: Fix implementation of 'write_xattr_data' to support FreeBSD (#3285)
- Fix Bug: Update hash functions to ensure file is closed if opened (#3288)
- Fix Bug: Dont blindly run safeBackup() if the online timestamp is newer (#3289)
- Fix Bug: Only set xattr values when not using --dry-run (#3290)
- Fix Bug: Fix UTC conversion for existing file timestamp post file download (#3294)
- Fix Bug: Fix that 'check_nosync' and 'skip_size' configuration options when changed, were not triggering a --resync correctly (#3296)
- Fix Bug: Ensure file is closed before renaming to improve compatibility with GCS buckets and network filesystems (#3299)
- Fix Bug: If a file fails to download, path fails to exist. Check path existence before setting xattr values (#3307)
Other Changes | Fixes
- Change logging output level for JSON elements that contain URL encoding (#3232)
- Change 'configure.ac' to use a static date value as Debian 'reproducible' build process forces a future date to rebuild any code to determine reproducibility (#3249)
- Updated .gitignore to ignore files created during configure to be consistent with other files generated from .in templates (#3188)
- Updated bash,fish and zsh completion files to align with application options (#3195, #3197)
- Updated 'config' file to align to application options with applicable descriptions (#3200)
- Updated testbuild runner
- Updated Fedora Docker OS version to Fedora 42
- Updated Ubuntu 24.10 curl version 8.9.1 to known bad curl versions and document the bugs associated with it
- Updated Makefile to pass libraries after source files in compiler invocation (#3272)
- Updated 'configure.ac' to support more basename formats for DC (#3273)
- Update how threads are set based on available CPUs (#3309)
- Update setLocalPathTimestamp logging output (#3310)
- Update when to perform thread check and set as early as possible (#3314)
- Updated documentation
Known Issues
- Refer to known-issues.md
Outstanding Issues
- Refer to Open Issues