2
2
mirror of https://github.com/octoleo/restic.git synced 2024-06-01 00:20:48 +00:00

Merge pull request #4135 from restic/changelogs

Polish changelogs
This commit is contained in:
rawtaz 2023-01-08 20:04:24 +01:00 committed by GitHub
commit e2bcfd68dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 189 additions and 175 deletions

View File

@ -1,7 +1,7 @@
Enhancement: Implement rewrite command
Enhancement: Implement `rewrite` command
We've added a new command which allows to rewrite existing snapshots to remove
unwanted files.
Restic now has a `rewrite` command which allows to rewrite existing snapshots
to remove unwanted files.
https://github.com/restic/restic/issues/14
https://github.com/restic/restic/pull/2731

View File

@ -1,16 +1,15 @@
Enhancement: "Everything is ok" message after retrying
Enhancement: Inform about successful retries after errors
When a recoverable error is encountered, restic displays a warning message
saying it's retrying, like this one:
When a recoverable error is encountered, restic shows a warning message saying
that it's retrying, e.g.:
Save(<data/956b9ced99>) returned error, retrying after 357.131936ms: CreateBlockBlobFromReader: Put https://example.blob.core.windows.net/restic/data/95/956b9ced99...aac: write tcp 192.168.11.18:51620->1.2.3.4:443: write: connection reset by peer
`Save(<data/956b9ced99>) returned error, retrying after 357.131936ms: ...`
This message can be a little confusing because it seems like there was an
error, but we're not sure if it was actually fixed by retrying.
This message can be confusing in that it never clearly states whether the retry
is successful or not. This has now been fixed such that restic follows up with
a message confirming a successful retry, e.g.:
restic is now displaying a confirmation that the action was successful after retrying:
Save(<data/956b9ced99>) operation successful after 1 retries
`Save(<data/956b9ced99>) operation successful after 1 retries`
https://github.com/restic/restic/issues/1734
https://github.com/restic/restic/pull/2661

View File

