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.
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.
This updates Docker images to support UID/GID overrides, faling back to running as root.
This also fixes the images to be actually allow executing the binaries as described in the README by adding them to the PATH environment variable.
The README file was overhauled to fix some outdated content and include the new UID/GID override feature.
This PR updates the RPM spec file to mark the config files as such. This ensures that files will not be replaced during updates if they are modified.
Also updated the description slightly to not mention now-defunct services in the description. Also applied this to Debian packages.
The agent based installation has been updated slightly to better differentiate it from the the CLI/GUI package.
Fixed a bug that prevented the preset file from being installed for the agent.
This fixes#6099
This changes the way launchagents are installed via `.pkg` files.
The installers are updated to no longer use `launchtctl load` but rely on `launchctl bootstrap` instead to load in the current user context.
For the Agent, this fixes a problem where the installer would initially start in a root context.
For the GUI package this changes to not rely on `open` to start Duplicati, as that appears to be incompatible with `bootstrap`
The uninstallers are updated handle both `load` / `unload` and `bootstrap` / `bootout` before removing the launchagents.
This fixes#5766