* 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
* 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
* 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>
* Update 'skip_file' documentation as to why the existing defaults exist
* Add warning message about 'default' entries for 'skip_file' missing aligning to documentation
* 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
* 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.
* 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
* Fix online path creation to ensure parental path structure is created in a consistent manner
* Avoid redundant calls to create the same parental structure
* 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
* 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.
* Fix the local path calculation function to correctly account for any local path folder structure where a OneDrive Business Shared Folder may be located.
* 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
* 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>
* 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'
* 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
* 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>
* 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
* 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
* 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
* 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
* Fix createRegexCompatiblePath to escape characters that cause issues for regex parsing
* Update 'matchSegment' to reuse 'createRegexCompatiblePath' to be consistent in regex creation
* 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
* 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
* 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>