This refactors a part of the database and adds a new "sync" command that reuses a lot of the backup logic to take a set of sources and apply them to a backend.
Unlike the backup process, the sync copies files verbatim without any encryption.
This improves the secret provider by allowing a value of `default://` to get the system default provider (if one exists).
The license checker now supports multiple formats for the on-disk file.
This PR updates the LibSecret support to work correctly on KDE which uses a slightly different default collection.
With this PR the "default" alias is resolved and used by default. If no such collection is found, the collection `login` is used.
This was the intended logic before, but the alias was not resolved, so the code looked for a literal `default` collection and then fell back to `login`. On KDE systems this could cause issues by creating a new collection literally named `default` which would then fail to resolve.
With this update the libSecret works correctly on Plasma 6 (`kwalletd6`).
Support for Plasma 5 is not complete as the libsecret implementation there is different and deprecated. Here, installing Gnome Keyring is a workaround.
This fixes#6891
This PR fixes an issue introduced with a rewrite of the MSSQL logic.
The issue is caused by MSSQL having a concept of "default instance" vs "named instance". Logically, the "default instance" has a name, but it is presented differently throughout.
The code was updated to correctly handle "named instance", but this broke support for "default instance".
The paths look similar to this:
- Default instance: `%MSSQL%\Server\Database`
- Named instance: `%MSSQL%\Server\Instance\Database`
This is slightly problematic because given a path with three parts, you cannot know if it targets "default instance + database" or "named instance".
To account for this the code has been rewritten to explicitly keep track of which case we are in, and were there is ambiguity, both cases are tested. In the odd case where both match, this is treated as an error.
The filters were being applied slightly differently than the regular filters, by applying include, then exclude, and allowing include to add new elements.
This has been standardized so we now apply the filters the same way as for regular filters where "first match wins", and only source paths can introduce a new database.
Verified with both "default instance" and "named instance" on the same machine.
This fixes#6551
This fixes#6969
This PR fixes a few places where the lock mode was a string, resulting in the UI asking the user to type a string.
With this change, the parsing is standardized and the options present as enums, giving a dropdown in the UI.