Commit graph

1,517 commits

Author SHA1 Message Date
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
57dbb4e492
Update force session upload logging (#3259)
* Update force session upload logging
* Ensure if we are going to create directories online, this is not the OneDrive root that is being created
2025-05-03 07:00:06 +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
abraunegg
a51fabc22c
Fix Bug #3250: Be consistent with application output when skipping integrity checks (#3254)
* Be consistent with application output when skipping integrity checks. If integrity validation has been disabled, the user has configured this, do not sent a GUI or normal application log output.
* Update allow.txt - add missing words
2025-04-30 06:23:26 +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
715cf3e9e6
Fix Bug #3245: Handle API 403 response when file fragment upload fails (#3246)
* Catch a 403 Access denied response and handle differently to other errors where a re-try is possible
2025-04-30 05:53:35 +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
102ecae672
Fix Bug #3241: Test parental structure for sync_list inclusion (#3243)
* When the 'sync_list' rules only use anywhere rules, a path that is meant to be included will be excluded as the parental path actually is not part of the path being tested. When adding inotify watches, before we return, check the path tree for inclusion via sync_list
2025-04-28 08:56:12 +10:00
abraunegg
ae08287cbc
Update configure.ac (#3249)
* Use static date value for PACKAGE_DATE for man page date as Debian 'reproducible' build process forces a future date to rebuild any code to determine reproducibility. The challenge here is that the application was dynamically configuring the date for the man page, based on *when* the build was occurring. This was then being flagged by Debian as an 'unreproducible' build when technically, the actual binary is what should be tested as being reproducible, not the man page .... so to appease the Debian false positive stupidity, make the man page date now static, rather than dynamic.
2025-04-27 14:35:38 +10:00
Yuan Liu
a95bd83604
Fix args printing in dockerfile entrypoint (#3248)
* Fix args printing in dockerfile entrypoint
2025-04-27 14:14:00 +10:00
abraunegg
5f95e4f018
Add a notification to user regarding number of objects received from OneDrive API (#3247)
* Add a notification to user regarding number of objects received from OneDrive API if this equals 300K or above
2025-04-27 10:57:19 +10:00
abraunegg
b7e61c93e8
Fix Bug #3237: Fix handling of POSIX check for existing online items (#3238)
* Enhance POSIX compliance test by performing a toLower conversion to ensure strings being tested are exactly the same
* Add debug logging line when lowercase match of input values occur
* If a 'file' is found at that location, debug output the contents earlier for easier logfile analysis
2025-04-27 07:40:51 +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
63f8f9c12e
Fix online path creation process (#3233)
* Fix online path creation to ensure parental path structure is created in a consistent manner
* Avoid redundant calls to create the same parental structure
2025-04-23 09:56:31 +10:00
abraunegg
31313516e4
Change logging output level for JSON elements that contain URL encoding (#3232)
* Change logging output level for JSON elements that contain URL encoding
2025-04-23 06:59:14 +10:00
abraunegg
5b41409ad6
Update Fedora Docker image to Fedora 42 (#3231)
* Update Fedora Docker image to Fedora 42
2025-04-23 06:47:31 +10:00
abraunegg
1d50971bad
Fix 'sync_list' anywhere rule online directory creation (#3229)
* When using 'sync_list' anywhere rules, if an anywhere rule is being used for files, ensure that the parental path is always created online , or at least is available online, so that the matched file can be uploaded to the correct path online
2025-04-23 05:19:31 +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
abraunegg
68ae5f0b99
Fix Bug #3193: Fix local path calculation for Relocated OneDrive Business Shared Folders when using --resync (#3227)
* Update code to handle existing local data in a --resync scenario
2025-04-22 14:31:01 +10:00
abraunegg
d8ecdf3cd3
Fix Bug #3193: Fix local path calculation for Relocated OneDrive Business Shared Folders (#3226)
* Fix the local path calculation function to correctly account for any local path folder structure where a OneDrive Business Shared Folder may be located.
2025-04-22 11:22:07 +10:00
abraunegg
d084f0b584
Fix Bug #3223: Fix uploading of modified files when using --upload-only & --remove-source-files (#3224)
* When in a --upload-only & --remove-source-files scenario, modified files may not be in the database, even more so in a --resync scenario. When this happens, there is no DB entry regarding the detected modified file to be uploaded, thus, values are never set
* Fetch online details when there is no DB record available
* Ensure that if --upload-only & --remove-source-files is being used, remove the modified local file
* Ensure removal when using --upload-only & --remove-source-files , this is done in a consistent manner
2025-04-21 07:13:39 +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
abraunegg
fb4c16a622
Fix Bug #3220: Add check for invalid exclusion 'sync_list' exclusion rules (#3221)
* Add a check for invalid exclusion 'sync_list' rule(s) - '!/*' or '!/' .. warn that this rule will not be used and to read the documentation for 'sync_list'
2025-04-19 19:08:42 +10:00
abraunegg
d29a737f3f
Fix Bug #3212: Handle error opening file when computing file hash (#3214)
* Despite code validation and the file just being written to disk, and the check passing that the file exists, handle that we now cannot open the file that was just created and wrote data to. Catch any error when attempting to open file to generate the file hash
2025-04-17 07:14:54 +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
0d8a5728cf
Update testbuild.yaml (#3216)
* Ubuntu 20.04 runners are retired and removed as per: This is a scheduled Ubuntu 20.04 retirement. Ubuntu 20.04 LTS runner will be removed on 2025-04-15. For more details, see https://github.com/actions/runner-images/issues/11101
2025-04-16 19:00:30 +10:00
abraunegg
3a34a0049a
Fix Bug #3208: Resolve crash when getpwuid() breaks when there is a glibc version mismatch (#3210)
* Remove enforce() as this will exit the application, attempt to get the user details safely
2025-04-15 05:28:14 +10:00
abraunegg
f76dcdaea4 Update usage.md
* Remove ambiguity around 'threads' option
2025-04-13 18:54:06 +10:00
abraunegg
3c0559443a
Fix Bug #3203: Revert initial 'sync_list' rule segment|depth check and implement a better applicable mechanism check (#3204)
* Remove 'if (pathSegments < wildcardDepth) {' check introduced via 8ecdbab20f as this breaks path checking on --upload-only
* Update PR based on testing against bug report
* Update allow.txt
2025-04-11 18:47:13 +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
abraunegg
51a898a14d
Update 'config' file to align to application options (#3200)
* Update default config file to have a brief description about the config option
* Align config file to current options
* Update reference where the config options are documented
2025-04-05 08:06:44 +11:00
abraunegg
7d5f635503
Fix Bug #3186: Fix that empty 'skip_file' forces resync indefinitely (#3194)
* If the user sets an empty 'skip_file' configuration, do not reset this to the application defaults
2025-04-05 05:57:30 +11:00
abraunegg
b2945ebe4f
Fix Bug #3171: Fix empty folder or folder with onenotes are deleted online when content is shared from a SharePoint Library Document Root (#3163)
* Fix empty folder or folder with onenotes are deleted online when content is shared from a SharePoint Library Document Root
* Add DB file debug output to detail if DB file is present or not
2025-04-04 18:56:23 +11:00
abraunegg
0b4213a5ba
Update remaining completion files (#3197)
* Update remaining completion files
2025-04-04 06:12:23 +11:00
hideo aoyama
2d2a2c3848
Add missing cli options (#3195)
* Update 'complete.bash' to align with application options
2025-04-04 05:16:34 +11:00
Romadelf
c851b21eb0
Ignoring files created during configure to be consistent with other files generated from .in templates (#3188)
* Ignoring files created during configure to be consistent with other files generated from .in templates
2025-04-04 05:14:33 +11:00
abraunegg
519e9ffb3a
Fix Bug #3175: Update 'sync_list' line parsing to correctly escape characters for regex parsing (#3184)
* Fix createRegexCompatiblePath to escape characters that cause issues for regex parsing
* Update 'matchSegment' to reuse 'createRegexCompatiblePath' to be consistent in regex creation
2025-03-30 07:39:21 +11:00
abraunegg
9d329bcafc
Fix Bug #3167: Fix JSON exception on webhook subscription renewal due to 308 redirect (#3172)
* Fix JSON exception on subscription renewal when a 308 response is provided by the Microsoft Graph API
* Add support for 307 and 308 re-directions
* Update how create subscription is performed and what resourceItem path is used
2025-03-28 08:53:38 +11:00
abraunegg
90eef7c195
Fix Bug #3165: Validate raw JSON from Graph API for 15 character driveId API bug (#3174)
* Validate the raw JSON files as provided by Microsoft Graph API for the 15 character driveId bug
* Fix application of newDriveIdEntry
* Update PR based --local-first --resync use and obtaining the correct data for Shared Folders
* Perform driveId length on root JSON to avoid a false positive on testing driveId not being equal to appConfig.defaultDriveId to flush out 'root' remote drive entries that we dont add
2025-03-28 08:50:19 +11:00
abraunegg
737244e5c7
Fix Bug #3165: Correct logging output for 'skip_file' exclusions (#3176)
* Correct logging output for 'skip_file' exclusions
2025-03-25 06:55:41 +11:00
abraunegg
62c3d87b9f
Fix OneNote file MimeType detection (#3162)
* Fix OneNote file MimeType detection to ensure that the actual MimeType is used and the file extension is matched before excluding
2025-03-21 18:26:40 +11:00
abraunegg
fd74b19cae
Fix regression of Microsoft OneNote package folder being created in error (#3160)
* Fix regression of Microsoft OneNote package folder being created in error
2025-03-20 20:27:44 +11:00
abraunegg
be13f9759b
Release files for 2.5.5 (#3154) v2.5.5
* Release files for 2.5.5
2025-03-17 08:52:03 +11:00
abraunegg
e47f289aac
Support localizedMessage error messages provided by Microsoft Graph API (#3153)
* Support localizedMessage error messages in application output if this is provided in the JSON response from Microsoft Graph API
2025-03-16 12:09:48 +11:00
abraunegg
a3aef26c97
Fix 'Unsupported platform' for inotify watches (#3152)
* Fix 'Unsupported platform' for inotify watches by using the correct predefined version definition for Linux.
2025-03-16 08:48:40 +11: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