--- /dev/null
+From e36454201ec81374bf4d2d09877e6c345a6fddab Mon Sep 17 00:00:00 2001
+From: Joey Hess <joeyh@debian.org>
+Date: Sun, 27 Oct 2013 13:16:52 -0400
+Subject: [PATCH] add PRISTINE_TAR_COMPAT
+
+---
+ debian/patches/longlink-hack.diff | 72 -------------------------
+ debian/patches/pristine-tar.diff | 108 ++++++++++++++++++++++++++++++++++++++
+ debian/patches/series | 2 +-
+ 3 files changed, 109 insertions(+), 73 deletions(-)
+ delete mode 100644 debian/patches/longlink-hack.diff
+ create mode 100644 debian/patches/pristine-tar.diff
+
+diff --git a/debian/patches/longlink-hack.diff b/debian/patches/longlink-hack.diff
+deleted file mode 100644
+index b6bc385..0000000
+--- a/debian/patches/longlink-hack.diff
++++ /dev/null
+@@ -1,72 +0,0 @@
+-diff --git a/src/common.h b/src/common.h
+-index eb801bb..4aaace5 100644
+---- a/src/common.h
+-+++ b/src/common.h
+-@@ -907,4 +907,6 @@ void finish_deferred_unlinks (void);
+- /* Module exit.c */
+- extern void (*fatal_exit_hook) (void);
+-
+-+GLOBAL int debian_longlink_hack;
+-+
+- _GL_INLINE_HEADER_END
+-diff --git a/src/create.c b/src/create.c
+-index e14e13d..3a84c79 100644
+---- a/src/create.c
+-+++ b/src/create.c
+-@@ -27,6 +27,8 @@
+- #include "common.h"
+- #include <hash.h>
+-
+-+extern int debian_longlink_hack;
+-+
+- /* Error number to use when an impostor is discovered.
+- Pretend the impostor isn't there. */
+- enum { IMPOSTOR_ERRNO = ENOENT };
+-@@ -724,7 +726,7 @@ write_header_name (struct tar_stat_info *st)
+- return write_short_name (st);
+- }
+- else if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT)
+-- < strlen (st->file_name))
+-+ < strlen (st->file_name) + debian_longlink_hack)
+- return write_long_name (st);
+- else
+- return write_short_name (st);
+-@@ -1476,7 +1478,7 @@ dump_hard_link (struct tar_stat_info *st)
+- block_ordinal = current_block_ordinal ();
+- assign_string (&st->link_name, link_name);
+- if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT)
+-- < strlen (link_name))
+-+ < strlen (link_name) + debian_longlink_hack)
+- write_long_link (st);
+-
+- st->stat.st_size = 0;
+-diff --git a/src/tar.c b/src/tar.c
+-index 4f5017d..e9a5126 100644
+---- a/src/tar.c
+-+++ b/src/tar.c
+-@@ -1246,6 +1246,16 @@ expand_pax_option (struct tar_args *targs, const char *arg)
+- return res;
+- }
+-
+-+/* Debian specific environment variable used by pristine-tar to enable use of
+-+ * longlinks for filenames exactly 100 bytes long. */
+-+void debian_longlink_hack_init () {
+-+ char *s=getenv ("TAR_LONGLINK_100");
+-+ if (s && strcmp(s, "1") == 0)
+-+ debian_longlink_hack=1;
+-+ else
+-+ debian_longlink_hack=0;
+-+}
+-+
+- \f
+- static uintmax_t
+- parse_owner_group (char *arg, uintmax_t field_max, char const **name_option)
+-@@ -2626,6 +2636,8 @@ main (int argc, char **argv)
+- filename_terminator = '\n';
+- set_quoting_style (0, DEFAULT_QUOTING_STYLE);
+-
+-+ debian_longlink_hack_init ();
+-+
+- /* Make sure we have first three descriptors available */
+- stdopen ();
+-
+diff --git a/debian/patches/pristine-tar.diff b/debian/patches/pristine-tar.diff
+new file mode 100644
+index 0000000..f350acc
+--- /dev/null
++++ b/debian/patches/pristine-tar.diff
+@@ -0,0 +1,108 @@
++diff --git a/src/common.h b/src/common.h
++index eb801bb..30f8cf5 100644
++--- a/src/common.h
+++++ b/src/common.h
++@@ -907,4 +907,7 @@ void finish_deferred_unlinks (void);
++ /* Module exit.c */
++ extern void (*fatal_exit_hook) (void);
++
+++GLOBAL int debian_longlink_hack;
+++GLOBAL int pristine_tar_compat;
+++
++ _GL_INLINE_HEADER_END
++diff --git a/src/create.c b/src/create.c
++index e14e13d..d6e8ea7 100644
++--- a/src/create.c
+++++ b/src/create.c
++@@ -27,6 +27,9 @@
++ #include "common.h"
++ #include <hash.h>
++
+++extern int debian_longlink_hack;
+++extern int pristine_tar_compat;
+++
++ /* Error number to use when an impostor is discovered.
++ Pretend the impostor isn't there. */
++ enum { IMPOSTOR_ERRNO = ENOENT };
++@@ -534,6 +537,11 @@ write_short_name (struct tar_stat_info *st)
++ return header;
++ }
++
+++#define FILL(field,byte) do { \
+++ memset(field, byte, sizeof(field)-1); \
+++ (field)[sizeof(field)-1] = 0; \
+++} while (0)
+++
++ /* Write a GNUTYPE_LONGLINK or GNUTYPE_LONGNAME block. */
++ static void
++ write_gnu_long_link (struct tar_stat_info *st, const char *p, char type)
++@@ -544,6 +552,10 @@ write_gnu_long_link (struct tar_stat_info *st, const char *p, char type)
++ char *tmpname;
++
++ header = start_private_header ("././@LongLink", size, start_time.tv_sec);
+++ if (pristine_tar_compat) {
+++ FILL (header->header.mtime, '0');
+++ FILL (header->header.mode, '0');
+++ }
++ uid_to_uname (0, &tmpname);
++ UNAME_TO_CHARS (tmpname, header->header.uname);
++ free (tmpname);
++@@ -724,7 +736,7 @@ write_header_name (struct tar_stat_info *st)
++ return write_short_name (st);
++ }
++ else if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT)
++- < strlen (st->file_name))
+++ < strlen (st->file_name) + debian_longlink_hack)
++ return write_long_name (st);
++ else
++ return write_short_name (st);
++@@ -1476,7 +1488,7 @@ dump_hard_link (struct tar_stat_info *st)
++ block_ordinal = current_block_ordinal ();
++ assign_string (&st->link_name, link_name);
++ if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT)
++- < strlen (link_name))
+++ < strlen (link_name) + debian_longlink_hack)
++ write_long_link (st);
++
++ st->stat.st_size = 0;
++diff --git a/src/tar.c b/src/tar.c
++index 4f5017d..b72e25b 100644
++--- a/src/tar.c
+++++ b/src/tar.c
++@@ -1246,6 +1246,26 @@ expand_pax_option (struct tar_args *targs, const char *arg)
++ return res;
++ }
++
+++/* Debian specific environment variable used by pristine-tar to enable use of
+++ * longlinks for filenames exactly 100 bytes long. */
+++void debian_longlink_hack_init (void) {
+++ char *s=getenv ("TAR_LONGLINK_100");
+++ if (s && strcmp(s, "1") == 0)
+++ debian_longlink_hack=1;
+++ else
+++ debian_longlink_hack=0;
+++}
+++
+++/* pristine-tar sets this environment variable to force fields in longlinks
+++ * to be zeroed as was the case in tar 1.26. */
+++void pristine_tar_compat_init (void) {
+++ char *s=getenv ("PRISTINE_TAR_COMPAT");
+++ if (s && strcmp(s, "1") == 0)
+++ pristine_tar_compat=1;
+++ else
+++ pristine_tar_compat=0;
+++}
+++
++ \f
++ static uintmax_t
++ parse_owner_group (char *arg, uintmax_t field_max, char const **name_option)
++@@ -2626,6 +2646,9 @@ main (int argc, char **argv)
++ filename_terminator = '\n';
++ set_quoting_style (0, DEFAULT_QUOTING_STYLE);
++
+++ debian_longlink_hack_init ();
+++ pristine_tar_compat_init ();
+++
++ /* Make sure we have first three descriptors available */
++ stdopen ();
++
+diff --git a/debian/patches/series b/debian/patches/series
+index 1dfef41..5974cbb 100644
+--- a/debian/patches/series
++++ b/debian/patches/series
+@@ -1,2 +1,2 @@
+-longlink-hack.diff
++pristine-tar.diff
+ listed03-linux-only
+--
+1.8.4.rc0
+