[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: [PATCH] tar: on extract, -o is --no-same-owner
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2009-10-25 0:14:51
Message-ID: 200910250214.51154.vda.linux () googlemail ! com
[Download RAW message or body]

On Friday 23 October 2009 22:15, Bernhard Reutner-Fischer wrote:
> GNU tar-1.22 handles 'o' as no-same-owner only on extract,
> on create, 'o' would be --old-archive.
> 
> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
> ---
>  archival/tar.c |   23 +++++++++++++----------
>  1 files changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/archival/tar.c b/archival/tar.c
> index bd8e5dc..05f841b 100644
> --- a/archival/tar.c
> +++ b/archival/tar.c
> @@ -744,9 +744,10 @@ enum {
>  	OPT_BASEDIR      = 1 << 2, // C
>  	OPT_TARNAME      = 1 << 3, // f
>  	OPT_2STDOUT      = 1 << 4, // O
> -	OPT_P            = 1 << 5, // p
> -	OPT_VERBOSE      = 1 << 6, // v
> -	OPT_KEEP_OLD     = 1 << 7, // k
> +	OPT_NOPRESERVE_OWNER = 1 << 5, // no-same-owner
> +	OPT_P            = 1 << 6, // p
> +	OPT_VERBOSE      = 1 << 7, // v
> +	OPT_KEEP_OLD     = 1 << 8, // k
>  	OPT_CREATE       = IF_FEATURE_TAR_CREATE(   (1 << OPTBIT_CREATE      )) + 0, // c
>  	OPT_DEREFERENCE  = IF_FEATURE_TAR_CREATE(   (1 << OPTBIT_DEREFERENCE )) + 0, // h
>  	OPT_BZIP2        = IF_FEATURE_SEAMLESS_BZ2( (1 << OPTBIT_BZIP2       )) + 0, // j
> @@ -756,7 +757,7 @@ enum {
>  	OPT_GZIP         = IF_FEATURE_SEAMLESS_GZ(  (1 << OPTBIT_GZIP        )) + 0, // z
>  	OPT_COMPRESS     = IF_FEATURE_SEAMLESS_Z(   (1 << OPTBIT_COMPRESS    )) + 0, // Z
>  	OPT_NUMERIC_OWNER = 1 << OPTBIT_NUMERIC_OWNER,
> -	OPT_NOPRESERVE_OWNER = 1 << OPTBIT_NOPRESERVE_OWNER , // no-same-owner
> +
>  	OPT_NOPRESERVE_PERM = 1 << OPTBIT_NOPRESERVE_PERM, // no-same-permissions
>  };
>  #if ENABLE_FEATURE_TAR_LONG_OPTIONS
> @@ -766,6 +767,10 @@ static const char tar_longopts[] ALIGN1 =
>  	"directory\0"           Required_argument "C"
>  	"file\0"                Required_argument "f"
>  	"to-stdout\0"           No_argument       "O"
> +	/* do not restore owner */
> +	/* GNU tar handles 'o' as no-same-owner only on extract,
> +	   on create, 'o' is --old-archive.  */
> +	"no-same-owner\0"       No_argument       "o"
>  	"same-permissions\0"    No_argument       "p"
>  	"verbose\0"             No_argument       "v"
>  	"keep-old\0"            No_argument       "k"
> @@ -791,15 +796,13 @@ static const char tar_longopts[] ALIGN1 =
>  # endif
>  	/* use numeric uid/gid from tar header, not textual */
>  	"numeric-owner\0"       No_argument       "\xfc"
> -	/* do not restore owner */
> -	"no-same-owner\0"       No_argument       "\xfd"
>  	/* do not restore mode */
> -	"no-same-permissions\0" No_argument       "\xfe"
> +	"no-same-permissions\0" No_argument       "\xfd"
>  	/* --exclude takes next bit position in option mask, */
>  	/* therefore we have to either put it _after_ --no-same-perm */
> -	/* or add OPT[BIT]_EXCLUDE before OPT[BIT]_NOPRESERVE_OWNER */
> +	/* or add OPT[BIT]_EXCLUDE before OPT[BIT]_NOPRESERVE_PERM */
>  # if ENABLE_FEATURE_TAR_FROM
> -	"exclude\0"             Required_argument "\xff"
> +	"exclude\0"             Required_argument "\xfe"
>  # endif
>  	;
>  #endif
> @@ -842,7 +845,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
>  	applet_long_options = tar_longopts;
>  #endif
>  	opt = getopt32(argv,
> -		"txC:f:Opvk"
> +		"txC:f:Oopvk"
>  		IF_FEATURE_TAR_CREATE(   "ch"  )
>  		IF_FEATURE_SEAMLESS_BZ2( "j"   )
>  		IF_FEATURE_SEAMLESS_LZMA("a"   )


Applied with small corrections. Thanks!
--
vda
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic