summaryrefslogtreecommitdiff
path: root/dh_link
diff options
context:
space:
mode:
authorjoey <joey>2004-07-08 21:48:14 +0000
committerjoey <joey>2004-07-08 21:48:14 +0000
commitc7e3020e957c9c97bb14c7d82e6fdddbfb6e9aef (patch)
tree779c5010a3b46146afee813ef6566191e491ec73 /dh_link
parent68260a5a66d33c1a2eadbb941443226a8f05f568 (diff)
r1695: * dh_gconf: gconf schemas moved to /usr/share/gconf/schemas. Relocate
schemas from /etc/gconf/schemas. (Josselin Mouette) * dh_gconf: kill gconfd-2 so that the newly installed schemas are available straight away. (Josselin Mouette) * dh_gconf: fix bashism in restart of gconfd-2 * dh_gconf: fix innaccuracy in man page; gconfd-2 is HUPPed, not killed. * dh_scrollkeeper: stop adding scrollkeeper to misc:Depends, since the postinst will not run it if it's not installed, and a single run after it's installed is sufficient to find all documents. Closes: #256745 * dh_fixperms: make .ali files mode 444 to prevent recompilation by GNAT. For speed, only scan for .ali files in usr/lib/ada. Closes: #245211 * dh_python: check to make sure compileall.py is available before running it in the postinst. Closes: #253112 * dh_installmodules: install debian/package.modprobe into etc/modprobe.d/ for module-init-tools. These files can sometimes need to differ from the etc/modutils/ files. Closes: #204336, #234495 * dh_installmanpages is now deprecated. * Add a test case for bug #244157, and fixed the inverted ok() parameters in the others, and added a few new tests. * dh_link: applied GOTO Masanori's patch to fix conversion of existing relative symlinks between top level directories. Closes: #244157
Diffstat (limited to 'dh_link')
-rwxr-xr-xdh_link36
1 files changed, 34 insertions, 2 deletions
diff --git a/dh_link b/dh_link
index 7c51d06..5dd9da3 100755
--- a/dh_link
+++ b/dh_link
@@ -76,6 +76,39 @@ the X man page foo.1x
=cut
+# This expand_path expands all path "." and ".." components, but doesn't
+# resolve symbolic links.
+sub expand_path {
+ my $start = @_ ? shift : '.';
+ my @pathname = split(m:/+:,$start);
+
+ my $entry;
+ my @respath;
+ foreach $entry (@pathname) {
+ if ($entry eq '.' || $entry eq '') {
+ # Do nothing
+ }
+ elsif ($entry eq '..') {
+ if ($#respath == -1) {
+ # Do nothing
+ }
+ else {
+ pop @respath;
+ }
+ }
+ else {
+ push @respath, $entry;
+ }
+ }
+
+ my $result;
+ foreach $entry (@respath) {
+ $result .= '/' . $entry;
+ }
+ return $result;
+}
+
+
init();
foreach my $package (@{$dh{DOPACKAGES}}) {
@@ -126,9 +159,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
while (@links) {
my $dest=pop @links;
- my $src=pop @links;
+ my $src=expand_path(pop @links);
- # Relavatize src and dest.
$src=~s:^/::;
$dest=~s:^/::;