diff --git a/usrlocalpkg/admin/makebin b/usrlocalpkg/admin/makebin index 0d156d4..6438423 100755 --- a/usrlocalpkg/admin/makebin +++ b/usrlocalpkg/admin/makebin @@ -57,6 +57,7 @@ sub scandir { sub create_file { my ($fn,$content)=@_; warn "create $fn\n"; + -l $fn && unlink($fn) or die "$fn: $!\n"; open my $o,'>',$fn or die "$fn: $!\n"; print $o $content; } @@ -69,7 +70,7 @@ sub slurp_file { sub create_file_if_changed { my ($fn,$content)=@_; - if (-e $fn) { + if (!-l $fn && -e $fn) { return if slurp_file($fn) eq $content; unlink $fn or die "$fn: $!\n"; } @@ -78,7 +79,7 @@ sub create_file_if_changed { sub create_file_if_changed_x { my ($fn,$content)=@_; - if (-e $fn) { + if (!-l $fn && -e $fn) { return if slurp_file($fn) eq $content; unlink $fn or die "$fn: $!\n"; } @@ -123,7 +124,7 @@ sub create_profiles { for my $fn (keys %WANT_SRC) { my $src="$LIBSRC/$fn"; my $dst="$LIBDIR/$fn"; - if (!-e $dst || (-M $dst > -M $src)) { + if (-l $dst || !-e $dst || (-M $dst > -M $src)) { create_file($dst,slurp_file($src)); } delete $HAVE{$fn};