chore(deps): update docker.io/restic/restic docker tag to v0.19.0#438
Open
self-hosted-test[bot] wants to merge 1 commit into
Open
chore(deps): update docker.io/restic/restic docker tag to v0.19.0#438self-hosted-test[bot] wants to merge 1 commit into
self-hosted-test[bot] wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.18.1→0.19.0Release Notes
restic/restic (docker.io/restic/restic)
v0.19.0Compare Source
The following sections list the changes in restic 0.19.0 relevant to
restic users. The changes are ordered by importance.
Summary
restic mountof a Windows system via Sambabackupsource paths do not existfindtime bounds immediatelyfind --packlist blobs for tree packsrcloneandsftpbackends when running in backgroundbackup -vsnapshots --group-bywith--latestchmoderrors on certain file backendsbackup --stdin-from-commandfrom hanging--userand--hostinkey passwdbackupcheckto snapshots selected by filtersself-updateAPI requestsrewritecommandfastestandbettermountcopyin verbose text output--hostoverride environment variableRESTIC_HOSTniceandionicein the Docker imagesnapshotsoutputcheck,copy,diffandstatsmemory usagestatsmountpointDetails
Bugfix #2034: Support serving a
restic mountof a Windows system via SambaA repository mounted using
restic mounton a POSIX system could not use Sambato serve files from backups of Windows systems, while backups of non-Windows
systems could be served successfully. This has now been fixed.
#2034
#4382
#21784
Bugfix #4447: Use mode 0700 for repository directories created over SFTP
When creating a repository over SFTP, restic created the repository directories
with the SFTP server's default permissions, often 0755, rather than the 0700
permissions it uses for local repositories.
Restic now creates these directories with 0700 permissions.
#4447
#21817
Bugfix #4467: Exit with code 3 when some
backupsource paths do not existRestic used to exit with code 0 when a top-level backup source path was missing,
and exited with code 3 only when a child path under an existing source did not
exist. Scripts that relied on the exit code could therefore treat an incomplete
backup as success.
Restic now exits with code 3 when any backup source path does not exist.
#4467
#5347
Bugfix #4759: Error out when environment variables hold invalid values
If the environment variables
RESTIC_COMPRESSION,RESTIC_PACK_SIZE, orRESTIC_READ_CONCURRENCYcould not be parsed, restic used to ignore them.Restic now fails with an error unless the same setting is overridden on the
command line.
#4759
#5592
#5700
Bugfix #5233: Return exit code 3 when failing to remove snapshots
Previously, the
forgetcommand returned exit code 0 when it failed to removeone or more snapshots. This was misleading to scripts.
The
forgetcommand now instead returns exit code 3 when failing to remove oneor more snapshots.
#5233
#5322
Bugfix #5258: Exit with code 130 on SIGINT
Restic used to return exit code 1 on SIGINT. It now returns 130, the usual
convention for a process stopped by Ctrl-C.
#5258
#5363
Bugfix #5280: Reject impossible
findtime bounds immediatelyThe
findcommand now fails with an error when both--oldestand--newestare set and
--oldestis later than--newest.#5280
#5310
Bugfix #5280: Make
find --packlist blobs for tree packsThe
find --pack <tree-pack>command now also reports blobs for packs that onlycontain tree blobs.
#5280
#5664
Bugfix #5354: Allow
rcloneandsftpbackends when running in backgroundPreviously, starting restic in the background could result in unexpected
behavior when using the
rcloneorsftpbackends. For example,restic -r rclone:./example --insecure-no-password init &could cause the callingbashshell to exit unexpectedly.
This has now been fixed.
#5354
#5358
#5493
#5494
Bugfix #5427: Correctly restore ACL inheritance state on Windows
Since security descriptor backups were added in restic 0.17.0, Access Control
Entry inheritance was not restored correctly on Windows; restored permissions
were always marked as explicit (not inherited) even when they were inherited
from a parent folder.
The inheritance flags are now correctly applied when restoring the security
descriptor, preserving the original permission structure.
#5427
#5465
Bugfix #5477: Password prompt was sometimes not shown for
backup -vThe repository password prompt could be hidden when running the
backup -vcommand. This has now been fixed.
#5477
#5554
Bugfix #5487: Mark repository files read-only when using the SFTP backend
Files created through the SFTP backend previously stayed writable. New files now
get read-only permissions where the server supports
chmod.#5487
#5497
Bugfix #5586: Correctly handle
snapshots --group-bywith--latestFor the
snapshotscommand,--latestdid not interact correctly with anon-default
--group-byvalue. This combination now behaves as intended.#5586
#5601
Bugfix #5595: Avoid spurious
chmoderrors on certain file backendsOn filesystems that do not support
chmod(for example CIFS or FUSE-mountedWebDAV), restic since version 0.18.0 failed to remove stale locks, throwing the
error
chmod ...: operation not supported. This has now been fixed.#5595
#5596
Bugfix #5683: Prevent
backup --stdin-from-commandfrom hangingWhen using
--stdin-from-command, thebackupcommand could hang untilmanually cancelled if the backup stopped before all subprocess output was
consumed, for example after a failed upload to the repository. This has now been
fixed.
#5683
#21829
Bugfix #5757: Respect
--userand--hostinkey passwdThe
key passwdcommand previously ignored the--userand--hostoptionsand always stored the new key with the current user and host name. These options
are now honored.
#5757
#21781
Bugfix #21820: Correct handling of duplicate index entries
Before restic 0.10.0, a bug could, in very rare cases, split information about a
pack file across multiple index files.
Since restic 0.17.0, any operation that rewrites the index (like
pruneorrepair packs) could lose part of that information, resulting in errors inlater
checkorpruneruns. This can be fixed by runningrepair packs, andonly repositories using repository format version 1 might be affected.
Split pack index entries are no longer lost during index rewrites. The
checkcommand now reports these cases as errors that can be fixed using the
repair packscommand. On older restic versions, runningrepair indextwice alsofixes the problem.
#21820
#21828
Bugfix #21820: Correctly handle pack files missing from the index
The
repair packscommand was unable to salvage blobs from a pack file if thepack file was not contained in the index or the index entry was incomplete.
The command now uses information from both the index and the pack file header.
#21820
#21827
Change #5293: Prune small packfiles more aggressively
The
prunecommand now repacks more small packfiles by default. The option--repack-smallis no longer needed and has been marked as deprecated. The--repack-smaller-thanoption can still be used to further control repacking ofsmall pack files.
#5293
#21803
Change #5767: Prevent excluding paths explicitly passed to
backupWhen e.g.
restic backup --exclude-if-present .git /home/user/datawas run and/home/user/.gitexisted, restic excluded thedatadirectory from thesnapshot. The same applied to
--exclude-cachesor--one-file-system.Similarly,
restic backup --exclude-larger-than 1M large-file.binproduced anempty snapshot when the file was larger than one megabyte.
The
backupcommand now tracks which files and directories were specified onthe command line and does not apply excludes to those paths. Content inside a
backed-up directory is still filtered by excludes as before.
#5767
#21797
Change #21791: Update dependencies and require Go 1.25 or newer
Dependencies have been updated. Building restic now requires Go 1.25 or newer.
The Windows build with Go 1.26 was also fixed.
#21791
#5619
#21796
Enhancement #3326: Limit
checkto snapshots selected by filtersThe
checkcommand can now restrict pack verification to snapshots chosen withthe usual snapshot filters (
--tag,--host,--path, or explicit snapshotIDs on the command line).
#3326
#5469
#5644
Enhancement #3572: Support restoring ownership by name on UNIX systems
The
restorecommand used to restore file ownership on UNIX systems by UID andGID. It now supports restoring ownership by user and group name with
--ownership-by-name, so that snapshots can be restored on systems wherenumeric IDs do not match those on the backup host.
Note: POSIX ACLs are still restored by numeric value; this change does not add
ACL-by-name support.
#3572
#5449
Enhancement #3738: Optional GitHub token for
self-updateAPI requestsThe
self-updatecommand used only unauthenticated GitHub API requests whenchecking for releases. Shared IP addresses could hit the GitHub rate limit,
resulting in a 403 Forbidden error and preventing updates.
Unauthenticated requests remain the default, but authenticated requests are now
possible. Set the environment variable
GITHUB_ACCESS_TOKENto a GitHubpersonal access token to avoid rate-limit
failures.
#3738
#5568
Enhancement #4278: Support include filters in the
rewritecommandThe
rewritecommand now accepts the same include filter options as therestorecommand (--include,--include-file,--iinclude,--iinclude-file, and short-i). Include and exclude filter options aremutually exclusive.
#4278
#5191
Enhancement #4728: Support zstd compression levels
fastestandbetterRestic now supports the zstd compression modes
fastestandbetter. Set theenvironment variable
RESTIC_COMPRESSIONtofastestorbetter, or pass thesame values with the
--compressionoption.#4728
#5321
Enhancement #4868: Include repository ID in the filesystem name used by
mountThe filesystem exposed by the
mountcommand now includes the repository ID inits name. The ID is printed when opening a repository or can be read with
restic cat config.#4868
#5243
Enhancement #5175: Add status counters to
copyin verbose text outputThe
copycommand now prints additional counters in text mode when--verboseis set: blobs to copy, their on-disk size, and the number of pack files read
from the source repository.
#5175
#5319
Enhancement #5352: Support excluding cloud-backed files on macOS
Previously, restic treated cloud-backed files (such as files stored on iCloud)
like normal local files, forcing a full download of placeholders and other
"meant to be cloud only" content during backups.
The
backupcommand now supports--exclude-cloud-files(previously onlyavailable on Windows) to skip those files on supported macOS versions. From
Sonoma (macOS 14.0) onward the option can prevent unwanted downloads. Older
macOS versions will still download the files during a backup run.
#5352
#5370
Enhancement #5383: Reduce progress bar refresh rates to decrease energy usage
Progress bars were previously updated at 60 frames per second, which could cause
high CPU or GPU usage in some terminal emulators.
The refresh rate is now 10 FPS to conserve energy. For some terminal emulators,
the lower rate is also necessary to allow selecting text in the terminal.
#5383
#5551
#5626
Enhancement #5424: Enable Windows filesystem privileges before file access
Restic used to enable some Windows filesystem privileges only while reading or
writing security descriptors. Extended attributes could therefore be read before
enabling the backup privilege, possibly resulting in missed data or errors.
Restic now enables the relevant filesystem privileges before any file access.
#5424
Enhancement #5440: Make
--hostoverride environment variableRESTIC_HOSTPreviously, when the environment variable
RESTIC_HOSTwas set, snapshotlistings and other operations were always filtered to that host.
Passing
--hostas an empty string (--host=""or--host=) now overridesRESTIC_HOSTand shows snapshots from all hosts.The same override applies to other commands that support snapshot filters,
including
snapshots,forget,find,stats,copy,tag,repair snapshots,rewrite,mount,restore,dump, andls.#5440
#5541
Enhancement #5448: Support configuring
niceandionicein the Docker imageThe container entrypoint now reads optional scheduling hints from the
environment:
The environment variable
NICEsets the process nice value (seeman nice).The environment variable
IONICE_CLASSselects the I/O scheduling class (seeman ionice). Real-time classes need theSYS_NICEcapability added to thecontainer.
The environment variable
IONICE_PRIORITYsets the priority withinIONICE_CLASSand has no effect unlessIONICE_CLASSis set; it defaults to4(neutral priority).For further details, please see:
https://restic.readthedocs.io/en/stable/020_installation.html#docker-container
#5448
Enhancement #5453: Copy multiple snapshots in batches
The
copycommand used to copy snapshots one at a time, even when doing soproduced pack files smaller than the target pack size. This led to many small
files when copying small incremental snapshots.
The
copycommand now copies multiple snapshots together so that small packfiles are avoided where possible.
#5453
#5472
Enhancement #5523: Add Open Container Initiative labels to release Docker image
The release Docker image now includes OCI-style image annotation labels, which
helps external tooling identify the image.
#5523
Enhancement #5531: Reduce Azure storage costs by optimizing uploads
Restic previously used Azure PutBlock and PutBlockList for every upload, which
cost two storage transactions per file and roughly doubled transaction charges
for repositories with many pack files.
Files up to 256 MiB now use PutBlob, requiring only a single transaction per
file and cutting typical transaction costs by about half. Larger blobs still use
block uploads as required by Azure.
#5531
#5544
Enhancement #5562: Rewrite only changed status lines each frame
The status bar rewrote every line on each frame whenever any content changed,
which made selecting text impossible in some terminal emulators even when most
lines were unchanged.
Now only lines that actually change are rewritten on each update.
#5562
#5648
Enhancement #5588: Show timezone context in
snapshotsoutputThe
snapshotscommand now prints which timezone is used for displayedtimestamps. Snapshots may have been created in different timezones but are shown
in the local timezone, so a footer line (for example, timestamps shown in CET)
clarifies the display context when comparing snapshots from several sources.
#5588
Enhancement #5610: Reduce
check,copy,diffandstatsmemory usageThe
check,copy,diffandstatscommands now use less memory whenhandling large snapshots.
#5610
Enhancement #5689: Show more detailed progress for
statsThe
statscommand used to show progress only while loading the index. Duringthe scan it printed only
scanning...with no further updates. It now reportshow many snapshots, files, and blobs have been processed so far.
#5689
#5705
Enhancement #5713: Significantly speed up index loading
Loading the index for a large repository is now significantly faster. Also, the
mountcommand now loads the index once at startup and then only loads newindex files as they appear. It also loads snapshots before printing that the
repository is being served.
#5713
#5720
Enhancement #5718: Stricter and earlier validation of the
mountpointThe
mountcommand previously accepted invalid mount points, resulting in anerror after loading the repository. The specified mount point must now refer to
a directory that the current user can access and write to, and this check is
performed before opening the repository.
#5718
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.