[devscripts] 01/01: mk-origtargz: Work around tar --delete not working unless piping.

Joachim Breitner nomeata at moszumanska.debian.org
Tue Aug 11 19:29:43 UTC 2015


This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to branch master
in repository devscripts.

commit 13f5c48414547b627501d782aa502d3b916bb0b7
Author: Joachim Breitner <nomeata at debian.org>
Date:   Tue Aug 11 21:14:45 2015 +0200

    mk-origtargz: Work around tar --delete not working unless piping.
    
    This should make the support for Excluded-Files more reliable.  Thanks to Felix
    Natter for identifying the problem and solution.
---
 debian/changelog        |  9 +++++++++
 scripts/mk-origtargz.pl | 11 +++++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c10f75d..cfb7bb3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+devscripts (2.15.9) UNRELEASED; urgency=medium
+
+  * mk-origtargz:
+    + Work around tar --delete not working unless piping. This should
+      make the support for Excluded-Files more reliable.
+      Thanks to Felix Natter for identifying the problem and solution.
+
+ -- Joachim Breitner <nomeata at debian.org>  Tue, 11 Aug 2015 21:12:03 +0200
+
 devscripts (2.15.8) unstable; urgency=high
 
   * licensecheck:
diff --git a/scripts/mk-origtargz.pl b/scripts/mk-origtargz.pl
index 0126132..ef2c75e 100755
--- a/scripts/mk-origtargz.pl
+++ b/scripts/mk-origtargz.pl
@@ -470,8 +470,15 @@ if ($deletecount) {
 if ($do_repack || $deletecount) {
     decompress_archive($upstream_tar, $destfiletar);
     unlink $upstream_tar if $mode eq "rename";
-    spawn(exec => ['tar', '--delete', '--file', $destfiletar, @to_delete ],
-	  wait_child => 1) if scalar(@to_delete) > 0;
+    # We have to use piping because --delete is broken otherwise, as documented
+    # at https://www.gnu.org/software/tar/manual/html_node/delete.html
+    if (@to_delete > 0) {
+	spawn(exec => ['tar', '--delete', @to_delete ],
+	      from_file => $destfiletar,
+	      to_file => $destfiletar . ".tmp",
+	      wait_child => 1) if scalar(@to_delete) > 0;
+	move ($destfiletar . ".tmp", $destfiletar);
+    }
     compress_archive($destfiletar, $destfile, $compression);
 
     # Symlink no longer makes sense

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git



More information about the devscripts-devel mailing list