diff options
-rw-r--r-- | debian/changelog | 9 | ||||
-rwxr-xr-x | dh_fixperms | 21 |
2 files changed, 16 insertions, 14 deletions
diff --git a/debian/changelog b/debian/changelog index bc93c185..a695ab83 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +debhelper (1.2.76) unstable; urgency=low + + * dh_fixperms: Do not use chmod/chown -R at all anymore, instead it uses + the (slower) find then chown method. Necessary because the -R methods will + happyily attempt to chown a dangling symlink, which makes them fail. + (Closes: #38911) + + -- Joey Hess <joeyh@master.debian.org> Mon, 7 Jun 1999 20:20:01 -0700 + debhelper (1.2.75) unstable; urgency=low * dh_installemacsen: fixed perms of install, remove scripts. diff --git a/dh_fixperms b/dh_fixperms index 665becc3..e1ae6126 100755 --- a/dh_fixperms +++ b/dh_fixperms @@ -9,27 +9,20 @@ init(); foreach $PACKAGE (@{$dh{DOPACKAGES}}) { $TMP=tmpdir($PACKAGE); - # General permissions fixing. if (! defined($dh{EXCLUDE_FIND}) || $dh{EXCLUDE_FIND} eq '') { - # It's much faster to do it this way, but we can only do - # this if there is nothing to exclude. - if (-d $TMP) { - doit("chown","-R","root.root",$TMP); - doit("chmod","-R","go=rX,u+rw,a-s",$TMP); - } - $find_options=""; } else { - # Do it the hard way. - complex_doit("find $TMP ! -type l ! \\( $dh{EXCLUDE_FIND} \\) -print0", - "2>/dev/null | xargs -0r chown root.root"); - complex_doit("find $TMP ! -type l ! \\( $dh{EXCLUDE_FIND} \\) -print0", - "2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s"); - $find_options="! \\( $dh{EXCLUDE_FIND} \\)"; } + # General permissions fixing. + complex_doit("find $TMP ! -type l $find_options -print0", + "2>/dev/null | xargs -0r chown root.root"); + complex_doit("find $TMP ! -type l $find_options -print0", + "2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s"); + + # Fix up premissions in usr/doc, setting everything to not exectable # by default, but leave examples directories alone. complex_doit("find $TMP/usr/doc -type f $find_options ! -regex '.*/examples/.*' -print0", |