X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_link;h=dc396dd597fbae1516a9c7657e56c0a7f41dc9e1;hb=b224e52d143f1937209e518aedde285449fb4631;hp=a56eefbdce6a527c962a7901621c5414e1553c81;hpb=c5d64a7f9b1db4e98aff95c237342a793e40c6f5;p=debhelper.git diff --git a/dh_link b/dh_link index a56eefb..dc396dd 100755 --- a/dh_link +++ b/dh_link @@ -12,7 +12,7 @@ use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS -B [S>] [B<-A>] [S>] +B [S>] [B<-A>] [B<-X>I] [S>] =head1 DESCRIPTION @@ -43,7 +43,7 @@ a path as possible. It will also create any subdirectories it needs to to put 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 @@ -54,6 +54,11 @@ conform to debian policy, and corrects them (v4 only). 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 Create a file named "destination" as a link to a file named "source". Do @@ -69,10 +74,10 @@ this in the package build directory of the first package acted on. 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 @@ -138,13 +143,14 @@ foreach my $package (@{$dh{DOPACKAGES}}) { 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($_); @@ -166,6 +172,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) { $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"); @@ -182,7 +193,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { # 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) {