From e391bdba238d1371fc5b67cdae08b06eb5ada5c2 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 26 Aug 2015 15:48:13 +0300
Subject: [PATCH] When running do_package_write_deb, we have trees of
 hardlinked files such as the dbg source files in ${PN}-dbg. If something
 makes another copy of one of those files (or deletes one), the number of
 links a file has changes and tar can notice this, e.g.:

| DEBUG: Executing python function do_package_deb
| dpkg-deb: building package `sed-ptest' in `/media/build1/poky/build/tmp/work/i586-poky-linux/sed/4.2.2-r0/deploy-debs/i586/sed-ptest_4.2.2-r0.3_i386.deb'.
| tar: ./usr/lib/sed/ptest/testsuite/tst-regex2: file changed as we read it
| dpkg-deb: error: subprocess tar -cf returned error exit status 1

Tar returns an error of 1 when files 'change' and other errors codes
in other error cases. We tweak dpkg-deb here so that it ignores an exit
code of 1 from tar. The files don't really change (and we have locking in
place to avoid that kind of issue).

Upstream-Status: Inappropriate
RP 2015/3/27
---
 dpkg-deb/build.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
index 2ddeec6..af363f0 100644
--- a/dpkg-deb/build.c
+++ b/dpkg-deb/build.c
@@ -452,7 +452,7 @@ static void
 tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
              struct compress_params *tar_compress_params, int fd_out)
 {
-  int pipe_filenames[2], pipe_tarball[2];
+  int pipe_filenames[2], pipe_tarball[2], rc;
   pid_t pid_tar, pid_comp;
 
   /* Fork off a tar. We will feed it a list of filenames on stdin later. */
@@ -493,7 +493,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
   /* All done, clean up wait for tar and <compress> to finish their job. */
   close(pipe_filenames[1]);
   subproc_reap(pid_comp, _("<compress> from tar -cf"), 0);
-  subproc_reap(pid_tar, "tar -cf", 0);
+  rc = subproc_reap(pid_tar, "tar -cf", SUBPROC_RETERROR);
+  if (rc && rc != 1)
+    ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
 }
 
 /**
@@ -509,7 +511,7 @@ do_build(const char *const *argv)
   char *debar;
   char *tfbuf;
   int arfd;
-  int p1[2], gzfd;
+  int p1[2], gzfd, rc;
   pid_t c1, c2;
 
   /* Decode our arguments. */
@@ -590,7 +592,9 @@ do_build(const char *const *argv)
   }
   close(p1[0]);
   subproc_reap(c2, _("<compress> from tar -cf"), 0);
-  subproc_reap(c1, "tar -cf", 0);
+  rc = subproc_reap(c1, "tar -cf", SUBPROC_RETERROR);
+  if (rc && rc != 1)
+    ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
 
   if (lseek(gzfd, 0, SEEK_SET))
     ohshite(_("failed to rewind temporary file (%s)"), _("control member"));
-- 
2.7.0

