This PR removes the supplementary groups addition to the service files on Linux.
Turns out that the override does not support variables, so it is not possible to supply the groups this way.
The right way to do this is to run something like:
```
sudo systemctl edit duplicati.service
```
Then add the directive:
```
[Service]
SupplementaryGroups=media backup
```
When saving, an override file will be created, likely in:
```
/etc/systemd/system/duplicati.service.d/override.conf
```
You can now reload the daemon, and the override will persist even on package upgrades.
This fixes compatibility with OpenSUSE by using the target filenames as dependencies instead of the package names that differ (libICE vs libICE6).
This fixes#6166
This PR narrows the files that are captured as being provided/owned by Duplicati, to avoid cases where it would match something overly broad.
This fixes issue #2540
However, it looks like issue #2540 was resolved in Fedora at some point as it was no longer an issue in Fedora 43.
Key changes:
- Add `MacOSSnapshot` class implementing `SnapshotBase`
- Add helper scripts for creating, finding, and removing APFS snapshots
- Update `SnapshotUtility` to initialize macOS snapshots
- Enable `snapshot-policy` option for macOS in `Options.cs`
- Update build configuration to include APFS scripts
- Update snapshot test utility with macOS support
This fixes#6409
This adds back support for Synology DSM.
The implementation is compatible with DSM 7.2+ and integrates with DSM to forward requests through the DSM server into Duplicati.
The setup features database locks, using a random auth-key so DSM handles authentication.
The database is encrypted with a random key, and all data is stored in the `var` folder.
The uninstall can optionally remove the `var` data.
This is still a work in progress. The authentication integration with DSM does not currently work.
This PR adds an MSI property that can be set with `NOSCRIPT=true`.
Setting the property will disable scripting in the MSI and thus prevent starting/stopping running services.
Also made the stop-service script non-critial, so it is possible to install the MSI even if the script fails to start or returns an error.
This PR adds detection of the MacOS Photos folder, and intercepts reads and replaces them with PhotoKit calls.
With this, it is possible to make backups of all MacOS Photos, even if they are not stored locally.
The previous versions would just make a backup of the on-disk structure, which was not guaranteed to contain all photos, but instead has various indexing for finding photos, and may contain some original photos.
The option `--photos-handling` controls how Duplicati now deals with the Photos folder. The options are:
- `LibraryOnly`: Same as before, just treat it as a folder
- `PhotosOnly`: Ignore the folder contents and just back up the actual photos
- `PhotosAndLibrary` (default): Make a backup of the photos and the library on-disk. This may cause images to be stored twice, but de-duplication will usually limit the storage increase.
The option `--photos-library-path` can be used to point to the on-disk Photo library that should be handled, in case the auto-detection does not pick it up. If this does not point to a valid Photoslibrary, or the path is not being backed up, no special handling will be done.
Note that the restore is not restoring into Photos itself, but instead restores into a sub-folder in the Photolibrary that is called `dup_backup`. To get the photos out after a restore, one needs to right-click the Photolibrary folder, and choose "Show package contents" and then the `dup_backup` folder is revealed.
This is done to keep all photos in the same folder, but avoid messing with the structure of the on-disk Photolibrary.
A future update could allow restoring back into Photos, and metadata is captured for each image to eventually allow this.
This fixes#6381
Since .NET dynamically loads libicu, it is not prone to ABI breakage and can load virtually any version.
However, there is no `Depends: libicu*` option in Debian packages, so we need the explicit package version. This is prone to breaking as new Debian version bump the version number.
This PR changes the `Depends:` to `Recommends:` so `libicu` is installed if possible, but does not prevent installation.
For cases where the is no `libicu` on the system, there is now a `preinst` script which will warn if the library is missing, but not prevent installation.
The warning should only show in Docker images or similar slim contexts, as `libicu` is otherwise installed with the base system.