From 0fc563d0a99d3e1a43db89d5cc4b90db06e9b5f1 Mon Sep 17 00:00:00 2001 From: Ondrej Vasik Date: Wed, 7 Apr 2010 18:46:55 +0000 Subject: [PATCH] allow storing of extended attributes for fifo and block or character devices files(#573147) --- tar-1.23-xattrs.patch | 55 ++++++++++++++++++++++++++++++++----------- tar.spec | 6 ++++- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/tar-1.23-xattrs.patch b/tar-1.23-xattrs.patch index b829652..c80d103 100644 --- a/tar-1.23-xattrs.patch +++ b/tar-1.23-xattrs.patch @@ -1,6 +1,6 @@ diff -urNp tar-1.23-orig/configure.ac tar-1.23/configure.ac --- tar-1.23-orig/configure.ac 2010-03-10 11:47:54.000000000 +0100 -+++ tar-1.23/configure.ac 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/configure.ac 2010-04-07 20:35:40.393187469 +0200 @@ -44,7 +44,7 @@ AC_CHECK_HEADERS_ONCE(fcntl.h linux/fd.h sys/param.h sys/device.h sys/filio.h sys/gentape.h \ sys/inet.h sys/io/trioctl.h \ @@ -51,7 +51,7 @@ diff -urNp tar-1.23-orig/configure.ac tar-1.23/configure.ac AM_GNU_GETTEXT_VERSION([0.16]) diff -urNp tar-1.23-orig/doc/tar.texi tar-1.23/doc/tar.texi --- tar-1.23-orig/doc/tar.texi 2010-03-09 15:24:24.000000000 +0100 -+++ tar-1.23/doc/tar.texi 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/doc/tar.texi 2010-04-07 20:35:40.413184481 +0200 @@ -2364,6 +2364,10 @@ Normally when creating an archive, @comm @samp{/} from member names. This option disables that behavior. @xref{absolute}. @@ -183,7 +183,7 @@ diff -urNp tar-1.23-orig/doc/tar.texi tar-1.23/doc/tar.texi @node Portability diff -urNp tar-1.23-orig/src/common.h tar-1.23/src/common.h --- tar-1.23-orig/src/common.h 2010-01-26 13:21:18.000000000 +0100 -+++ tar-1.23/src/common.h 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/common.h 2010-04-07 20:35:40.417182960 +0200 @@ -251,6 +251,15 @@ GLOBAL int same_owner_option; /* If positive, preserve permissions when extracting. */ GLOBAL int same_permissions_option; @@ -225,7 +225,7 @@ diff -urNp tar-1.23-orig/src/common.h tar-1.23/src/common.h diff -urNp tar-1.23-orig/src/create.c tar-1.23/src/create.c --- tar-1.23-orig/src/create.c 2010-03-09 13:52:41.000000000 +0100 -+++ tar-1.23/src/create.c 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/create.c 2010-04-07 20:37:14.972186814 +0200 @@ -24,6 +24,7 @@ #include @@ -286,9 +286,36 @@ diff -urNp tar-1.23-orig/src/create.c tar-1.23/src/create.c block_ordinal = current_block_ordinal (); st->stat.st_size = 0; /* force 0 size on symlink */ header = start_header (st); +@@ -1720,11 +1752,23 @@ dump_file0 (struct tar_stat_info *st, co + } + #endif + else if (S_ISCHR (st->stat.st_mode)) +- type = CHRTYPE; ++ { ++ type = CHRTYPE; ++ xattrs_selinux_get(st, p, -1); ++ xattrs_xattrs_get(st, p, -1); ++ } + else if (S_ISBLK (st->stat.st_mode)) +- type = BLKTYPE; ++ { ++ type = BLKTYPE; ++ xattrs_selinux_get(st, p, -1); ++ xattrs_xattrs_get(st, p, -1); ++ } + else if (S_ISFIFO (st->stat.st_mode)) +- type = FIFOTYPE; ++ { ++ type = FIFOTYPE; ++ xattrs_selinux_get(st, p, -1); ++ xattrs_xattrs_get(st, p, -1); ++ } + else if (S_ISSOCK (st->stat.st_mode)) + { + WARNOPT (WARN_FILE_IGNORED, diff -urNp tar-1.23-orig/src/extract.c tar-1.23/src/extract.c --- tar-1.23-orig/src/extract.c 2010-01-26 12:28:09.000000000 +0100 -+++ tar-1.23/src/extract.c 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/extract.c 2010-04-07 20:35:40.419184383 +0200 @@ -70,6 +70,13 @@ struct delayed_set_stat mode_t invert_permissions; enum permstatus permstatus; @@ -497,9 +524,9 @@ diff -urNp tar-1.23-orig/src/extract.c tar-1.23/src/extract.c struct delayed_link *next = ds->next; free (ds); diff -urNp tar-1.23-orig/src/list.c tar-1.23/src/list.c ---- tar-1.23-orig/src/list.c 2010-03-12 13:40:53.000000000 +0100 -+++ tar-1.23/src/list.c 2010-03-12 13:48:43.000000000 +0100 -@@ -585,6 +585,13 @@ decode_header (union block *header, stru +--- tar-1.23-orig/src/list.c 2010-04-07 20:34:14.637500018 +0200 ++++ tar-1.23/src/list.c 2010-04-07 20:35:40.421184013 +0200 +@@ -586,6 +586,13 @@ decode_header (union block *header, stru assign_string (&stat_info->gname, header->header.gname[0] ? header->header.gname : NULL); @@ -515,7 +542,7 @@ diff -urNp tar-1.23-orig/src/list.c tar-1.23/src/list.c stat_info->atime.tv_sec = TIME_FROM_HEADER (header->oldgnu_header.atime); diff -urNp tar-1.23-orig/src/Makefile.am tar-1.23/src/Makefile.am --- tar-1.23-orig/src/Makefile.am 2010-01-26 12:30:20.000000000 +0100 -+++ tar-1.23/src/Makefile.am 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/Makefile.am 2010-04-07 20:35:40.423194594 +0200 @@ -20,7 +20,7 @@ bin_PROGRAMS = tar @@ -541,7 +568,7 @@ diff -urNp tar-1.23-orig/src/Makefile.am tar-1.23/src/Makefile.am +tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) diff -urNp tar-1.23-orig/src/tar.c tar-1.23/src/tar.c --- tar-1.23-orig/src/tar.c 2010-03-09 13:52:41.000000000 +0100 -+++ tar-1.23/src/tar.c 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/tar.c 2010-04-07 20:35:40.426309460 +0200 @@ -255,7 +255,8 @@ tar_set_quoting_style (char *arg) enum @@ -702,7 +729,7 @@ diff -urNp tar-1.23-orig/src/tar.c tar-1.23/src/tar.c xheader_destroy (&st->xhdr); diff -urNp tar-1.23-orig/src/tar.h tar-1.23/src/tar.h --- tar-1.23-orig/src/tar.h 2010-01-26 12:30:20.000000000 +0100 -+++ tar-1.23/src/tar.h 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/tar.h 2010-04-07 20:35:40.428311754 +0200 @@ -276,6 +276,14 @@ struct xheader uintmax_t string_length; }; @@ -746,7 +773,7 @@ diff -urNp tar-1.23-orig/src/tar.h tar-1.23/src/tar.h diff -urNp tar-1.23-orig/src/xattrs.c tar-1.23/src/xattrs.c --- tar-1.23-orig/src/xattrs.c 1970-01-01 01:00:00.000000000 +0100 -+++ tar-1.23/src/xattrs.c 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/xattrs.c 2010-04-07 20:35:40.430309239 +0200 @@ -0,0 +1,488 @@ +/* Create a tar archive. + @@ -1238,7 +1265,7 @@ diff -urNp tar-1.23-orig/src/xattrs.c tar-1.23/src/xattrs.c +} diff -urNp tar-1.23-orig/src/xattrs.h tar-1.23/src/xattrs.h --- tar-1.23-orig/src/xattrs.h 1970-01-01 01:00:00.000000000 +0100 -+++ tar-1.23/src/xattrs.h 2010-03-12 13:48:43.000000000 +0100 ++++ tar-1.23/src/xattrs.h 2010-04-07 20:35:40.431310870 +0200 @@ -0,0 +1,14 @@ + +extern void xattrs_acls_get(struct tar_stat_info *st, @@ -1256,7 +1283,7 @@ diff -urNp tar-1.23-orig/src/xattrs.h tar-1.23/src/xattrs.h + char const *file_name, char typeflag); diff -urNp tar-1.23-orig/src/xheader.c tar-1.23/src/xheader.c --- tar-1.23-orig/src/xheader.c 2010-02-12 11:03:09.000000000 +0100 -+++ tar-1.23/src/xheader.c 2010-03-12 13:50:44.000000000 +0100 ++++ tar-1.23/src/xheader.c 2010-04-07 20:35:40.434310075 +0200 @@ -459,6 +459,74 @@ xheader_write_global (struct xheader *xh } } diff --git a/tar.spec b/tar.spec index 2784f5e..f021ceb 100644 --- a/tar.spec +++ b/tar.spec @@ -5,7 +5,7 @@ Summary: A GNU file archiving program Name: tar Epoch: 2 Version: 1.23 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ Group: Applications/Archiving URL: http://www.gnu.org/software/tar/ @@ -119,6 +119,10 @@ fi %{_infodir}/tar.info* %changelog +* Wed Apr 07 2010 Ondrej Vasik 2:1.23-3 +- allow storing of extended attributes for fifo and block + or character devices files(#573147) + * Mon Mar 15 2010 Ondrej Vasik 2:1.23-2 - update help2maned manpage