summaryrefslogtreecommitdiff
path: root/archivers/gtar
diff options
context:
space:
mode:
authorChristian Weisgerber <naddy@FreeBSD.org>2010-11-27 20:31:19 +0000
committerChristian Weisgerber <naddy@FreeBSD.org>2010-11-27 20:31:19 +0000
commit2132f91195395e4a54f21dbe7b82ea21ce7fe5c4 (patch)
tree04a2d764c4a763f137590c6ddd83c28701f564e3 /archivers/gtar
parent- Update to 1.69.27 (diff)
Fix bug with --one-file-system and --listed-incremental.
This is important for at least misc/amanda-client. Submitted by: John Hein <jhein@symmetricom.com> Obtained from: upstream
Notes
Notes: svn path=/head/; revision=265294
Diffstat (limited to 'archivers/gtar')
-rw-r--r--archivers/gtar/Makefile1
-rw-r--r--archivers/gtar/files/patch-gnu_Makefile.in6
-rw-r--r--archivers/gtar/files/patch-src_create.c15
-rw-r--r--archivers/gtar/files/patch-src_incremen.c28
-rw-r--r--archivers/gtar/files/patch-src_names.c15
5 files changed, 62 insertions, 3 deletions
diff --git a/archivers/gtar/Makefile b/archivers/gtar/Makefile
index 8c86a301df46..1caa5df5662b 100644
--- a/archivers/gtar/Makefile
+++ b/archivers/gtar/Makefile
@@ -7,6 +7,7 @@
PORTNAME= tar
PORTVERSION= 1.25
+PORTREVISION= 1
CATEGORIES= archivers sysutils
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= ${PORTNAME}
diff --git a/archivers/gtar/files/patch-gnu_Makefile.in b/archivers/gtar/files/patch-gnu_Makefile.in
index 3477e898899c..cc254d496081 100644
--- a/archivers/gtar/files/patch-gnu_Makefile.in
+++ b/archivers/gtar/files/patch-gnu_Makefile.in
@@ -2,9 +2,9 @@ $FreeBSD$
Don't install lib/charset.alias.
---- gnu/Makefile.in.orig 2010-03-17 21:55:42.000000000 +0100
-+++ gnu/Makefile.in 2010-03-17 21:56:32.000000000 +0100
-@@ -1860,7 +1860,7 @@ langinfo.h: langinfo.in.h $(CXXDEFS_H) $
+--- gnu/Makefile.in.orig 2010-11-07 14:53:46.000000000 +0100
++++ gnu/Makefile.in 2010-11-27 21:07:28.000000000 +0100
+@@ -1957,7 +1957,7 @@ langinfo.h: langinfo.in.h $(CXXDEFS_H) $
# avoid installing it.
all-local: charset.alias ref-add.sed ref-del.sed
diff --git a/archivers/gtar/files/patch-src_create.c b/archivers/gtar/files/patch-src_create.c
new file mode 100644
index 000000000000..05ee743a2f58
--- /dev/null
+++ b/archivers/gtar/files/patch-src_create.c
@@ -0,0 +1,15 @@
+$FreeBSD$
+
+Fix bug with --one-file-system and --listed-incremental.
+
+--- src/create.c.orig 2010-11-01 21:34:59.000000000 +0100
++++ src/create.c 2010-11-27 21:12:55.000000000 +0100
+@@ -1680,7 +1680,7 @@ dump_file0 (struct tar_stat_info *st, ch
+ This check is omitted if incremental_option is set *and* the
+ requested file is not explicitely listed in the command line. */
+
+- if (!(incremental_option && !is_individual_file (p))
++ if (! (incremental_option && ! top_level)
+ && !S_ISDIR (st->stat.st_mode)
+ && OLDER_TAR_STAT_TIME (*st, m)
+ && (!after_date_option || OLDER_TAR_STAT_TIME (*st, c)))
diff --git a/archivers/gtar/files/patch-src_incremen.c b/archivers/gtar/files/patch-src_incremen.c
new file mode 100644
index 000000000000..3c2ae5d7e8dd
--- /dev/null
+++ b/archivers/gtar/files/patch-src_incremen.c
@@ -0,0 +1,28 @@
+$FreeBSD$
+
+Fix bug with --one-file-system and --listed-incremental.
+
+--- src/incremen.c.orig 2010-10-24 20:07:55.000000000 +0200
++++ src/incremen.c 2010-11-27 21:08:05.000000000 +0100
+@@ -426,7 +426,6 @@ procdir (const char *name_buffer, struct
+ {
+ struct directory *directory;
+ struct stat *stat_data = &st->stat;
+- dev_t device = st->parent ? st->parent->stat.st_dev : 0;
+ bool nfs = NFS_FILE_STAT (*stat_data);
+
+ if ((directory = find_directory (name_buffer)) != NULL)
+@@ -540,11 +539,8 @@ procdir (const char *name_buffer, struct
+ }
+ }
+
+- /* If the directory is on another device and --one-file-system was given,
+- omit it... */
+- if (one_file_system_option && device != stat_data->st_dev
+- /* ... except if it was explicitely given in the command line */
+- && !is_individual_file (name_buffer))
++ if (one_file_system_option && st->parent
++ && stat_data->st_dev != st->parent->stat.st_dev)
+ /* FIXME:
+ WARNOPT (WARN_XDEV,
+ (0, 0,
diff --git a/archivers/gtar/files/patch-src_names.c b/archivers/gtar/files/patch-src_names.c
new file mode 100644
index 000000000000..8f29ba48e186
--- /dev/null
+++ b/archivers/gtar/files/patch-src_names.c
@@ -0,0 +1,15 @@
+$FreeBSD$
+
+Fix bug with --one-file-system and --listed-incremental.
+
+--- src/names.c.orig 2010-10-24 20:07:55.000000000 +0200
++++ src/names.c 2010-11-27 21:11:20.000000000 +0100
+@@ -360,8 +360,6 @@ name_next_elt (int change_dirs)
+ {
+ if (unquote_option)
+ unquote_string (name_buffer);
+- if (incremental_option)
+- register_individual_file (name_buffer);
+ entry.type = ep->type;
+ entry.v.name = name_buffer;
+ return &entry;