=head1 SYNOPSIS
-B<dh_link> [S<I<debhelper options>>] [B<-A>] [S<I<source destination ...>>]
+B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source destination ...>>]
=head1 DESCRIPTION
the symlinks in.
dh_link also scans the package build tree for existing symlinks which do not
-conform to debian policy, and corrects them (v4 only).
+conform to debian policy, and corrects them (v4 or later).
=head1 OPTIONS
Create any links specified by command line parameters in ALL packages
acted on, not just the first.
+=item B<-Xitem>, B<--exclude=item>
+
+Do not correct symlinks that contain "item" anywhere in their filename from
+being corrected to comply with debian policy.
+
=item I<source destination ...>
Create a file named "destination" as a link to a file named "source". Do
error("parameters list a link without a destination.");
}
- # v4 only and only if there is a temp dir already
+ # v4 or later and only if there is a temp dir already
if (! compat(3) && -e $tmp) {
# Scan for existing links and add them to @links, so they
# are recreated policy conformant.
find(
sub {
return unless -l;
+ return if excludefile($_);
my $dir=$File::Find::dir;
$dir=~s/^\Q$tmp\E//;
my $target = readlink($_);
$src=~s:^/::;
$dest=~s:^/::;
+
+ if ($src eq $dest) {
+ warning("skipping link from $src to self");
+ next;
+ }
# Make sure the directory the link will be in exists.
my $basedir=dirname("$tmp/$dest");
# Figure out how much of a path $src and $dest
# share in common.
my $x;
- for ($x=0; $x<@src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {}
+ for ($x=0; $x < @src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {}
# Build up the new src.
$src="";
for (1..$#dest_dirs - $x) {