tags 364834 patch
thanks

Hi Martin,

Please find attached a patch for this bug, which fixes the recursive rmdir
handling to not exit non-zero when it finds a path element that's a symlink
instead of a directory.

I'm happy to NMU for this if you wish, since all XSF packages are affected
which makes it inconvenient for me to work on fixing bugs for X.org 7. :)

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/
diff -u quilt-0.44/debian/changelog quilt-0.44/debian/changelog
--- quilt-0.44/debian/changelog
+++ quilt-0.44/debian/changelog
@@ -1,3 +1,12 @@
+quilt (0.44-6.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Fix handling of recursive directory removal in the backup-files
+    shell script to account for path elements being symlinks instead of 
+    directories.  Closes: #364834.
+
+ -- Steve Langasek <[EMAIL PROTECTED]>  Fri, 26 May 2006 00:35:14 -0700
+
 quilt (0.44-6) unstable; urgency=low
 
   * Split the debian patch in several ones. Use quilt *when available*
diff -u quilt-0.44/debian/patches/arch_all quilt-0.44/debian/patches/arch_all
--- quilt-0.44/debian/patches/arch_all
+++ quilt-0.44/debian/patches/arch_all
@@ -16,8 +16,8 @@
 
 Index: quilt-0.44/Makefile.in
 ===================================================================
---- quilt-0.44.orig/Makefile.in        2006-05-09 09:00:22.000000000 +0200
-+++ quilt-0.44/Makefile.in     2006-05-09 09:00:55.000000000 +0200
+--- quilt-0.44.orig/Makefile.in        2006-02-11 14:31:51.000000000 -0800
++++ quilt-0.44/Makefile.in     2006-05-26 00:33:41.000000000 -0700
 @@ -6,7 +6,6 @@
  prefix :=     @prefix@
  exec_prefix :=        @exec_prefix@
@@ -121,8 +121,8 @@
            $(AWK) 'sub(/.*\<quilt_command /, "") && ($$1 !~ /[^a-z]/)  \
 Index: quilt-0.44/quilt/add.in
 ===================================================================
---- quilt-0.44.orig/quilt/add.in       2006-05-09 09:00:22.000000000 +0200
-+++ quilt-0.44/quilt/add.in    2006-05-09 09:00:24.000000000 +0200
+--- quilt-0.44.orig/quilt/add.in       2006-02-14 10:31:44.000000000 -0800
++++ quilt-0.44/quilt/add.in    2006-05-26 00:30:21.000000000 -0700
 @@ -121,7 +121,7 @@
                continue
        fi
@@ -134,8 +134,8 @@
                status=1
 Index: quilt-0.44/quilt/pop.in
 ===================================================================
---- quilt-0.44.orig/quilt/pop.in       2006-05-09 09:00:22.000000000 +0200
-+++ quilt-0.44/quilt/pop.in    2006-05-09 09:00:24.000000000 +0200
+--- quilt-0.44.orig/quilt/pop.in       2006-02-14 10:31:44.000000000 -0800
++++ quilt-0.44/quilt/pop.in    2006-05-26 00:30:21.000000000 -0700
 @@ -167,7 +167,7 @@
                        status=0
                else
@@ -156,8 +156,8 @@
  ### Local Variables:
 Index: quilt-0.44/quilt/push.in
 ===================================================================
---- quilt-0.44.orig/quilt/push.in      2006-05-09 09:00:22.000000000 +0200
-+++ quilt-0.44/quilt/push.in   2006-05-09 09:00:55.000000000 +0200
+--- quilt-0.44.orig/quilt/push.in      2006-02-14 10:31:44.000000000 -0800
++++ quilt-0.44/quilt/push.in   2006-05-26 00:33:40.000000000 -0700
 @@ -139,7 +139,7 @@
  {
        local patch=$1
@@ -169,8 +169,8 @@
  cleanup_patch_output() {
 Index: quilt-0.44/quilt/remove.in
 ===================================================================
---- quilt-0.44.orig/quilt/remove.in    2006-05-09 09:00:22.000000000 +0200
-+++ quilt-0.44/quilt/remove.in 2006-05-09 09:00:24.000000000 +0200
+--- quilt-0.44.orig/quilt/remove.in    2006-02-14 10:31:44.000000000 -0800
++++ quilt-0.44/quilt/remove.in 2006-05-26 00:30:21.000000000 -0700
 @@ -86,7 +86,7 @@
        fi
  
@@ -182,8 +182,8 @@
                       "$SUBDIR$file" "$(print_patch $patch)" >&2
 Index: quilt-0.44/quilt/snapshot.in
 ===================================================================
---- quilt-0.44.orig/quilt/snapshot.in  2006-05-09 09:00:22.000000000 +0200
-+++ quilt-0.44/quilt/snapshot.in       2006-05-09 09:00:24.000000000 +0200
+--- quilt-0.44.orig/quilt/snapshot.in  2006-02-14 10:31:44.000000000 -0800
++++ quilt-0.44/quilt/snapshot.in       2006-05-26 00:30:21.000000000 -0700
 @@ -85,7 +85,7 @@
        }
        { print }
@@ -196,8 +196,8 @@
 Index: quilt-0.44/quilt/scripts/backup-files.in
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ quilt-0.44/quilt/scripts/backup-files.in   2006-05-09 09:01:04.000000000 
+0200
-@@ -0,0 +1,248 @@
++++ quilt-0.44/quilt/scripts/backup-files.in   2006-05-26 00:33:30.000000000 
-0700
+@@ -0,0 +1,269 @@
 +#! @BASH@
 +
 +set -e
@@ -304,7 +304,14 @@
 +                      fi
 +                      $ECHO "Removing $file"
 +                      rm "$backup"
-+                      rmdir --ignore-fail-on-non-empty -p "$(dirname 
"$backup")" 2> /dev/null
++                      while [ -d "${backup%/*}" ] && ! [ -L "${backup%/*}" ]
++                      do
++                              backup="${backup%/*}"
++                              rmdir --ignore-fail-on-non-empty "$backup" 
2>/dev/null
++                              if [ -d "$backup" ]; then
++                                      break
++                              fi
++                      done
 +              else
 +                      $ECHO "Restoring $file"
 +                      if [ -e "$file" ]; then
@@ -312,7 +319,14 @@
 +                      fi
 +                      link_or_copy_file "$backup" "$file"
 +                      rm "$backup"
-+                      rmdir --ignore-fail-on-non-empty -p "$(dirname 
"$backup")" 2>/dev/null
++                      while [ -d "${backup%/*}" ] && ! [ -L "${backup%/*}" ]
++                      do
++                              backup="${backup%/*}"
++                              rmdir --ignore-fail-on-non-empty "$backup" 
2>/dev/null
++                              if [ -d "$backup" ]; then
++                                      break
++                              fi
++                      done
 +                      if [ -n "$OPT_NOLINKS" ]; then
 +                              ensure_nolinks "$file"
 +                      fi
@@ -324,7 +338,14 @@
 +              if [ -e "$backup" ]; then
 +                      rm "$backup"
 +              fi
-+              rmdir --ignore-fail-on-non-empty -p "$(dirname "$backup")" 
2>/dev/null
++              while [ -d "${backup%/*}" ] && ! [ -L "${backup%/*}" ]
++              do
++                      backup="${backup%/*}"
++                      rmdir --ignore-fail-on-non-empty "$backup" 2>/dev/null
++                      if [ -d "$backup" ]; then
++                              break
++                      fi
++              done
 +      elif [ "$OPT_WHAT" == "noop" ]; then
 +              if [ -e "$file" ] && [ -n "$OPT_NOLINKS" ]; then
 +                      ensure_nolinks "$file"

Reply via email to