The following commit has been merged in the lenny branch:
commit 4d1fe39cd9135ea5c58d4763b0fd812721caa2e2
Author: Raphael Hertzog <[email protected]>
Date:   Sun Feb 1 10:38:49 2009 +0100

    dpkg-deb: produce GNU tar archives inside .deb
    
    * dpkg-deb/build.c: Ensure that data.tar and control.tar
    archives created inside a .deb use the GNU format that is compatible
    with dpkg itself. And remove TAR_OPTIONS from environment to
    avoid unexpected user customizations of the resulting archives.

diff --git a/ChangeLog b/ChangeLog
index 6cccc74..77dec82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-02-02  Raphael Hertzog  <[email protected]>
+
+       * dpkg-deb/build.c: Ensure that data.tar and control.tar
+       archives created inside a .deb use the GNU format that is compatible
+       with dpkg itself. And remove TAR_OPTIONS from environment to
+       avoid unexpected user customizations of the resulting archives.
+
 2008-12-29  Guillem Jover  <[email protected]>
 
        * configure.ac: Bump version to 1.14.25~.
diff --git a/debian/changelog b/debian/changelog
index a028cd8..344d4f8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,10 @@ dpkg (1.14.25) UNRELEASED; urgency=low
   * Fix typo in package description ('privides' -> 'provides').
     Thanks to Pascal De Vuyst <[email protected]>. Closes: #510755
 
+  [ Raphael Hertzog ]
+  * dpkg-deb now always produces GNU tarballs inside .deb and ignores
+    TAR_OPTIONS. Closes: #513863
+
   [ Updated dpkg translations ]
   * Basque (Piarres Beobide). Closes: #506092, #509851
   * Simplified Chinese (Deng Xiyue). Closes: #506177
diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
index 8e854b2..e967bbd 100644
--- a/dpkg-deb/build.c
+++ b/dpkg-deb/build.c
@@ -344,12 +344,13 @@ void do_build(const char *const *argv) {
   if (setvbuf(ar, NULL, _IONBF, 0))
     ohshite(_("unable to unbuffer `%.255s'"), debar);
   /* Fork a tar to package the control-section of the package */
+  unsetenv("TAR_OPTIONS");
   m_pipe(p1);
   if (!(c1= m_fork())) {
     m_dup2(p1[1],1); close(p1[0]); close(p1[1]);
     if (chdir(directory)) ohshite(_("failed to chdir to `%.255s'"),directory);
     if (chdir(BUILDCONTROLDIR)) ohshite(_("failed to chdir to .../DEBIAN"));
-    execlp(TAR, "tar", "-cf", "-", ".", NULL);
+    execlp(TAR, "tar", "-cf", "-", "--format=gnu", ".", NULL);
     ohshite(_("failed to exec tar -cf"));
   }
   close(p1[1]);
@@ -422,7 +423,7 @@ void do_build(const char *const *argv) {
     m_dup2(p1[0],0); close(p1[0]); close(p1[1]);
     m_dup2(p2[1],1); close(p2[0]); close(p2[1]);
     if (chdir(directory)) ohshite(_("failed to chdir to `%.255s'"),directory);
-    execlp(TAR, "tar", "-cf", "-", "--null", "-T", "-", "--no-recursion", 
NULL);
+    execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--null", "-T", "-", 
"--no-recursion", NULL);
     ohshite(_("failed to exec tar -cf"));
   }
   close(p1[0]);

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to