This reverts commit0b91fa43e4, reversing changes made to183919a0c0.
This commit is contained in:
@@ -4,7 +4,6 @@ use File::Copy;
|
||||
use File::Path;
|
||||
use File::Basename;
|
||||
use File::Slurp;
|
||||
use File::Spec;
|
||||
|
||||
my $etc = $ARGV[0] or die;
|
||||
my $static = "/etc/static";
|
||||
@@ -18,20 +17,6 @@ sub atomicSymlink {
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Create relative symlinks, so that the links can be followed if
|
||||
# the NixOS installation is not mounted as filesystem root.
|
||||
# Absolute symlinks violate the os-release format
|
||||
# at https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
# and break e.g. systemd-nspawn and os-prober.
|
||||
sub atomicRelativeSymlink {
|
||||
my ($source, $target) = @_;
|
||||
my $tmp = "$target.tmp";
|
||||
unlink $tmp;
|
||||
my $rel = File::Spec->abs2rel($source, dirname $target);
|
||||
symlink $rel, $tmp or return 0;
|
||||
rename $tmp, $target or return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Atomically update /etc/static to point at the etc files of the
|
||||
# current configuration.
|
||||
@@ -118,7 +103,7 @@ sub link {
|
||||
if (-e "$_.mode") {
|
||||
my $mode = read_file("$_.mode"); chomp $mode;
|
||||
if ($mode eq "direct-symlink") {
|
||||
atomicRelativeSymlink readlink("$static/$fn"), $target or warn;
|
||||
atomicSymlink readlink("$static/$fn"), $target or warn;
|
||||
} else {
|
||||
my $uid = read_file("$_.uid"); chomp $uid;
|
||||
my $gid = read_file("$_.gid"); chomp $gid;
|
||||
@@ -132,7 +117,7 @@ sub link {
|
||||
push @copied, $fn;
|
||||
print CLEAN "$fn\n";
|
||||
} elsif (-l "$_") {
|
||||
atomicRelativeSymlink "$static/$fn", $target or warn;
|
||||
atomicSymlink "$static/$fn", $target or warn;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user