@ -1,11 +1,11 @@
Enhancement: Improve handling of directories with duplicate entries
If for some reason a directory contains a duplicate entry, this caused the
backup command to fail with a `node "path/to/file" already present` or `nodes
If for some reason a directory contains a duplicate entry, the `backup` command
would previously fail with a `node "path/to/file" already present` or `nodes
are not ordered got "path/to/file", last "path/to/file"` error.
The error handling has been changed to only report a warning in this case. Make
sure to check that the filesystem in question is not damaged!
The error handling has been improved to only report a warning in this case. Make
sure to check that the filesystem in question is not damaged if you see this!
https://github.com/restic/restic/issues/1866
https://github.com/restic/restic/issues/3937

View File

@ -1,10 +1,10 @@
Bugfix: Mount command should return exit code 0 after receiving Ctrl-C
Bugfix: Make `mount` return exit code 0 after receiving Ctrl-C / SIGINT
To stop the mount command, a user has to press Ctrl-C or send a SIGINT to
restic. This caused restic to exit with a non-zero exit code.
To stop the `mount` command, a user has to press Ctrl-C or send a SIGINT
signal to restic. This used to cause restic to exit with a non-zero exit code.
We have changed the exit code to zero as this is the expected way to stop the
mount command.
The exit code has now been changed to zero as the above is the expected way
to stop the `mount` command and should therefore be considered successful.
https://github.com/restic/restic/issues/2015
https://github.com/restic/restic/pull/3894

View File

@ -3,13 +3,13 @@ Enhancement: Support B2 API keys restricted to hiding but not deleting files
When the B2 backend does not have the necessary permissions to permanently
delete files, it now automatically falls back to hiding files. This allows
using restic with an application key which is not allowed to delete files.
This prevents an attacker to delete backups with the API key used by restic.
This can prevent an attacker from deleting backups with such an API key.
To use this feature create an application key without the deleteFiles
To use this feature create an application key without the `deleteFiles`
capability. It is recommended to restrict the key to just one bucket.
For example using the b2 command line tool:
For example using the `b2` command line tool:
b2 create-key --bucket <bucketName> <keyName> listBuckets,readFiles,writeFiles,listFiles
`b2 create-key --bucket <bucketName> <keyName> listBuckets,readFiles,writeFiles,listFiles`
Alternatively, you can use the S3 backend to access B2, as described
in the documentation. In this mode, files are also only hidden instead

View File

@ -1,11 +1,11 @@
Enhancement: only open connection once for `init` command using sftp backend
Enhancement: Make `init` open only one connection for the SFTP backend
The `init` command using the sftp backend used to connect twice to the
repository. This can be inconvenient if the user must enter a password or cause
`init` to fail if the server does not correctly close the first sftp
The `init` command using the SFTP backend used to connect twice to the
repository. This could be inconvenient if the user must enter a password,
or cause `init` to fail if the server does not correctly close the first SFTP
connection.
This has been fixed by reusing the initial sftp connection.
This has now been fixed by reusing the first/initial SFTP connection opened.
https://github.com/restic/restic/issues/2152
https://github.com/restic/restic/pull/3882

View File

@ -1,12 +1,12 @@
Enhancement: Redownload cached data if invalid
Enhancement: Handle cache corruption on disk and in downloads
In rare situations, like for example after a system crash, the data stored
in the cache might be corrupted. This could cause restic to fail and
required manually deleting the cache.
in the cache might be corrupted. This could cause restic to fail and required
manually deleting the cache.
Restic now automatically removes broken data from the cache, allowing it
to recover from such a situation without user intervention. In addition,
restic retries downloads which return corrupt data in order to handle
restic retries downloads which return corrupt data in order to also handle
temporary download problems.
https://github.com/restic/restic/issues/2533

View File

@ -1,22 +1,17 @@
Bugfix: Don't read password from stdin for backup --stdin
Bugfix: Don't read password from stdin for `backup --stdin`
Restic backup previously tried to read first the password, then the data
to be backed up from standard input. This meant it would often confuse part
of the data for the password.
The `backup` command when used with `--stdin` previously tried to read first
the password, then the data to be backed up from standard input. This meant
it would often confuse part of the data for the password.
From now on, restic backup --stdin will exit with the message
From now on, it will instead exit with the message `Fatal: cannot read both
password and data from stdin` unless the password is passed in some other
way (such as `--restic-password-file`, `RESTIC_PASSWORD`, etc).
Fatal: cannot read both password and data from stdin
unless the password is passed in some other way (--restic-password-file,
RESTIC_PASSWORD, etc.). To enter the password interactively, a password
command has to be used. For example, on Linux,
mysqldump somedatabase |
restic backup --stdin \
--password-command='sh -c "systemd-ask-password < /dev/tty"'
securely reads the password from the terminal.
To enter the password interactively a password command has to be used. For
example on Linux, `mysqldump somedatabase | restic backup --stdin
--password-command='sh -c "systemd-ask-password < /dev/tty"'` securely reads
the password from the terminal.
https://github.com/restic/restic/issues/2591
https://github.com/restic/restic/pull/4011

View File

@ -1,8 +1,8 @@
Bugfix: Restore symbolic links on windows
Enhancement: Support restoring symbolic links on Windows
We've added support to restore symbolic links on windows.
Because of windows specific restrictions this is only possible when running
restic having SeCreateSymbolicLinkPrivilege privilege or when running as admin.
The `restore` command now supports restoring symbolic links on Windows. Because
of Windows specific restrictions this is only possible when running restic with
the `SeCreateSymbolicLinkPrivilege` privilege or as an administrator.
https://github.com/restic/restic/issues/1078
https://github.com/restic/restic/issues/2699

View File

@ -1,17 +1,20 @@
Enhancement: Stricter repository lock handling
Restic commands kept running even if they failed to refresh their locks in
time. This can be a problem if a concurrent call to `unlock` and `prune`
removes data from the repository. Not refreshing a lock in time can for example
be caused by a client switching to standby while running a backup.
Previously, restic commands kept running even if they failed to refresh their
locks in time. This could be a problem e.g. in case the client system running
a backup entered the standby power mode while the backup was still in progress
(which would prevent the client from refreshing its lock), and after a short
delay another host successfully runs `unlock` and `prune` on the repository,
which would remove all data added by the in-progress backup. If the backup
client later continues its backup, even though its lock had expired in the
meantime, this would lead to an incomplete snapshot.
Lock handling is now much stricter. Commands requiring a lock are canceled if
the lock is not refreshed successfully in time.
In addition, if a lock file is not readable restic will not allow starting a
command. It may be necessary to remove invalid lock file manually or using
`unlock --remove-all`. Please make sure that no other restic processes are
running concurrently.
To address this, lock handling is now much stricter. Commands requiring a lock
are canceled if the lock is not refreshed successfully in time. In addition,
if a lock file is not readable restic will not allow starting a command. It may
be necessary to remove invalid lock files manually or use `unlock --remove-all`.
Please make sure that no other restic processes are running concurrently before
doing this, however.
https://github.com/restic/restic/issues/2715
https://github.com/restic/restic/pull/3569

View File

@ -1,9 +1,9 @@
Change: Include full snapshot ID in JSON output of the bacukp command
Change: Include full snapshot ID in JSON output of `backup`
We have changed the JSON output of the backup command to include the full snapshot ID instead of just a shortened version.
The latter can be ambiguous in rare cases.
To derive the short ID, truncate the full ID down to 8 characters.
We have changed the JSON output of the backup command to include the full
snapshot ID instead of just a shortened version, as the latter can be ambiguous
in some rare cases. To derive the short ID, please truncate the full ID down to
eight characters.
https://github.com/restic/restic/issues/2724
https://github.com/restic/restic/pull/3993

View File

@ -1,7 +1,7 @@
Enhancement: Add support for `credential_process` to S3 backend
We have updated the library used for the S3 backend. This adds support for the
`credential_process` option in the aws credential configuration.
Restic now uses a newer library for the S3 backend, which adds support for the
`credential_process` option in the AWS credential configuration.
https://github.com/restic/restic/issues/3029
https://github.com/restic/restic/issues/4034

View File

@ -1,8 +1,8 @@
Enhancement: Support mount command on macOS using macFUSE 4.x
Enhancement: Make `mount` command support macOS using macFUSE 4.x
We have switched to a different version of the fuse library used to mount
snapshots. This adds support for macFUSE 4.x which is necessary for recent
macOS versions.
Restic now uses a different FUSE library for mounting snapshots and making them
available as a FUSE filesystem using the `mount` command. This adds support for
macFUSE 4.x which can be used to make this work on recent macOS versions.
https://github.com/restic/restic/issues/3096
https://github.com/restic/restic/pull/4024

View File

@ -1,7 +1,7 @@
Enhancement: Support json output for the `init` command
Enhancement: Support JSON output for the `init` command
The `init` command ignored the `--json` flag. It now outputs a JSON message if
the repository was created successfully.
The `init` command used to ignore the `--json` option, but now outputs a JSON
message if the repository was created successfully.
https://github.com/restic/restic/issues/3124
https://github.com/restic/restic/pull/3132

View File

@ -1,13 +1,14 @@
Bugfix: Reliably delete files on Backblaze B2
Bugfix: Delete files on Backblaze B2 more reliably
Restic used to only delete the latest version of files stored in B2. In most
cases this works well as there is only a single version. However, due to
retries while uploading it is possible for multiple file versions to be stored
at B2. This can lead to various problems if files still exist that should have
been deleted.
cases this worked well as there was only a single version of the file. However,
due to retries while uploading it is possible for multiple file versions to be
stored at B2. This could lead to various problems for files that should have
been deleted but still existed.
We have changed the implementation to delete all of them. This doubles the
number of Class B transactions necessary to delete files.
The implementation has now been changed to delete all versions of files, which
doubles the amount of Class B transactions necessary to delete files, but
assures that no file versions are left behind.
https://github.com/restic/restic/issues/3161
https://github.com/restic/restic/pull/3885

View File

@ -1,11 +1,11 @@
Bugfix: SFTP backend now checks for disk space
Bugfix: Make SFTP backend report no space left on device
A backup to an SFTP backend would spew repeated SSH_FX_FAILURE messages when
the remote disk is full. Restic now reports "sftp: no space left on device"
Backing up to an SFTP backend would spew repeated SSH_FX_FAILURE messages when
the remote disk was full. Restic now reports "sftp: no space left on device"
and exits immediately when it detects this condition.
A fix for this issue was promised in restic 0.12.1, but the fix itself
contained a bug that prevented it from triggering.
A fix for this issue was implemented in restic 0.12.1, but unfortunately the
fix itself contained a bug that prevented it from taking effect.
https://github.com/restic/restic/issues/3336
https://github.com/restic/restic/pull/3345

View File

@ -1,10 +1,9 @@
Bugfix: Improve handling of interrupted syscalls in `mount` command
Accessing restic's fuse mount could result in "input / output" errors when
using programs in which syscalls can be interrupted. This is for example the
case for go programs.
We have corrected the error handling for interrupted syscalls.
Accessing restic's FUSE mount could result in "input/output" errors when using
programs in which syscalls can be interrupted. This is for example the case for
Go programs. This has now been fixed by improved error handling of interrupted
syscalls.
https://github.com/restic/restic/issues/3567
https://github.com/restic/restic/issues/3694

View File

@ -1,7 +1,7 @@
Bugfix: Fix stuck `copy` command when setting backend connections to 1
Bugfix: Fix stuck `copy` command when `-o <backend>.connections=1`
When calling the copy command using `copy -o <backend>.connections=1` this
caused the command to be stuck permanently. This has been fixed.
When running the `copy` command with `-o <backend>.connections=1` the
command would be infinitely stuck. This has now been fixed.
https://github.com/restic/restic/issues/3897
https://github.com/restic/restic/pull/3898

View File

@ -1,12 +1,9 @@
Bugfix: Correct prune statistics for partially compressed repositories
In a partially compressed repository, one data blob can exist both in an
uncompressed and a compressed version. This caused the prune statistics to
become inaccurate and for example report a too high value for the unused size:
> unused size after prune: 16777215.991 TiB
This has been fixed.
uncompressed and a compressed version. This caused the `prune` statistics to
become inaccurate and e.g. report a too high value for the unused size, such
as "unused size after prune: 16777215.991 TiB". This has now been fixed.
https://github.com/restic/restic/issues/3918
https://github.com/restic/restic/pull/3980

View File

@ -1,7 +1,11 @@
Enhancement: Only display the message if there were locks to be removed
Change: Make `unlock` display message only when locks were actually removed
`restic unlock` now only shows `successfully removed locks` if there were locks to be removed.
In addition, it also reports the number of the removed lock files.
The `unlock` command used to print the "successfully removed locks" message
whenever it was run, regardless of lock files having being removed or not.
This has now been changed such that it only prints the message if any lock
files were actually removed. In addition, it also reports the number of
removed lock files.
https://github.com/restic/restic/issues/3929
https://github.com/restic/restic/pull/3935

View File

@ -1,8 +1,8 @@
Enhancement: Improve handling of ErrDot errors in rclone and sftp backends
Since Go 1.19, restic can no longer implicitly run relative executables which
are found in the current directory (e.g. `rclone` if it's found in `.`). This
is a security feature of Go to prevent against running unintended and possibly
are found in the current directory (e.g. `rclone` if found in `.`). This is a
security feature of Go to prevent against running unintended and possibly
harmful executables.
The error message for this was just "cannot run executable found relative to

View File

@ -1,8 +1,8 @@
Bugfix: Backup no longer hangs on Solaris when seeing a FIFO file
Bugfix: Make `backup` no longer hang on Solaris when seeing a FIFO file
Restic backup used to hang on Solaris whenever it encountered a FIFO file
(named pipe), due to a bug in the extended attribute handling. This bug has
been fixed.
The `backup` command used to hang on Solaris whenever it encountered a FIFO
file (named pipe), due to a bug in the handling of extended attributes. This
bug has now been fixed.
https://github.com/restic/restic/issues/4003
https://github.com/restic/restic/pull/4053

View File

@ -1,8 +1,8 @@
Bugfix: Support ExFAT-formatted local backends on macOS Ventura
ExFAT-formatted disks could not be used as local backends starting from macOS
Ventura. Restic commands would fail with "inappropriate ioctl for device". This
has been fixed.
Ventura. Restic commands would fail with an "inappropriate ioctl for device"
error. This has now been fixed.
https://github.com/restic/restic/issues/4016
https://github.com/restic/restic/pull/4021

View File

@ -1,9 +1,11 @@
Change: copy command no longer prints skipped existing snapshots by default
Change: Don't print skipped snapshots by default in `copy` command
Restic copy always printed each skipped snapshot that existed on the remote and
would bury the snapshots that were copied amongst the output. The new default
only outputs new copies. Increase the verbose level to see skipped existing
snapshots.
The `copy` command used to print each snapshot that was skipped because it
already existed in the target repository. The amount of this output could
practically bury the list of snapshots that were actually copied.
From now on, the skipped snapshots are by default not printed at all, but
this can be re-enabled by increasing the verbosity level of the command.
https://github.com/restic/restic/issues/4033
https://github.com/restic/restic/pull/4066

View File

@ -1,8 +1,10 @@
Bugfix: Restic init ignores "Access Denied" errors when creating an S3 bucket
Bugfix: Make `init` ignore "Access Denied" errors when creating S3 buckets
In restic 0.9.0 through 0.13.0, some permission errors from S3 backends where ignored
when trying to check the bucket existence, so that manually created buckets with custom permissions
could be used for backups. This feature was broken in 0.14.0, but is now restored.
In restic 0.9.0 through 0.13.0, the `init` command ignored some permission
errors from S3 backends when trying to check for bucket existence, so that
manually created buckets with custom permissions could be used for backups.
This feature became broken in 0.14.0, but has now been restored again.
https://github.com/restic/restic/issues/4085
https://github.com/restic/restic/pull/4086

View File

@ -1,9 +1,10 @@
Bugfix: fix restic dump of tar file with 32-bit binary
Bugfix: Don't generate negative UIDs and GIDs in tar files from `dump`
When using a 32-bit build of restic, the `restic dump` command could in some
cases create tar files containing negative uid and gid. These files cannot be
read by gnu tar. This corner case especially applies to backups from stdin on Windows.
We have changed the dump command to create valid tar files in this case.
When using a 32-bit build of restic, the `dump` command could in some cases
create tar files containing negative UIDs and GIDs, which cannot be read by
GNU tar. This corner case especially applies to backups from stdin on Windows.
This is now fixed such that `dump` creates valid tar files in these cases too.
https://github.com/restic/restic/issues/4103
https://github.com/restic/restic/pull/4104

View File

@ -1,14 +1,14 @@
Enhancement: Restore files with many zeros as sparse files
Enhancement: Restore files with long runs of zeros as sparse files
When using `restore --sparse`, the restorer may now write files containing long
runs of zeros as sparse files (also called files with holes): the zeros are not
actually written to disk.
runs of zeros as sparse files (also called files with holes), where the zeros
are not actually written to disk.
How much space is saved by writing sparse files depends on the operating
system, file system and the distribution of zeros in the file.
During backup restic still reads the whole file including sparse regions. We
have optimized the processing speed of sparse regions.
During backup restic still reads the whole file including sparse regions, but
with optimized processing speed of sparse regions.
https://github.com/restic/restic/issues/79
https://github.com/restic/restic/issues/3903

View File

@ -1,6 +1,7 @@
Enhancement: Make backup file read concurrency configurable
The `backup` command now supports a `--read-concurrency` flag to allowing
tuning restic for very fast storage like NVME disks.
The `backup` command now supports a `--read-concurrency` option which allows
tuning restic for very fast storage like NVMe disks by controlling the number
of concurrent file reads during the backup process.
https://github.com/restic/restic/pull/2750

View File

@ -1,7 +1,8 @@
Bugfix: Make sure that symlinks can be created during recovery
Bugfix: Make `restore` replace existing symlinks
When restoring a symlink, restic reported an error if the target path already existed.
With this change, the potentially existing target path is first removed before the symlink is recreated.
When restoring a symlink, restic used to report an error if the target path
already existed. This has now been fixed such that the potentially existing
target path is first removed before the symlink is restored.
https://github.com/restic/restic/issues/2578
https://github.com/restic/restic/pull/3780

View File

@ -1,5 +1,6 @@
Enhancement: Optimize prune memory usage
The prune command requires large amounts of memory to determine what to keep and what to remove. That step has been optimized to use up to 30% less memory.
The `prune` command needs large amounts of memory in order to determine what to
keep and what to remove. This is now optimized to use up to 30% less memory.
https://github.com/restic/restic/pull/3899

View File

@ -1,4 +1,4 @@
Enhancement: Improve speed of parent snapshot searching for `backup` command
Enhancement: Improve speed of parent snapshot detection in `backup` command
Backing up a large number of files using `--files-from-verbatim` or `--files-from-raw`
options could require a long time to find the parent snapshot. This has been improved.

View File

@ -1,9 +1,12 @@
Enhancement: add compression statistics to the restic stats command
Enhancement: Add compression statistics to the `stats` command
When executed in `raw-data` mode on a repository that supports compression, the `restic stats`
command now calculates and displays, for the selected repository or snapshots, the uncompressed
size of the data, the compression progress (percentage of data that has been compressed), the
compression ratio of the compressed data and the total space saving, taking into account both
the compressed and uncompressed data if the repository is only partially compressed.
When executed with `--mode raw-data` on a repository that supports compression,
the `stats` command now calculates and displays, for the selected repository or
snapshots: the uncompressed size of the data; the compression progress
(percentage of data that has been compressed); the compression ratio of the
compressed data; the total space saving.
It also takes into account both the compressed and uncompressed data if the
repository is only partially compressed.
https://github.com/restic/restic/pull/3915

View File

@ -1,6 +1,6 @@
Enhancement: Provide command completion for powershell
Enhancement: Provide command completion for PowerShell
Restic allows generation of completion files for bash, fish and zsh. Now powershell
is supported, too.
Restic already provided generation of completion files for bash, fish and zsh.
Now powershell is supported, too.
https://github.com/restic/restic/pull/3925/files
https://github.com/restic/restic/pull/3925/files

View File

@ -1,8 +1,10 @@
Enhancement: Allow backup file tree scanner to be disabled
Enhancement: Allow `backup` file tree scanner to be disabled
Restic walks the file tree in a separate scanner process to find the total size
and file/directory count, and uses that to provide an ETA. This can slow down
backups, especially of network filesystems. The new flag `--no-scan`
can be used to speed up such backups.
The `backup` command walks the file tree in a separate scanner process to find
the total size and file/directory count, and uses this to provide an ETA. This
can slow down backups, especially of network filesystems.
The command now has a new option `--no-scan` which can be used to disable this
scanning in order to speed up backups when needed.
https://github.com/restic/restic/pull/3931

View File

@ -1,9 +1,9 @@
Enhancement: Ignore additional files in repository
Enhancement: Ignore additional/unknown files in repository
Some commands like `find` and `restore` could become confused by additional
files in the repository. This could cause restic to fail with an `multiple IDs
with prefix "12345678" found` error. These commands now ignore additional
files.
If a restic repository had additional files in it (not created by restic),
commands like `find` and `restore` could become confused and fail with an
`multiple IDs with prefix "12345678" found` error. These commands now
ignore such additional files.
https://github.com/restic/restic/pull/3943
https://forum.restic.net/t/which-protocol-should-i-choose-for-remote-linux-backups/5446/17

View File

@ -1,6 +1,7 @@
Bugfix: `ls` returns exit code 1 if snapshot cannot be loaded
Bugfix: Make `ls` return exit code 1 if snapshot cannot be loaded
If the `ls` command failed to load a snapshot, it only printed a warning and
returned exit code 0. This has been changed to return exit code 1 instead.
The `ls` command used to show a warning and return exit code 0 when failing
to load a snapshot. This has now been fixed such that it instead returns exit
code 1 (still showing a warning).
https://github.com/restic/restic/pull/3951

View File

@ -1,9 +1,9 @@
Enhancement: Improve backup performance for small files
Enhancement: Improve `backup` performance for small files
When backing up small files restic was slower than it could be. In particular
this affected backups using maximum compression.
This has been fixed by reworking the internal parallelism of the backup
command.
command, making it back up small files around two times faster.
https://github.com/restic/restic/issues/3955
https://github.com/restic/restic/pull/3955

View File

@ -1,7 +1,7 @@
Change: Update dependencies and require Go 1.18 or newer
We've updated most dependencies. Since some libraries require newer language
features, we're dropping support for Go 1.15 - 1.17, which means that restic now
Most dependencies have been updated. Since some libraries require newer language
features, support for Go 1.15-1.17 has been dropped, which means that restic now
requires at least Go 1.18 to build.
https://github.com/restic/restic/pull/4041

View File

@ -1,9 +1,11 @@
Bugfix: Restore self-update to disabled-by-default
Bugfix: Make `self-update` enabled by default only in release builds
Due to a typo, the `self-update` feature was always compiled, even if the
`selfupdate` tag was not explicitly enabled.
The `self-update` command was previously included by default in all builds of
restic as opposed to only in official release builds, even if the `selfupdate`
tag was not explicitly enabled when building.
As intended, it is now disabled by default.
Official builds using `build.go` continue to explicitly enable it.
This has now been corrected, and the `self-update` command is only available
if restic was built with `-tags selfupdate` (as done for official release
builds by `build.go`).
https://github.com/restic/restic/pull/4100