=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
Make bar.1 be a symlink to foo.1
dh_link var/lib/foo usr/lib/foo \
- usr/X11R6/man/man1/foo.1x usr/share/man/man1/bar.1
+ usr/share/man/man1/foo.1 usr/share/man/man1/bar.1
Make /usr/lib/foo/ be a link to /var/lib/foo/, and bar.1 be a symlink to
-the X man page foo.1x
+the foo.1
=cut
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) {