btrbk should depend on coreutils
btrbk is a python program that creates and manages btrfs snapshots. It uses readlink -e
which is not available in busybox's readlink. Therefore it needs to depend on coreutils
for installation.
The btrbk source code specifically mentions that busybox does not work:
sub system_realpath($)
{
my $vol = shift // die;
my $path = $vol->{PATH} // die;
my $compat = (($vol->{HOST} && config_key($vol, "compat_remote")) //
config_key($vol, "compat_local") //
config_key($vol, "compat")) // "" eq "busybox";
my @options = ("-v"); # report error messages
push @options, "-e" unless($compat); # all components must exist (not available in busybox!)
push @options, "-f" if($compat); # all but the last component must exist.
my $ret = run_cmd(cmd => vinfo_cmd($vol, "readlink", @options, { unsafe => $path } ),
rsh => vinfo_rsh($vol),
non_destructive => 1,
);
return undef unless(defined($ret));
my $realpath = scalar(@$ret) ? (check_file($ret->[0], { absolute => 1 }) // "") : "";
unless($realpath) {
ERROR "Failed to parse output of `realpath` for \"$vol->{PRINT}\": \"$ret->[0]\"";
return undef;
}
DEBUG "Real path for \"$vol->{PRINT}\" is: $realpath";
return undef if($compat && !system_testdir($vol));
return $realpath;
}