* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2016-12-22 22:57 Lars Wendler
0 siblings, 0 replies; 7+ messages in thread
From: Lars Wendler @ 2016-12-22 22:57 UTC (permalink / raw
To: gentoo-commits
commit: 204a2aaac4657909edb11d2ebd3837707e9b9485
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 22 22:56:53 2016 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Dec 22 22:57:07 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=204a2aaa
app-arch/tar: Removed old.
Package-Manager: Portage-2.3.3, Repoman-2.3.1
app-arch/tar/Manifest | 2 -
.../files/tar-1.27.1-recursion_norecursion.patch | 25 --
.../tar/files/tar-1.27.1-xattr_build_fix.patch | 196 -----------
app-arch/tar/files/tar-1.28-concat-listed.patch | 117 -------
app-arch/tar/files/tar-1.28-xattr.patch | 36 --
app-arch/tar/files/tar.1-1.27 | 388 ---------------------
app-arch/tar/tar-1.27.1-r2.ebuild | 79 -----
app-arch/tar/tar-1.28-r1.ebuild | 76 ----
app-arch/tar/tar-1.29.ebuild | 74 ----
9 files changed, 993 deletions(-)
diff --git a/app-arch/tar/Manifest b/app-arch/tar/Manifest
index b9d5d4d..e16fce7 100644
--- a/app-arch/tar/Manifest
+++ b/app-arch/tar/Manifest
@@ -1,3 +1 @@
-DIST tar-1.27.1.tar.bz2 2573070 SHA256 9b0fb3ce8512059337add0da5f8f0f7d7647f2201f5ece24581d620ea60337c6 SHA512 f14a0a58e574db3aeec0914621aff2f0518b8d8acce81106b8219b36b3fed47349d6cb802c51a836a5e6889529337434d83b3c50cd7fc1801b9b3944eecc695b WHIRLPOOL fd44ee747f44febc9dd4b0e1a532c38a835fcb55967143a1ab29b29dfc27316de76dfa1d23438f1843bb0a7962eb0b59c3ec75041cc0fbe879b02af292ebc6e9
-DIST tar-1.28.tar.bz2 2693989 SHA256 60e4bfe0602fef34cd908d91cf638e17eeb09394d7b98c2487217dc4d3147562 SHA512 4f66a236a2d9185114e2b358a09f3d38c3c38e984e5fca4bedc4d7eb461bdaace6a7a9fc62aafb70428b1f3dc617fb0d0553558fb29cad33f0cb53ba081521c4 WHIRLPOOL 54ad7b73e973d436cff853fda267d21ab22139f53d18f6870c7a53cf74e53ec8735022b6d3c503504ee416f1b9f9d43ca1af60d2fedb5d852766cb8dd2ac72d0
DIST tar-1.29.tar.bz2 2715993 SHA256 236b11190c0a3a6885bdb8d61424f2b36a5872869aa3f7f695dea4b4843ae2f2 SHA512 d2cea9892892dfa0c8efd390303b75dccc085c4895e07ced684074592d69729916d6ea12475aa6aff873d076a729bb7dc2499c233edcfb9c7e8e8995481eef3b WHIRLPOOL fa5f66a7bb7698c35ad842bc4900a62997da5eb2f3cd6154391b88505a581078a64a8399bb5976d4723d90951d34c084e00d17908d90792bb5139184e8b92a94
diff --git a/app-arch/tar/files/tar-1.27.1-recursion_norecursion.patch b/app-arch/tar/files/tar-1.27.1-recursion_norecursion.patch
deleted file mode 100644
index 47973c3..00000000
--- a/app-arch/tar/files/tar-1.27.1-recursion_norecursion.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2bd9c15391b0bd6ef0bff76aebf09cfb53003199 Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray@gnu.org>
-Date: Thu, 09 Jan 2014 22:13:15 +0000
-Subject: Fix the use of --no-recursion and --recursion options.
-
-Each option remains in effect until cancelled by the next ocurrence
-of its counterpart, as stated in the documentation.
-
-* src/names.c (name_next_elt): Restore recursion_option from the
-value of matching_flags.
----
-diff --git a/src/names.c b/src/names.c
-index fc9841e..7777dc1 100644
---- a/src/names.c
-+++ b/src/names.c
-@@ -570,6 +570,7 @@ name_next_elt (int change_dirs)
-
- case NELT_FMASK:
- matching_flags = ep->v.matching_flags;
-+ recursion_option = matching_flags & FNM_LEADING_DIR;
- name_list_advance ();
- continue;
-
---
-cgit v0.9.0.2
diff --git a/app-arch/tar/files/tar-1.27.1-xattr_build_fix.patch b/app-arch/tar/files/tar-1.27.1-xattr_build_fix.patch
deleted file mode 100644
index 14cf90a..00000000
--- a/app-arch/tar/files/tar-1.27.1-xattr_build_fix.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-http://lists.gnu.org/archive/html/bug-tar/2013-12/msg00023.html
-https://bugs.gentoo.org/489170
-
---- tar-1.27.1/configure 2013-11-17 17:18:39.000000000 +0100
-+++ tar-1.27.1/configure 2013-11-17 17:18:39.000000000 +0100
-@@ -33619,19 +33619,20 @@
- fi
-
-
-- for ac_header in attr/xattr.h
-+ for ac_header in sys/xattr.h attr/xattr.h
- do :
-- ac_fn_c_check_header_mongrel "$LINENO" "attr/xattr.h" "ac_cv_header_attr_xattr_h" "$ac_includes_default"
--if test "x$ac_cv_header_attr_xattr_h" = xyes; then :
-+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
--#define HAVE_ATTR_XATTR_H 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-
- fi
-
- done
-
-- if test "$ac_cv_header_attr_xattr_h" = yes; then
-+ if test "$ac_cv_header_sys_xattr_h" = yes -o "$ac_cv_header_attr_xattr_h" = yes; then
- TAR_COND_XATTR_H_TRUE=
- TAR_COND_XATTR_H_FALSE='#'
- else
-@@ -33639,30 +33640,130 @@
- TAR_COND_XATTR_H_FALSE=
- fi
-
-- if test "$ac_cv_header_attr_xattr_h" = yes; then
-- for ac_func in getxattr fgetxattr lgetxattr \
-- setxattr fsetxattr lsetxattr \
-- listxattr flistxattr llistxattr
--do :
-- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
--ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
--if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-+
-+ if test "$with_xattrs" != no; then
-+ # If <sys/xattr.h> doesn't exist and <attr/xattr.h> does,
-+ # then link against libattr.so and not libc
-+ if test "$ac_cv_header_sys_xattr_h" = no -a "$ac_cv_header_attr_xattr_h" = yes; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgetxattr in -lattr" >&5
-+$as_echo_n "checking for fgetxattr in -lattr... " >&6; }
-+if ${ac_cv_lib_attr_fgetxattr+:} false; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lattr $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char fgetxattr ();
-+int
-+main ()
-+{
-+return fgetxattr ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+ ac_cv_lib_attr_fgetxattr=yes
-+else
-+ ac_cv_lib_attr_fgetxattr=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_fgetxattr" >&5
-+$as_echo "$ac_cv_lib_attr_fgetxattr" >&6; }
-+if test "x$ac_cv_lib_attr_fgetxattr" = xyes; then :
- cat >>confdefs.h <<_ACEOF
--#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+#define HAVE_LIBATTR 1
- _ACEOF
-- # only when functions are present
-
--$as_echo "#define HAVE_ATTR_XATTR_H 1" >>confdefs.h
-+ LIBS="-lattr $LIBS"
-
-- if test "$with_xattrs" != no; then
-+fi
-
--$as_echo "#define HAVE_XATTRS /**/" >>confdefs.h
-+ fi
-+ have_functions=yes
-+ for xattr_func in getxattr fgetxattr lgetxattr \
-+ setxattr fsetxattr lsetxattr \
-+ listxattr flistxattr llistxattr; do \
-+ as_ac_Search=`$as_echo "ac_cv_search_$xattr_func" | $as_tr_sh`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing $xattr_func" >&5
-+$as_echo_n "checking for library containing $xattr_func... " >&6; }
-+if eval \${$as_ac_Search+:} false; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ ac_func_search_save_LIBS=$LIBS
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char $xattr_func ();
-+int
-+main ()
-+{
-+return $xattr_func ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+for ac_lib in '' attr; do
-+ if test -z "$ac_lib"; then
-+ ac_res="none required"
-+ else
-+ ac_res=-l$ac_lib
-+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
-+ fi
-+ if ac_fn_c_try_link "$LINENO"; then :
-+ eval "$as_ac_Search=\$ac_res"
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext
-+ if eval \${$as_ac_Search+:} false; then :
-+ break
-+fi
-+done
-+if eval \${$as_ac_Search+:} false; then :
-
-- fi
-+else
-+ eval "$as_ac_Search=no"
-+fi
-+rm conftest.$ac_ext
-+LIBS=$ac_func_search_save_LIBS
-+fi
-+eval ac_res=\$$as_ac_Search
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+eval ac_res=\$$as_ac_Search
-+if test "$ac_res" != no; then :
-+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-+else
-+ have_functions=no
- fi
--done
-
-+ test $have_functions = no && break
-+ done
-+ if test $have_functions = yes; then
-+
-+$as_echo "#define HAVE_XATTRS 1" >>confdefs.h
-+
-+ else
-+ test "$with_xattrs" = yes && as_fn_error $? "xattr support requested but not found." "$LINENO" 5
-+ fi
- fi
-
-
---- tar-1.27.1/lib/xattr-at.h 2013-03-14 21:18:10.000000000 +0100
-+++ tar-1.27.1/lib/xattr-at.h 2013-03-14 21:18:10.000000000 +0100
-@@ -20,7 +20,15 @@
- #define XATTRS_AT_H
-
- #include <sys/types.h>
--#include <attr/xattr.h>
-+#if defined(HAVE_SYS_XATTR_H)
-+# include <sys/xattr.h>
-+#elif defined(HAVE_ATTR_XATTR_H)
-+# include <attr/xattr.h>
-+#endif
-+
-+#ifndef ENOATTR
-+# define ENOATTR ENODATA /* No such attribute */
-+#endif
-
- /* These are the dir-fd-relative variants of the functions without the
- "at" suffix. For example, setxattrat (AT_FDCWD, path, name, value, size,
diff --git a/app-arch/tar/files/tar-1.28-concat-listed.patch b/app-arch/tar/files/tar-1.28-concat-listed.patch
deleted file mode 100644
index 28dc578..00000000
--- a/app-arch/tar/files/tar-1.28-concat-listed.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-https://bugs.gentoo.org/546294
-https://lists.gnu.org/archive/html/bug-tar/2015-04/msg00006.html
-
-From 15c02c2b9d383446b3ea35dbea5a048e136b020d Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray@gnu.org.ua>
-Date: Thu, 16 Apr 2015 13:02:10 +0300
-Subject: [PATCH] Fix extraction from concatenated incremental archives.
-
-* src/common.h (remove_delayed_set_stat): New proto.
-* src/extract.c (free_delayed_set_stat)
-(remove_delayed_set_stat): New function.
-(apply_nonancestor_delayed_set_stat): Use free_delayed_set_stat.
-* src/misc.c (safer_rmdir): Remove delayed_set_stat entry
-corresponding to the removed directory.
-* tests/incr10.at: New test case.
-* tests/Makefile.am: Add new test.
-* tests/testsuite.at: Likewise.
----
- src/common.h | 2 ++
- src/extract.c | 38 +++++++++++++++++++++++++++-----
- src/misc.c | 7 +++++-
- tests/Makefile.am | 1 +
- tests/incr10.at | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- tests/testsuite.at | 1 +
- 6 files changed, 107 insertions(+), 6 deletions(-)
- create mode 100644 tests/incr10.at
-
-diff --git a/src/common.h b/src/common.h
-index 20cbb64..2904183 100644
---- a/src/common.h
-+++ b/src/common.h
-@@ -523,6 +523,8 @@ void extract_archive (void);
- void extract_finish (void);
- bool rename_directory (char *src, char *dst);
-
-+void remove_delayed_set_stat (const char *fname);
-+
- /* Module delete.c. */
-
- void delete_archive_members (void);
-diff --git a/src/extract.c b/src/extract.c
-index ca25603..5aaeb1b 100644
---- a/src/extract.c
-+++ b/src/extract.c
-@@ -537,6 +537,38 @@ repair_delayed_set_stat (char const *dir,
- quotearg_colon (dir)));
- }
-
-+static void
-+free_delayed_set_stat (struct delayed_set_stat *data)
-+{
-+ xheader_xattr_free (data->xattr_map, data->xattr_map_size);
-+ free (data->cntx_name);
-+ free (data->acls_a_ptr);
-+ free (data->acls_d_ptr);
-+ free (data);
-+}
-+
-+void
-+remove_delayed_set_stat (const char *fname)
-+{
-+ struct delayed_set_stat *data, *next, *prev = NULL;
-+ for (data = delayed_set_stat_head; data; data = next)
-+ {
-+ next = data->next;
-+ if (chdir_current == data->change_dir
-+ && strcmp (data->file_name, fname) == 0)
-+ {
-+ free_delayed_set_stat (data);
-+ if (prev)
-+ prev->next = next;
-+ else
-+ delayed_set_stat_head = next;
-+ return;
-+ }
-+ else
-+ prev = data;
-+ }
-+}
-+
- /* After a file/link/directory creation has failed, see if
- it's because some required directory was not present, and if so,
- create all required directories. Return zero if all the required
-@@ -846,11 +878,7 @@ apply_nonancestor_delayed_set_stat (char const *file_name, bool after_links)
- }
-
- delayed_set_stat_head = data->next;
-- xheader_xattr_free (data->xattr_map, data->xattr_map_size);
-- free (data->cntx_name);
-- free (data->acls_a_ptr);
-- free (data->acls_d_ptr);
-- free (data);
-+ free_delayed_set_stat (data);
- }
- }
-
-diff --git a/src/misc.c b/src/misc.c
-index 8e66643..d263c07 100644
---- a/src/misc.c
-+++ b/src/misc.c
-@@ -586,7 +586,12 @@ safer_rmdir (const char *file_name)
- return -1;
- }
-
-- return unlinkat (chdir_fd, file_name, AT_REMOVEDIR);
-+ if (unlinkat (chdir_fd, file_name, AT_REMOVEDIR) == 0)
-+ {
-+ remove_delayed_set_stat (file_name);
-+ return 0;
-+ }
-+ return -1;
- }
-
- /* Remove FILE_NAME, returning 1 on success. If FILE_NAME is a directory,
---
-2.3.5
-
diff --git a/app-arch/tar/files/tar-1.28-xattr.patch b/app-arch/tar/files/tar-1.28-xattr.patch
deleted file mode 100644
index a8f91fd..00000000
--- a/app-arch/tar/files/tar-1.28-xattr.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-https://bugs.gentoo.org/548024
-
-From 9c2b57232e3bc2e5ba85387560bcdd851849a128 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 5 Jan 2015 20:24:18 -0800
-Subject: [PATCH] tar: port xattr-at.c to Solaris 10
-
-* lib/xattr-at.c (setxattrat, lsetxattrat, getxattrat, lgetxattrat)
-(listxattrat, llistxattrat): Compile only if HAVE_XATTRS, so that
-the code doesn't call functions that are not declared.
----
- lib/xattr-at.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/lib/xattr-at.c b/lib/xattr-at.c
-index 443ccae..66427e9 100644
---- a/lib/xattr-at.c
-+++ b/lib/xattr-at.c
-@@ -31,6 +31,8 @@
-
- #include "openat-priv.h"
-
-+#ifdef HAVE_XATTRS
-+
- /* setxattrat */
- #define AT_FUNC_NAME setxattrat
- #define AT_FUNC_F1 setxattr
-@@ -108,3 +110,5 @@
- #undef AT_FUNC_RESULT
- #undef AT_FUNC_POST_FILE_PARAM_DECLS
- #undef AT_FUNC_POST_FILE_ARGS
-+
-+#endif /* HAVE_XATTRS */
---
-2.4.0
-
diff --git a/app-arch/tar/files/tar.1-1.27 b/app-arch/tar/files/tar.1-1.27
deleted file mode 100644
index 700b569..00000000
--- a/app-arch/tar/files/tar.1-1.27
+++ /dev/null
@@ -1,388 +0,0 @@
-.\" generated by script on Mon Oct 21 08:29:21 2013
-.Dd Oct 21, 2013
-.Dt TAR 1
-.Sh NAME
-.Nm tar
-.Nd The GNU version of the tar archiving utility
-.Sh SYNOPSIS
-.Nm tar
-.Oo Fl Oc Cm A Fl \-catenate \-concatenate Cm \||\| c Fl \-create Cm \||\| d Fl \-diff \-compare Cm \||\| Fl \-delete Cm \||\| r Fl \-append Cm \||\| t Fl \-list Cm \||\| Fl \-test\-label Cm \||\| u Fl \-update Cm \||\| x Fl \-extract \-get
-.Op Ar options
-.Op Ar pathname ...
-.Sh DESCRIPTION
-.Nm Tar
-stores and extracts files from a tape or disk archive.
-.Pp
-The first argument to
-tar
-should be a function; either one of the letters
-.Cm Acdrtux ,
-or one of the long function names.
-A function letter need not be prefixed with ``\-'', and may be combined
-with other single-letter options.
-A long function name must be prefixed with
-.Cm \\-\\- .
-Some options take a parameter; with the single-letter form
-these must be given as separate arguments.
-With the long form, they may be given by appending
-.Cm = Ns Ar value
-to the option.
-.Sh FUNCTION LETTERS
-Main operation mode:
-.Bl -tag -width flag
-.It Fl A , Fl \-catenate , Fl \-concatenate
-append tar files to an archive
-.It Fl c , Fl \-create
-create a new archive
-.It Fl d , Fl \-diff , Fl \-compare
-find differences between archive and file system
-.It Fl \-delete
-delete from the archive (not on mag tapes!)
-.It Fl r , Fl \-append
-append files to the end of an archive
-.It Fl t , Fl \-list
-list the contents of an archive
-.It Fl \-test\-label
-test the archive volume label and exit
-.It Fl u , Fl \-update
-only append files newer than copy in archive
-.It Fl x , Fl \-extract , Fl \-get
-extract files from an archive
-.El
-.Sh OTHER OPTIONS
-Operation modifiers:
-.Bl -tag -width flag
-.It \-[0\-7][lmh]
-specify drive and density
-.It Fl a , Fl \-auto\-compress
-use archive suffix to determine the compression program
-.It Fl \-acls
-Enable the POSIX ACLs support
-.It Fl \-no\-acls
-Disable the POSIX ACLs support
-.It Fl \-add\-file Ns \= Ns Ar FILE
-add given FILE to the archive (useful if its name starts with a dash)
-.It Fl \-anchored
-patterns match file name start
-.It Fl \-no\-anchored
-patterns match after any '/' (default for exclusion)
-.It Fl \-atime\-preserve
-preserve access times on dumped files, either by restoring the times
-.It Fl \-no\-auto\-compress
-do not use archive suffix to determine the compression program
-.It Fl b , Fl \-blocking\-factor Ar BLOCKS
-BLOCKS x 512 bytes per record
-.It Fl B , Fl \-read\-full\-records
-reblock as we read (for 4.2BSD pipes)
-.It Fl \-backup
-backup before removal, choose version CONTROL
-.It Fl C , Fl \-directory Ar DIR
-change to directory DIR
-.It Fl \-check\-device
-check device numbers when creating incremental archives (default)
-.It Fl \-no\-check\-device
-do not check device numbers when creating incremental archives
-.It Fl \-checkpoint
-display progress messages every NUMBERth record (default 10)
-.It Fl \-checkpoint\-action Ns \= Ns Ar ACTION
-execute ACTION on each checkpoint
-.It Fl \-delay\-directory\-restore
-delay setting modification times and permissions of extracted
-.It Fl \-no\-delay\-directory\-restore
-cancel the effect of --delay-directory-restore option
-.It Fl \-exclude Ns \= Ns Ar PATTERN
-exclude files, given as a PATTERN
-.It Fl \-exclude\-backups
-exclude backup and lock files
-.It Fl \-exclude\-caches
-exclude contents of directories containing CACHEDIR.TAG,
-.It Fl \-exclude\-caches\-all
-exclude directories containing CACHEDIR.TAG
-.It Fl \-exclude\-caches\-under
-exclude everything under directories containing CACHEDIR.TAG
-.It Fl \-exclude\-tag Ns \= Ns Ar FILE
-exclude contents of directories containing FILE, except
-.It Fl \-exclude\-tag\-all Ns \= Ns Ar FILE
-exclude directories containing FILE
-.It Fl \-exclude\-tag\-under Ns \= Ns Ar FILE
-exclude everything under directories containing FILE
-.It Fl \-exclude\-vcs
-exclude version control system directories
-.It Fl f , Fl \-file Ar ARCHIVE
-use archive file or device ARCHIVE
-.It Fl F , Fl \-info\-script , Fl \-new\-volume\-script Ar NAME
-run script at end of each tape (implies -M)
-.It Fl \-force\-local
-archive file is local even if it has a colon
-.It Fl \-full\-time
-print file time to its full resolution
-.It Fl g , Fl \-listed\-incremental Ar FILE
-handle new GNU-format incremental backup
-.It Fl G , Fl \-incremental
-handle old GNU-format incremental backup
-.It Fl \-group Ns \= Ns Ar NAME
-force NAME as group for added files
-.It Fl h , Fl \-dereference
-follow symlinks; archive and dump the files they point to
-.It Fl H , Fl \-format Ar FORMAT
-create archive of the given formatFORMAT is one of the following:
-.Bl -tag -width flag
-.It Fl \-format=gnu
-GNU tar 1.13.x format
-.It Fl \-format=oldgnu
-GNU format as per tar <= 1.12
-.It Fl \-format=pax
-POSIX 1003.1-2001 (pax) format
-.It Fl \-format=posix
-same as pax
-.It Fl \-format=ustar
-POSIX 1003.1-1988 (ustar) format
-.It Fl \-format=v7
-old V7 tar format
-.El
-.It Fl \-hard\-dereference
-follow hard links; archive and dump the files they refer to
-.It Fl i , Fl \-ignore\-zeros
-ignore zeroed blocks in archive (means EOF)
-.It Fl I , Fl \-use\-compress\-program Ar PROG
-filter through PROG (must accept -d)
-.It Fl \-ignore\-case
-ignore case
-.It Fl \-no\-ignore\-case
-case sensitive matching (default)
-.It Fl \-ignore\-command\-error
-ignore exit codes of children
-.It Fl \-no\-ignore\-command\-error
-treat non-zero exit codes of children as error
-.It Fl \-ignore\-failed\-read
-do not exit with nonzero on unreadable files
-.It Fl \-index\-file Ns \= Ns Ar FILE
-send verbose output to FILE
-.It Fl j , Fl \-bzip2
-
-.It Fl J , Fl \-xz
-
-.It Fl k , Fl \-keep\-old\-files
-don't replace existing files when extracting,
-.It Fl K , Fl \-starting\-file Ar MEMBER-NAME
-begin at member MEMBER-NAME when reading the archive
-.It Fl \-keep\-directory\-symlink
-preserve existing symlinks to directories when extracting
-.It Fl \-keep\-newer\-files
-don't replace existing files that are newer than their archive copies
-.It Fl l , Fl \-check\-links
-print a message if not all links are dumped
-.It Fl L , Fl \-tape\-length Ar NUMBER
-change tape after writing NUMBER x 1024 bytes
-.It Fl \-level Ns \= Ns Ar NUMBER
-dump level for created listed-incremental archive
-.It Fl \-lzip
-
-.It Fl \-lzma
-
-.It Fl \-lzop
-
-.It Fl m , Fl \-touch
-don't extract file modified time
-.It Fl M , Fl \-multi\-volume
-create/list/extract multi-volume archive
-.It Fl \-mode Ns \= Ns Ar CHANGES
-force (symbolic) mode CHANGES for added files
-.It Fl \-mtime Ns \= Ns Ar DATE-OR-FILE
-set mtime for added files from DATE-OR-FILE
-.It Fl n , Fl \-seek
-archive is seekable
-.It Fl N , Fl \-newer , Fl \-after\-date Ar DATE-OR-FILE
-only store files newer than DATE-OR-FILE
-.It Fl \-newer\-mtime Ns \= Ns Ar DATE
-compare date and time when data changed only
-.It Fl \-null
--T reads null-terminated names, disable -C
-.It Fl \-no\-null
-disable the effect of the previous --null option
-.It Fl \-numeric\-owner
-always use numbers for user/group names
-.It Fl O , Fl \-to\-stdout
-extract files to standard output
-.It Fl \-occurrence
-process only the NUMBERth occurrence of each file in the archive;
-.It Fl \-old\-archive , Fl \-portability
-same as --format=v7
-.It Fl \-one\-file\-system
-stay in local file system when creating archive
-.It Fl \-overwrite
-overwrite existing files when extracting
-.It Fl \-overwrite\-dir
-overwrite metadata of existing directories when extracting (default)
-.It Fl \-no\-overwrite\-dir
-preserve metadata of existing directories
-.It Fl \-owner Ns \= Ns Ar NAME
-force NAME as owner for added files
-.It Fl p , Fl \-preserve\-permissions , Fl \-same\-permissions
-extract information about file permissions (default for superuser)
-.It Fl P , Fl \-absolute\-names
-don't strip leading '/'s from file names
-.It Fl \-pax\-option Ns \= Ns Ar keyword[[:]=value][,keyword[[:]=value]]...
-control pax keywords
-.It Fl \-posix
-same as --format=posix
-.It Fl \-preserve
-same as both -p and -s
-.It Fl \-quote\-chars Ns \= Ns Ar STRING
-additionally quote characters from STRING
-.It Fl \-no\-quote\-chars Ns \= Ns Ar STRING
-disable quoting for characters from STRING
-.It Fl \-quoting\-style Ns \= Ns Ar STYLE
-set name quoting style; see below for valid STYLE values
-.It Fl R , Fl \-block\-number
-show block number within archive with each message
-.It Fl \-record\-size Ns \= Ns Ar NUMBER
-NUMBER of bytes per record, multiple of 512
-.It Fl \-recursion
-recurse into directories (default)
-.It Fl \-no\-recursion
-avoid descending automatically in directories
-.It Fl \-recursive\-unlink
-empty hierarchies prior to extracting directory
-.It Fl \-remove\-files
-remove files after adding them to the archive
-.It Fl \-restrict
-disable use of some potentially harmful options
-.It Fl \-rmt\-command Ns \= Ns Ar COMMAND
-use given rmt COMMAND instead of rmt
-.It Fl \-rsh\-command Ns \= Ns Ar COMMAND
-use remote COMMAND instead of rsh
-.It Fl s , Fl \-preserve\-order , Fl \-same\-order
-member arguments are listed in the same order as the
-.It Fl S , Fl \-sparse
-handle sparse files efficiently
-.It Fl \-same\-owner
-try extracting files with the same ownership as exists in the archive (default for superuser)
-.It Fl \-no\-same\-owner
-extract files as yourself (default for ordinary users)
-.It Fl \-no\-same\-permissions
-apply the user's umask when extracting permissions from the archive (default for ordinary users)
-.It Fl \-no\-seek
-archive is not seekable
-.It Fl \-selinux
-Enable the SELinux context support
-.It Fl \-no\-selinux
-Disable the SELinux context support
-.It Fl \-show\-defaults
-show tar defaults
-.It Fl \-show\-omitted\-dirs
-when listing or extracting, list each directory that does not match search criteria
-.It Fl \-show\-snapshot\-field\-ranges
-show valid ranges for snapshot-file fields
-.It Fl \-show\-transformed\-names , Fl \-show\-stored\-names
-show file or archive names after transformation
-.It Fl \-skip\-old\-files
-don't replace existing files when extracting, silently skip over them
-.It Fl \-sparse\-version Ns \= Ns Ar MAJOR[.MINOR]
-set version of the sparse format to use (implies --sparse)
-.It Fl \-strip\-components Ns \= Ns Ar NUMBER
-strip NUMBER leading components from file names on extraction
-.It Fl \-suffix Ns \= Ns Ar STRING
-backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
-.It Fl T , Fl \-files\-from Ar FILE
-get names to extract or create from FILE
-.It Fl \-to\-command Ns \= Ns Ar COMMAND
-pipe extracted files to another program
-.It Fl \-totals
-print total bytes after processing the archive;
-.It Fl \-transform , Fl \-xform Ar EXPRESSION
-use sed replace EXPRESSION to transform file names
-.It Fl U , Fl \-unlink\-first
-remove each file prior to extracting over it
-.It Fl \-unquote
-unquote filenames read with -T (default)
-.It Fl \-no\-unquote
-do not unquote filenames read with -T
-.It Fl \-utc
-print file modification times in UTC
-.It Fl v , Fl \-verbose
-verbosely list files processed
-.It Fl V , Fl \-label Ar TEXT
-create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
-.It Fl \-volno\-file Ns \= Ns Ar FILE
-use/update the volume number in FILE
-.It Fl w , Fl \-interactive , Fl \-confirmation
-ask for confirmation for every action
-.It Fl W , Fl \-verify
-attempt to verify the archive after writing it
-.It Fl \-warning Ns \= Ns Ar KEYWORD
-warning control
-.It Fl \-wildcards
-use wildcards (default for exclusion)
-.It Fl \-wildcards\-match\-slash
-wildcards match '/' (default for exclusion)
-.It Fl \-no\-wildcards\-match\-slash
-wildcards do not match '/'
-.It Fl \-no\-wildcards
-verbatim string matching
-.It Fl X , Fl \-exclude\-from Ar FILE
-exclude patterns listed in FILE
-.It Fl \-xattrs
-Enable extended attributes support
-.It Fl \-xattrs\-exclude Ns \= Ns Ar MASK
-specify the exclude pattern for xattr keys
-.It Fl \-xattrs\-include Ns \= Ns Ar MASK
-specify the include pattern for xattr keys
-.It Fl \-no\-xattrs
-Disable extended attributes support
-.It Fl z , Fl \-gzip , Fl \-gunzip Fl \-ungzip
-
-.It Fl Z , Fl \-compress , Fl \-uncompress
-
-.El
-.Sh ENVIRONMENT
-The behavior of tar is controlled by the following environment variables,
-among others:
-.Bl -tag -width Ds
-.It Ev SIMPLE_BACKUP_SUFFIX
-Backup prefix to use when extracting, if
-.Fl \-suffix
-is not specified.
-The backup suffix defaults to `~' if neither is specified.
-.It Ev TAR_OPTIONS
-Options to prepend to those specified on the command line, separated by
-whitespace. Embedded backslashes may be used to escape whitespace or
-backslashes within an option.
-.It Ev TAPE
-Device or file to use for the archive if
-.Fl \-file
-is not specified.
-If this environment variable is unset, use stdin or stdout instead.
-.El
-.Sh EXAMPLES
-Create archive.tar from files foo and bar.
-.Bd -literal -offset indent -compact
-tar \-cf archive.tar foo bar
-.Ed
-List all files in archive.tar verbosely.
-.Bd -literal -offset indent -compact
-tar \-tvf archive.tar
-.Ed
-Extract all files from archive.tar.
-.Bd -literal -offset indent -compact
-tar \-xf archive.tar
-.Ed
-.Sh SEE ALSO
-.\" libarchive
-.Xr tar 5 ,
-.\" man-pages
-.Xr symlink 7 ,
-.Xr rmt 8
-.Sh HISTORY
-The
-.Nm tar
-command appeared in
-.At v7 .
-.Sh BUGS
-The GNU folks, in general, abhor man pages, and create info documents instead.
-Unfortunately, the info document describing tar is licensed under the GFDL with
-invariant cover texts, which makes it impossible to include any text
-from that document in this man page.
-Most of the text in this document was automatically extracted from the usage
-text in the source.
-It may not completely describe all features of the program.
diff --git a/app-arch/tar/tar-1.27.1-r2.ebuild b/app-arch/tar/tar-1.27.1-r2.ebuild
deleted file mode 100644
index 8c01c37..00000000
--- a/app-arch/tar/tar-1.27.1-r2.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-
-inherit flag-o-matic eutils
-
-DESCRIPTION="Use this to make tarballs :)"
-HOMEPAGE="https://www.gnu.org/software/tar/"
-SRC_URI="mirror://gnu/tar/${P}.tar.bz2
- mirror://gnu-alpha/tar/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="acl minimal nls selinux static userland_GNU xattr"
-
-RDEPEND="acl? ( virtual/acl )
- selinux? ( sys-libs/libselinux )"
-DEPEND="${RDEPEND}
- nls? ( >=sys-devel/gettext-0.10.35 )
- xattr? ( sys-apps/attr )"
-
-src_prepare() {
- EPATCH_OPTS="-Z" \
- epatch "${FILESDIR}/${P}-xattr_build_fix.patch"
- epatch "${FILESDIR}/${P}-recursion_norecursion.patch"
- if ! use userland_GNU ; then
- sed -i \
- -e 's:/backup\.sh:/gbackup.sh:' \
- scripts/{backup,dump-remind,restore}.in \
- || die "sed non-GNU"
- fi
-}
-
-src_configure() {
- use static && append-ldflags -static
- FORCE_UNSAFE_CONFIGURE=1 \
- econf \
- --enable-backup-scripts \
- --bindir="${EPREFIX}"/bin \
- --libexecdir="${EPREFIX}"/usr/sbin \
- $(usex userland_GNU "" "--program-prefix=g") \
- $(use_with acl posix-acls) \
- $(use_enable nls) \
- $(use_with selinux) \
- $(use_with xattr xattrs)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- local p=$(usex userland_GNU "" "g")
- if [[ -z ${p} ]] ; then
- # a nasty yet required piece of baggage
- exeinto /etc
- doexe "${FILESDIR}"/rmt
- fi
-
- # autoconf looks for gtar before tar (in configure scripts), hence
- # in Prefix it is important that it is there, otherwise, a gtar from
- # the host system (FreeBSD, Solaris, Darwin) will be found instead
- # of the Prefix provided (GNU) tar
- if use prefix ; then
- dosym tar /bin/gtar
- fi
-
- dodoc AUTHORS ChangeLog* NEWS README* THANKS
- newman "${FILESDIR}"/tar.1-1.27 ${p}tar.1
- mv "${ED}"/usr/sbin/${p}backup{,-tar} || die
- mv "${ED}"/usr/sbin/${p}restore{,-tar} || die
-
- if use minimal ; then
- find "${ED}"/etc "${ED}"/*bin/ "${ED}"/usr/*bin/ \
- -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
- -delete || die
- fi
-}
diff --git a/app-arch/tar/tar-1.28-r1.ebuild b/app-arch/tar/tar-1.28-r1.ebuild
deleted file mode 100644
index ee145ec..00000000
--- a/app-arch/tar/tar-1.28-r1.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=4
-
-inherit flag-o-matic eutils
-
-DESCRIPTION="Use this to make tarballs :)"
-HOMEPAGE="https://www.gnu.org/software/tar/"
-SRC_URI="mirror://gnu/tar/${P}.tar.bz2
- mirror://gnu-alpha/tar/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr"
-
-RDEPEND="acl? ( virtual/acl )
- selinux? ( sys-libs/libselinux )"
-DEPEND="${RDEPEND}
- nls? ( >=sys-devel/gettext-0.10.35 )
- xattr? ( elibc_glibc? ( sys-apps/attr ) )"
-
-src_prepare() {
- if ! use userland_GNU ; then
- sed -i \
- -e 's:/backup\.sh:/gbackup.sh:' \
- scripts/{backup,dump-remind,restore}.in \
- || die "sed non-GNU"
- fi
- epatch "${FILESDIR}"/${P}-concat-listed.patch #546294
- epatch "${FILESDIR}"/${P}-xattr.patch #548024
-}
-
-src_configure() {
- use static && append-ldflags -static
- FORCE_UNSAFE_CONFIGURE=1 \
- econf \
- --enable-backup-scripts \
- --bindir="${EPREFIX}"/bin \
- --libexecdir="${EPREFIX}"/usr/sbin \
- $(usex userland_GNU "" "--program-prefix=g") \
- $(use_with acl posix-acls) \
- $(use_enable nls) \
- $(use_with selinux) \
- $(use_with xattr xattrs)
-}
-
-src_install() {
- default
-
- local p=$(usex userland_GNU "" "g")
- if [[ -z ${p} ]] ; then
- # a nasty yet required piece of baggage
- exeinto /etc
- doexe "${FILESDIR}"/rmt
- fi
-
- # autoconf looks for gtar before tar (in configure scripts), hence
- # in Prefix it is important that it is there, otherwise, a gtar from
- # the host system (FreeBSD, Solaris, Darwin) will be found instead
- # of the Prefix provided (GNU) tar
- if use prefix ; then
- dosym tar /bin/gtar
- fi
-
- mv "${ED}"/usr/sbin/${p}backup{,-tar} || die
- mv "${ED}"/usr/sbin/${p}restore{,-tar} || die
-
- if use minimal ; then
- find "${ED}"/etc "${ED}"/*bin/ "${ED}"/usr/*bin/ \
- -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
- -delete || die
- fi
-}
diff --git a/app-arch/tar/tar-1.29.ebuild b/app-arch/tar/tar-1.29.ebuild
deleted file mode 100644
index 02f2c7e..00000000
--- a/app-arch/tar/tar-1.29.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit flag-o-matic eutils
-
-DESCRIPTION="Use this to make tarballs :)"
-HOMEPAGE="https://www.gnu.org/software/tar/"
-SRC_URI="mirror://gnu/tar/${P}.tar.bz2
- mirror://gnu-alpha/tar/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr"
-
-RDEPEND="acl? ( virtual/acl )
- selinux? ( sys-libs/libselinux )"
-DEPEND="${RDEPEND}
- nls? ( >=sys-devel/gettext-0.10.35 )
- xattr? ( elibc_glibc? ( sys-apps/attr ) )"
-
-src_prepare() {
- if ! use userland_GNU ; then
- sed -i \
- -e 's:/backup\.sh:/gbackup.sh:' \
- scripts/{backup,dump-remind,restore}.in \
- || die "sed non-GNU"
- fi
-}
-
-src_configure() {
- use static && append-ldflags -static
- FORCE_UNSAFE_CONFIGURE=1 \
- econf \
- --enable-backup-scripts \
- --bindir="${EPREFIX}"/bin \
- --libexecdir="${EPREFIX}"/usr/sbin \
- $(usex userland_GNU "" "--program-prefix=g") \
- $(use_with acl posix-acls) \
- $(use_enable nls) \
- $(use_with selinux) \
- $(use_with xattr xattrs)
-}
-
-src_install() {
- default
-
- local p=$(usex userland_GNU "" "g")
- if [[ -z ${p} ]] ; then
- # a nasty yet required piece of baggage
- exeinto /etc
- doexe "${FILESDIR}"/rmt
- fi
-
- # autoconf looks for gtar before tar (in configure scripts), hence
- # in Prefix it is important that it is there, otherwise, a gtar from
- # the host system (FreeBSD, Solaris, Darwin) will be found instead
- # of the Prefix provided (GNU) tar
- if use prefix ; then
- dosym tar /bin/gtar
- fi
-
- mv "${ED}"/usr/sbin/${p}backup{,-tar} || die
- mv "${ED}"/usr/sbin/${p}restore{,-tar} || die
-
- if use minimal ; then
- find "${ED}"/etc "${ED}"/*bin/ "${ED}"/usr/*bin/ \
- -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
- -delete || die
- fi
-}
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2017-01-17 20:43 Mike Frysinger
0 siblings, 0 replies; 7+ messages in thread
From: Mike Frysinger @ 2017-01-17 20:43 UTC (permalink / raw
To: gentoo-commits
commit: 0be4e2ac7ec0906aff61da2a1a749ebd17db746c
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 17 20:42:44 2017 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Jan 17 20:42:44 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0be4e2ac
app-arch/tar: pull in upstream fix for --add-file behvaior
app-arch/tar/files/tar-1.29-add-files.patch | 194 ++++++++++++++++++++++++++++
app-arch/tar/tar-1.29-r3.ebuild | 81 ++++++++++++
2 files changed, 275 insertions(+)
diff --git a/app-arch/tar/files/tar-1.29-add-files.patch b/app-arch/tar/files/tar-1.29-add-files.patch
new file mode 100644
index 00000000..8ab15ac
--- /dev/null
+++ b/app-arch/tar/files/tar-1.29-add-files.patch
@@ -0,0 +1,194 @@
+From 3a283cfe9f8f1f127e8dc5597a5ea1d249985a54 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Sat, 12 Nov 2016 11:20:47 +0200
+Subject: [PATCH] Fix the --add-file option.
+
+* src/common.h (name_more_files): New proto.
+(files_from_option): Remove.
+* src/names.c (name_more_files): New file.
+(names_options): Fix declaration of the
+add-file option.
+(names_parse_opt): Handle --add-file.
+* src/tar.c (struct tar_args): Remove the input_files member.
+Change all uses: use name_more_files() instead.
+* tests/Makefile.am: Add new test.
+* tests/add-file.at: New testcase.
+* tests/testsuite.at: Add new test.
+---
+ src/common.h | 4 +---
+ src/names.c | 24 ++++++++++++-------
+ src/tar.c | 16 ++++---------
+ tests/Makefile.am | 3 ++-
+ tests/add-file.at | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/testsuite.at | 1 +
+ 6 files changed, 92 insertions(+), 23 deletions(-)
+ create mode 100644 tests/add-file.at
+
+diff --git a/src/common.h b/src/common.h
+index 50c34cc7c09b..6fdb6225f18b 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -414,9 +414,6 @@ GLOBAL bool show_transformed_names_option;
+ timestamps from archives with an unusual member order. It is automatically
+ set for incremental archives. */
+ GLOBAL bool delay_directory_restore_option;
+-
+-/* When set, tar will not refuse to create empty archives */
+-GLOBAL bool files_from_option;
+ \f
+ /* Declarations for each module. */
+
+@@ -738,6 +735,7 @@ void uid_to_uname (uid_t uid, char **uname);
+ int uname_to_uid (char const *uname, uid_t *puid);
+
+ void name_init (void);
++bool name_more_files (void);
+ void name_add_name (const char *name);
+ void name_term (void);
+ const char *name_next (int change_dirs);
+diff --git a/src/names.c b/src/names.c
+index 219aa77a4356..1a9465667cd3 100644
+--- a/src/names.c
++++ b/src/names.c
+@@ -32,7 +32,8 @@ static void name_add_file (const char *name);
+ \f
+ enum
+ {
+- EXCLUDE_BACKUPS_OPTION = 256,
++ ADD_FILE_OPTION = 256,
++ EXCLUDE_BACKUPS_OPTION,
+ EXCLUDE_CACHES_OPTION,
+ EXCLUDE_CACHES_UNDER_OPTION,
+ EXCLUDE_CACHES_ALL_OPTION,
+@@ -67,7 +68,7 @@ static struct argp_option names_options[] = {
+ {NULL, 0, NULL, 0,
+ N_("Local file name selection:"), GRID },
+
+- {"add-file", ARGP_KEY_ARG, N_("FILE"), 0,
++ {"add-file", ADD_FILE_OPTION, N_("FILE"), 0,
+ N_("add given FILE to the archive (useful if its name starts with a dash)"), GRID+1 },
+ {"directory", 'C', N_("DIR"), 0,
+ N_("change to directory DIR"), GRID+1 },
+@@ -190,10 +191,10 @@ names_parse_opt (int key, char *arg, struct argp_state *state)
+
+ case 'T':
+ name_add_file (arg);
+- /* Indicate we've been given -T option. This is for backward
+- compatibility only, so that `tar cfT archive /dev/null will
+- succeed */
+- files_from_option = true;
++ break;
++
++ case ADD_FILE_OPTION:
++ name_add_name (arg);
+ break;
+
+ default:
+@@ -651,8 +652,8 @@ struct name_elt /* A name_array element. */
+ } v;
+ };
+
+-static struct name_elt *name_head; /* store a list of names */
+-size_t name_count; /* how many of the entries are names? */
++static struct name_elt *name_head;/* store a list of names */
++size_t name_count; /* how many of the entries are file names? */
+
+ static struct name_elt *
+ name_elt_alloc (void)
+@@ -784,6 +785,12 @@ name_list_advance (void)
+ }
+ }
+
++/* Return true if there are names or options in the list */
++bool
++name_more_files (void)
++{
++ return name_count > 0;
++}
+
+ /* Add to name_array the file NAME with fnmatch options MATFLAGS */
+ void
+@@ -823,6 +830,7 @@ name_add_file (const char *name)
+ ep->v.file.name = name;
+ ep->v.file.line = 0;
+ ep->v.file.fp = NULL;
++ name_count++;
+ }
+ \f
+ /* Names from external name file. */
+diff --git a/src/tar.c b/src/tar.c
+index 35bac38c2793..a361fc2c607f 100644
+--- a/src/tar.c
++++ b/src/tar.c
+@@ -813,7 +813,6 @@ struct tar_args /* Variables used during option parsing */
+ bool pax_option; /* True if --pax-option was given */
+ char const *backup_suffix_string; /* --suffix option argument */
+ char const *version_control_string; /* --backup option argument */
+- bool input_files; /* True if some input files where given */
+ int compress_autodetect; /* True if compression autodetection should
+ be attempted when creating archives */
+ };
+@@ -1322,7 +1321,6 @@ parse_opt (int key, char *arg, struct argp_state *state)
+ case ARGP_KEY_ARG:
+ /* File name or non-parsed option, because of ARGP_IN_ORDER */
+ name_add_name (arg);
+- args->input_files = true;
+ break;
+
+ case 'A':
+@@ -2179,7 +2177,7 @@ more_options (int argc, char **argv, struct option_locus *loc)
+ args.loc = loc;
+ if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER|ARGP_NO_EXIT, &idx, &args))
+ abort (); /* shouldn't happen */
+- if (loc->source == OPTS_ENVIRON && args.input_files)
++ if (loc->source == OPTS_ENVIRON && name_more_files ())
+ USAGE_ERROR ((0, 0, _("non-option arguments in %s"), loc->name));
+ }
+
+@@ -2221,7 +2219,6 @@ decode_options (int argc, char **argv)
+ args.pax_option = false;
+ args.backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
+ args.version_control_string = 0;
+- args.input_files = false;
+ args.compress_autodetect = false;
+
+ subcommand_option = UNKNOWN_SUBCOMMAND;
+@@ -2340,10 +2337,7 @@ decode_options (int argc, char **argv)
+
+ /* Handle operands after any "--" argument. */
+ for (; idx < argc; idx++)
+- {
+- name_add_name (argv[idx]);
+- args.input_files = true;
+- }
++ name_add_name (argv[idx]);
+
+ /* Derive option values and check option consistency. */
+
+@@ -2365,7 +2359,7 @@ decode_options (int argc, char **argv)
+
+ if (occurrence_option)
+ {
+- if (!args.input_files)
++ if (!name_more_files ())
+ USAGE_ERROR ((0, 0,
+ _("--occurrence is meaningless without a file list")));
+ if (!IS_SUBCOMMAND_CLASS (SUBCL_OCCUR))
+@@ -2569,7 +2563,7 @@ decode_options (int argc, char **argv)
+ {
+ /* --test-label is silent if the user has specified the label name to
+ compare against. */
+- if (!args.input_files)
++ if (!name_more_files ())
+ verbose_option++;
+ }
+ else if (utc_option)
+@@ -2598,7 +2592,7 @@ decode_options (int argc, char **argv)
+ switch (subcommand_option)
+ {
+ case CREATE_SUBCOMMAND:
+- if (!args.input_files && !files_from_option)
++ if (!name_more_files ())
+ USAGE_ERROR ((0, 0,
+ _("Cowardly refusing to create an empty archive")));
+ if (args.compress_autodetect && archive_names
diff --git a/app-arch/tar/tar-1.29-r3.ebuild b/app-arch/tar/tar-1.29-r3.ebuild
new file mode 100644
index 00000000..857621b
--- /dev/null
+++ b/app-arch/tar/tar-1.29-r3.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="Use this to make tarballs :)"
+HOMEPAGE="https://www.gnu.org/software/tar/"
+SRC_URI="mirror://gnu/tar/${P}.tar.bz2
+ mirror://gnu-alpha/tar/${P}.tar.bz2"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr"
+
+RDEPEND="acl? ( virtual/acl )
+ selinux? ( sys-libs/libselinux )"
+DEPEND="${RDEPEND}
+ nls? ( >=sys-devel/gettext-0.10.35 )
+ xattr? ( elibc_glibc? ( sys-apps/attr ) )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-extract-pathname-bypass-upstream.patch" #598334
+ "${FILESDIR}/${P}-add-files.patch"
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ epatch_user
+
+ if ! use userland_GNU ; then
+ sed -i \
+ -e 's:/backup\.sh:/gbackup.sh:' \
+ scripts/{backup,dump-remind,restore}.in \
+ || die "sed non-GNU"
+ fi
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ FORCE_UNSAFE_CONFIGURE=1 \
+ econf \
+ --enable-backup-scripts \
+ --bindir="${EPREFIX}"/bin \
+ --libexecdir="${EPREFIX}"/usr/sbin \
+ $(usex userland_GNU "" "--program-prefix=g") \
+ $(use_with acl posix-acls) \
+ $(use_enable nls) \
+ $(use_with selinux) \
+ $(use_with xattr xattrs)
+}
+
+src_install() {
+ default
+
+ local p=$(usex userland_GNU "" "g")
+ if [[ -z ${p} ]] ; then
+ # a nasty yet required piece of baggage
+ exeinto /etc
+ doexe "${FILESDIR}"/rmt
+ fi
+
+ # autoconf looks for gtar before tar (in configure scripts), hence
+ # in Prefix it is important that it is there, otherwise, a gtar from
+ # the host system (FreeBSD, Solaris, Darwin) will be found instead
+ # of the Prefix provided (GNU) tar
+ if use prefix ; then
+ dosym tar /bin/gtar
+ fi
+
+ mv "${ED}"/usr/sbin/${p}backup{,-tar} || die
+ mv "${ED}"/usr/sbin/${p}restore{,-tar} || die
+
+ if use minimal ; then
+ find "${ED}"/etc "${ED}"/*bin/ "${ED}"/usr/*bin/ \
+ -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
+ -delete || die
+ fi
+}
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2018-06-19 12:27 Thomas Deutschmann
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Deutschmann @ 2018-06-19 12:27 UTC (permalink / raw
To: gentoo-commits
commit: e13b5d814ae6368708c659ae6ff578a51e479ca4
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 19 12:27:22 2018 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Jun 19 12:27:37 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e13b5d81
app-arch/tar: fix race in dirrem01 and dirrem02 test
Package-Manager: Portage-2.3.40, Repoman-2.3.9
.../tar/files/tar-1.30-fix-test-117-and-118.patch | 89 ++++++++++++++++++++++
app-arch/tar/tar-1.30.ebuild | 5 +-
2 files changed, 93 insertions(+), 1 deletion(-)
diff --git a/app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch b/app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch
new file mode 100644
index 00000000000..2f75da6cd24
--- /dev/null
+++ b/app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch
@@ -0,0 +1,89 @@
+tests: fix race in dirrem01 and dirrem02
+
+Previously the '--checkpoint-action=echo' was triggered after
+'--checkpoint-action=sleep=1' - so the order of events *usually*
+was (for --format='gnu'):
+
+ ...
+ 1. checkpoint handler before write of 'dir/sub' member
+ 2. one-second delay
+ 3. stderr write: 'tar: Write checkpoint 3'
+ 4. write the member 'dir/sub' into the archive
+ 5. check that the member's ctime has not been changed
+ 6. genfile's detecting 'Write checkpoint', doing unlink
+ ...
+
+But sometimes, the genfile was fast enough to win the race and
+unlinked the directory before the member was written into the
+archive (IOW, the order was 1-2-3-6-4-5). This led to the
+occasional warning 'tar: dir/sub: file changed as we read it'.
+
+Swap the order of 'sleep=1' and 'echo' actions so the genfile
+utility has (hopefully) enough time to do the unlink before
+writing the file into the archive (enforce 1-2-3-6-4-5 order).
+
+* tests/dirrem01.at: Swap 'sleep=1' and 'echo' actions.
+* tests/dirrem02.at: Likewise.
+
+Origin: https://lists.gnu.org/archive/html/bug-tar/2018-01/msg00000.html
+---
+ tests/dirrem01.at | 5 +++--
+ tests/dirrem02.at | 7 ++++---
+ 2 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/tests/dirrem01.at b/tests/dirrem01.at
+index 40344dc..dabc206 100644
+--- a/tests/dirrem01.at
++++ b/tests/dirrem01.at
+@@ -47,14 +47,15 @@ gnu) CPT=3;;
+ esac
+
+ genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
+- tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+- --checkpoint-action='echo' -c -f archive.tar \
++ tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='echo' \
++ --checkpoint-action='sleep=1' -c -f archive.tar \
+ --listed-incremental db -v dir >/dev/null
+ ],
+ [1],
+ [ignore],
+ [tar: dir: Directory is new
+ tar: dir/sub: Directory is new
++tar: dir/sub: file changed as we read it
+ tar: dir/sub: File removed before we read it
+ ],[],[],[gnu,posix])
+
+diff --git a/tests/dirrem02.at b/tests/dirrem02.at
+index e1cf9ef..924454f 100644
+--- a/tests/dirrem02.at
++++ b/tests/dirrem02.at
+@@ -20,7 +20,7 @@
+
+ # Description:
+ #
+-# When an explicitley named directory disappears during creation
++# When an explicitly named directory disappears during creation
+ # of incremental dump, tar should still exit with TAREXIT_FAILURE (2).
+ #
+ # For further details see dirrem01.at
+@@ -44,14 +44,15 @@ gnu) CPT=3;;
+ esac
+
+ genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
+- tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+- --checkpoint-action='echo' -c -f archive.tar \
++ tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='echo' \
++ --checkpoint-action='sleep=1' -c -f archive.tar \
+ --listed-incremental db -v dir dir/sub >/dev/null
+ ],
+ [2],
+ [ignore],
+ [tar: dir: Directory is new
+ tar: dir/sub: Directory is new
++tar: dir/sub: file changed as we read it
+ tar: dir/sub: Cannot open: No such file or directory
+ tar: Exiting with failure status due to previous errors
+ ],[],[],[gnu,posix])
+--
+cgit v1.0-41-gc330
+
diff --git a/app-arch/tar/tar-1.30.ebuild b/app-arch/tar/tar-1.30.ebuild
index bf37c56a075..d777e30c76c 100644
--- a/app-arch/tar/tar-1.30.ebuild
+++ b/app-arch/tar/tar-1.30.ebuild
@@ -21,7 +21,10 @@ DEPEND="${RDEPEND}
nls? ( >=sys-devel/gettext-0.10.35 )
xattr? ( elibc_glibc? ( sys-apps/attr ) )"
-PATCHES=( "${FILESDIR}"/${P}-fix-test-92.patch )
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-test-92.patch
+ "${FILESDIR}"/${P}-fix-test-117-and-118.patch
+)
src_prepare() {
default
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2019-01-01 14:38 Lars Wendler
0 siblings, 0 replies; 7+ messages in thread
From: Lars Wendler @ 2019-01-01 14:38 UTC (permalink / raw
To: gentoo-commits
commit: a3a8c469b2bb96d3ee3a4fa99bb5b30aa38c7589
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 1 14:36:33 2019 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Tue Jan 1 14:38:01 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3a8c469
app-arch/tar: Revbump to fix CVE-2018-20482
Patch added without new test suite because that would require
an eautoreconf run.
Bug: https://bugs.gentoo.org/674210
Package-Manager: Portage-2.3.53, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
app-arch/tar/files/tar-1.30-CVE-2018-20482.patch | 146 +++++++++++++++++++++++
app-arch/tar/tar-1.30-r1.ebuild | 82 +++++++++++++
2 files changed, 228 insertions(+)
diff --git a/app-arch/tar/files/tar-1.30-CVE-2018-20482.patch b/app-arch/tar/files/tar-1.30-CVE-2018-20482.patch
new file mode 100644
index 00000000000..8abab5df6c0
--- /dev/null
+++ b/app-arch/tar/files/tar-1.30-CVE-2018-20482.patch
@@ -0,0 +1,146 @@
+From c15c42ccd1e2377945fd0414eca1a49294bff454 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Thu, 27 Dec 2018 17:48:57 +0200
+Subject: Fix CVE-2018-20482
+
+* src/sparse.c (sparse_dump_region): Handle short read condition.
+(sparse_extract_region,check_data_region): Fix dumped_size calculation.
+Handle short read condition.
+(pax_decode_header): Fix dumped_size calculation.
+
+diff --git a/src/sparse.c b/src/sparse.c
+index d41c0ea..f611200 100644
+--- a/src/sparse.c
++++ b/src/sparse.c
+@@ -1,6 +1,6 @@
+ /* Functions for dealing with sparse files
+
+- Copyright 2003-2007, 2010, 2013-2017 Free Software Foundation, Inc.
++ Copyright 2003-2007, 2010, 2013-2018 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+@@ -427,6 +427,30 @@ sparse_dump_region (struct tar_sparse_file *file, size_t i)
+ bufsize);
+ return false;
+ }
++ else if (bytes_read == 0)
++ {
++ char buf[UINTMAX_STRSIZE_BOUND];
++ struct stat st;
++ size_t n;
++ if (fstat (file->fd, &st) == 0)
++ n = file->stat_info->stat.st_size - st.st_size;
++ else
++ n = file->stat_info->stat.st_size
++ - (file->stat_info->sparse_map[i].offset
++ + file->stat_info->sparse_map[i].numbytes
++ - bytes_left);
++
++ WARNOPT (WARN_FILE_SHRANK,
++ (0, 0,
++ ngettext ("%s: File shrank by %s byte; padding with zeros",
++ "%s: File shrank by %s bytes; padding with zeros",
++ n),
++ quotearg_colon (file->stat_info->orig_file_name),
++ STRINGIFY_BIGINT (n, buf)));
++ if (! ignore_failed_read_option)
++ set_exit_status (TAREXIT_DIFFERS);
++ return false;
++ }
+
+ memset (blk->buffer + bytes_read, 0, BLOCKSIZE - bytes_read);
+ bytes_left -= bytes_read;
+@@ -464,9 +488,9 @@ sparse_extract_region (struct tar_sparse_file *file, size_t i)
+ return false;
+ }
+ set_next_block_after (blk);
++ file->dumped_size += BLOCKSIZE;
+ count = blocking_write (file->fd, blk->buffer, wrbytes);
+ write_size -= count;
+- file->dumped_size += count;
+ mv_size_left (file->stat_info->archive_file_size - file->dumped_size);
+ file->offset += count;
+ if (count != wrbytes)
+@@ -598,6 +622,12 @@ check_sparse_region (struct tar_sparse_file *file, off_t beg, off_t end)
+ rdsize);
+ return false;
+ }
++ else if (bytes_read == 0)
++ {
++ report_difference (file->stat_info, _("Size differs"));
++ return false;
++ }
++
+ if (!zero_block_p (diff_buffer, bytes_read))
+ {
+ char begbuf[INT_BUFSIZE_BOUND (off_t)];
+@@ -609,6 +639,7 @@ check_sparse_region (struct tar_sparse_file *file, off_t beg, off_t end)
+
+ beg += bytes_read;
+ }
++
+ return true;
+ }
+
+@@ -635,6 +666,7 @@ check_data_region (struct tar_sparse_file *file, size_t i)
+ return false;
+ }
+ set_next_block_after (blk);
++ file->dumped_size += BLOCKSIZE;
+ bytes_read = safe_read (file->fd, diff_buffer, rdsize);
+ if (bytes_read == SAFE_READ_ERROR)
+ {
+@@ -645,7 +677,11 @@ check_data_region (struct tar_sparse_file *file, size_t i)
+ rdsize);
+ return false;
+ }
+- file->dumped_size += bytes_read;
++ else if (bytes_read == 0)
++ {
++ report_difference (¤t_stat_info, _("Size differs"));
++ return false;
++ }
+ size_left -= bytes_read;
+ mv_size_left (file->stat_info->archive_file_size - file->dumped_size);
+ if (memcmp (blk->buffer, diff_buffer, rdsize))
+@@ -1213,7 +1249,8 @@ pax_decode_header (struct tar_sparse_file *file)
+ union block *blk;
+ char *p;
+ size_t i;
+-
++ off_t start;
++
+ #define COPY_BUF(b,buf,src) do \
+ { \
+ char *endp = b->buffer + BLOCKSIZE; \
+@@ -1229,7 +1266,6 @@ pax_decode_header (struct tar_sparse_file *file)
+ if (src == endp) \
+ { \
+ set_next_block_after (b); \
+- file->dumped_size += BLOCKSIZE; \
+ b = find_next_block (); \
+ src = b->buffer; \
+ endp = b->buffer + BLOCKSIZE; \
+@@ -1240,8 +1276,8 @@ pax_decode_header (struct tar_sparse_file *file)
+ dst[-1] = 0; \
+ } while (0)
+
++ start = current_block_ordinal ();
+ set_next_block_after (current_header);
+- file->dumped_size += BLOCKSIZE;
+ blk = find_next_block ();
+ p = blk->buffer;
+ COPY_BUF (blk,nbuf,p);
+@@ -1278,6 +1314,8 @@ pax_decode_header (struct tar_sparse_file *file)
+ sparse_add_map (file->stat_info, &sp);
+ }
+ set_next_block_after (blk);
++
++ file->dumped_size += BLOCKSIZE * (current_block_ordinal () - start);
+ }
+
+ return true;
+--
+cgit v1.0-41-gc330
+
diff --git a/app-arch/tar/tar-1.30-r1.ebuild b/app-arch/tar/tar-1.30-r1.ebuild
new file mode 100644
index 00000000000..731db2be72c
--- /dev/null
+++ b/app-arch/tar/tar-1.30-r1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic
+
+DESCRIPTION="Use this to make tarballs :)"
+HOMEPAGE="https://www.gnu.org/software/tar/"
+SRC_URI="mirror://gnu/tar/${P}.tar.bz2
+ mirror://gnu-alpha/tar/${P}.tar.bz2"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr"
+
+RDEPEND="acl? ( virtual/acl )
+ selinux? ( sys-libs/libselinux )"
+DEPEND="${RDEPEND}
+ nls? ( >=sys-devel/gettext-0.10.35 )
+ xattr? ( elibc_glibc? ( sys-apps/attr ) )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-test-92.patch
+ "${FILESDIR}"/${P}-fix-test-117-and-118.patch
+ "${FILESDIR}"/${P}-CVE-2018-20482.patch #674210
+)
+
+src_prepare() {
+ default
+
+ if ! use userland_GNU ; then
+ sed -i \
+ -e 's:/backup\.sh:/gbackup.sh:' \
+ scripts/{backup,dump-remind,restore}.in \
+ || die "sed non-GNU"
+ fi
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ local myeconfargs=(
+ --bindir="${EPREFIX%/}"/bin
+ --enable-backup-scripts
+ --libexecdir="${EPREFIX%/}"/usr/sbin
+ $(usex userland_GNU "" "--program-prefix=g")
+ $(use_with acl posix-acls)
+ $(use_enable nls)
+ $(use_with selinux)
+ $(use_with xattr xattrs)
+ )
+ FORCE_UNSAFE_CONFIGURE=1 econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ local p=$(usex userland_GNU "" "g")
+ if [[ -z ${p} ]] ; then
+ # a nasty yet required piece of baggage
+ exeinto /etc
+ doexe "${FILESDIR}"/rmt
+ fi
+
+ # autoconf looks for gtar before tar (in configure scripts), hence
+ # in Prefix it is important that it is there, otherwise, a gtar from
+ # the host system (FreeBSD, Solaris, Darwin) will be found instead
+ # of the Prefix provided (GNU) tar
+ if use prefix ; then
+ dosym tar /bin/gtar
+ fi
+
+ mv "${ED%/}"/usr/sbin/${p}backup{,-tar} || die
+ mv "${ED%/}"/usr/sbin/${p}restore{,-tar} || die
+
+ if use minimal ; then
+ find "${ED%/}"/etc "${ED%/}"/*bin/ "${ED%/}"/usr/*bin/ \
+ -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
+ -delete || die
+ fi
+}
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2019-01-11 1:34 Thomas Deutschmann
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Deutschmann @ 2019-01-11 1:34 UTC (permalink / raw
To: gentoo-commits
commit: ef8f8b69456c968e4d7a467fa708419f55891f0b
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 11 01:34:21 2019 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Jan 11 01:34:21 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef8f8b69
app-arch/tar: remove misplaced call to abort()
Closes: https://bugs.gentoo.org/675140
Package-Manager: Portage-2.3.54, Repoman-2.3.12
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
.../tar-1.31-remove-erroneous-abort-call.patch | 33 ++++++++++++++++++++++
.../tar/{tar-1.31.ebuild => tar-1.31-r1.ebuild} | 2 ++
2 files changed, 35 insertions(+)
diff --git a/app-arch/tar/files/tar-1.31-remove-erroneous-abort-call.patch b/app-arch/tar/files/tar-1.31-remove-erroneous-abort-call.patch
new file mode 100644
index 00000000000..9e255df5760
--- /dev/null
+++ b/app-arch/tar/files/tar-1.31-remove-erroneous-abort-call.patch
@@ -0,0 +1,33 @@
+From 85c005ee1345c342f707f3c55317daf6cb050603 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org.ua>
+Date: Thu, 10 Jan 2019 18:18:49 +0200
+Subject: Remove erroneous abort() call
+
+The call was introduced by commit ccef8581. It caused tar to abort
+on perfectly normal operations, like untarring archives containing
+./ with the -U option,
+
+See http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00019.html
+for details.
+
+* src/extract.c (maybe_recoverable): Remove misplaced call to abort().
+---
+ src/extract.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/extract.c b/src/extract.c
+index 090b866..8276f8f 100644
+--- a/src/extract.c
++++ b/src/extract.c
+@@ -787,7 +787,7 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
+ case UNLINK_FIRST_OLD_FILES:
+ break;
+ }
+- abort (); /* notreached */
++ FALLTHROUGH;
+
+ case ENOENT:
+ /* Attempt creating missing intermediate directories. */
+--
+cgit v1.0-41-gc330
+
diff --git a/app-arch/tar/tar-1.31.ebuild b/app-arch/tar/tar-1.31-r1.ebuild
similarity index 97%
rename from app-arch/tar/tar-1.31.ebuild
rename to app-arch/tar/tar-1.31-r1.ebuild
index 2e7d5290465..6a36e7eb01e 100644
--- a/app-arch/tar/tar-1.31.ebuild
+++ b/app-arch/tar/tar-1.31-r1.ebuild
@@ -24,6 +24,8 @@ DEPEND="${RDEPEND}
static? ( ${LIB_DEPEND} )
xattr? ( elibc_glibc? ( sys-apps/attr ) )"
+PATCHES=( "${FILESDIR}"/${P}-remove-erroneous-abort-call.patch )
+
src_prepare() {
default
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2019-02-23 19:15 Lars Wendler
0 siblings, 0 replies; 7+ messages in thread
From: Lars Wendler @ 2019-02-23 19:15 UTC (permalink / raw
To: gentoo-commits
commit: b361e7a6af7e5b907d2a7699c6c2a6592aa451c0
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 23 19:11:49 2019 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Sat Feb 23 19:15:14 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b361e7a6
app-arch/tar: Removed old.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
app-arch/tar/files/tar-1.30-CVE-2018-20482.patch | 146 -----------------------
app-arch/tar/tar-1.30-r1.ebuild | 82 -------------
2 files changed, 228 deletions(-)
diff --git a/app-arch/tar/files/tar-1.30-CVE-2018-20482.patch b/app-arch/tar/files/tar-1.30-CVE-2018-20482.patch
deleted file mode 100644
index 8abab5df6c0..00000000000
--- a/app-arch/tar/files/tar-1.30-CVE-2018-20482.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From c15c42ccd1e2377945fd0414eca1a49294bff454 Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray@gnu.org>
-Date: Thu, 27 Dec 2018 17:48:57 +0200
-Subject: Fix CVE-2018-20482
-
-* src/sparse.c (sparse_dump_region): Handle short read condition.
-(sparse_extract_region,check_data_region): Fix dumped_size calculation.
-Handle short read condition.
-(pax_decode_header): Fix dumped_size calculation.
-
-diff --git a/src/sparse.c b/src/sparse.c
-index d41c0ea..f611200 100644
---- a/src/sparse.c
-+++ b/src/sparse.c
-@@ -1,6 +1,6 @@
- /* Functions for dealing with sparse files
-
-- Copyright 2003-2007, 2010, 2013-2017 Free Software Foundation, Inc.
-+ Copyright 2003-2007, 2010, 2013-2018 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
-@@ -427,6 +427,30 @@ sparse_dump_region (struct tar_sparse_file *file, size_t i)
- bufsize);
- return false;
- }
-+ else if (bytes_read == 0)
-+ {
-+ char buf[UINTMAX_STRSIZE_BOUND];
-+ struct stat st;
-+ size_t n;
-+ if (fstat (file->fd, &st) == 0)
-+ n = file->stat_info->stat.st_size - st.st_size;
-+ else
-+ n = file->stat_info->stat.st_size
-+ - (file->stat_info->sparse_map[i].offset
-+ + file->stat_info->sparse_map[i].numbytes
-+ - bytes_left);
-+
-+ WARNOPT (WARN_FILE_SHRANK,
-+ (0, 0,
-+ ngettext ("%s: File shrank by %s byte; padding with zeros",
-+ "%s: File shrank by %s bytes; padding with zeros",
-+ n),
-+ quotearg_colon (file->stat_info->orig_file_name),
-+ STRINGIFY_BIGINT (n, buf)));
-+ if (! ignore_failed_read_option)
-+ set_exit_status (TAREXIT_DIFFERS);
-+ return false;
-+ }
-
- memset (blk->buffer + bytes_read, 0, BLOCKSIZE - bytes_read);
- bytes_left -= bytes_read;
-@@ -464,9 +488,9 @@ sparse_extract_region (struct tar_sparse_file *file, size_t i)
- return false;
- }
- set_next_block_after (blk);
-+ file->dumped_size += BLOCKSIZE;
- count = blocking_write (file->fd, blk->buffer, wrbytes);
- write_size -= count;
-- file->dumped_size += count;
- mv_size_left (file->stat_info->archive_file_size - file->dumped_size);
- file->offset += count;
- if (count != wrbytes)
-@@ -598,6 +622,12 @@ check_sparse_region (struct tar_sparse_file *file, off_t beg, off_t end)
- rdsize);
- return false;
- }
-+ else if (bytes_read == 0)
-+ {
-+ report_difference (file->stat_info, _("Size differs"));
-+ return false;
-+ }
-+
- if (!zero_block_p (diff_buffer, bytes_read))
- {
- char begbuf[INT_BUFSIZE_BOUND (off_t)];
-@@ -609,6 +639,7 @@ check_sparse_region (struct tar_sparse_file *file, off_t beg, off_t end)
-
- beg += bytes_read;
- }
-+
- return true;
- }
-
-@@ -635,6 +666,7 @@ check_data_region (struct tar_sparse_file *file, size_t i)
- return false;
- }
- set_next_block_after (blk);
-+ file->dumped_size += BLOCKSIZE;
- bytes_read = safe_read (file->fd, diff_buffer, rdsize);
- if (bytes_read == SAFE_READ_ERROR)
- {
-@@ -645,7 +677,11 @@ check_data_region (struct tar_sparse_file *file, size_t i)
- rdsize);
- return false;
- }
-- file->dumped_size += bytes_read;
-+ else if (bytes_read == 0)
-+ {
-+ report_difference (¤t_stat_info, _("Size differs"));
-+ return false;
-+ }
- size_left -= bytes_read;
- mv_size_left (file->stat_info->archive_file_size - file->dumped_size);
- if (memcmp (blk->buffer, diff_buffer, rdsize))
-@@ -1213,7 +1249,8 @@ pax_decode_header (struct tar_sparse_file *file)
- union block *blk;
- char *p;
- size_t i;
--
-+ off_t start;
-+
- #define COPY_BUF(b,buf,src) do \
- { \
- char *endp = b->buffer + BLOCKSIZE; \
-@@ -1229,7 +1266,6 @@ pax_decode_header (struct tar_sparse_file *file)
- if (src == endp) \
- { \
- set_next_block_after (b); \
-- file->dumped_size += BLOCKSIZE; \
- b = find_next_block (); \
- src = b->buffer; \
- endp = b->buffer + BLOCKSIZE; \
-@@ -1240,8 +1276,8 @@ pax_decode_header (struct tar_sparse_file *file)
- dst[-1] = 0; \
- } while (0)
-
-+ start = current_block_ordinal ();
- set_next_block_after (current_header);
-- file->dumped_size += BLOCKSIZE;
- blk = find_next_block ();
- p = blk->buffer;
- COPY_BUF (blk,nbuf,p);
-@@ -1278,6 +1314,8 @@ pax_decode_header (struct tar_sparse_file *file)
- sparse_add_map (file->stat_info, &sp);
- }
- set_next_block_after (blk);
-+
-+ file->dumped_size += BLOCKSIZE * (current_block_ordinal () - start);
- }
-
- return true;
---
-cgit v1.0-41-gc330
-
diff --git a/app-arch/tar/tar-1.30-r1.ebuild b/app-arch/tar/tar-1.30-r1.ebuild
deleted file mode 100644
index 731db2be72c..00000000000
--- a/app-arch/tar/tar-1.30-r1.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic
-
-DESCRIPTION="Use this to make tarballs :)"
-HOMEPAGE="https://www.gnu.org/software/tar/"
-SRC_URI="mirror://gnu/tar/${P}.tar.bz2
- mirror://gnu-alpha/tar/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr"
-
-RDEPEND="acl? ( virtual/acl )
- selinux? ( sys-libs/libselinux )"
-DEPEND="${RDEPEND}
- nls? ( >=sys-devel/gettext-0.10.35 )
- xattr? ( elibc_glibc? ( sys-apps/attr ) )"
-
-PATCHES=(
- "${FILESDIR}"/${P}-fix-test-92.patch
- "${FILESDIR}"/${P}-fix-test-117-and-118.patch
- "${FILESDIR}"/${P}-CVE-2018-20482.patch #674210
-)
-
-src_prepare() {
- default
-
- if ! use userland_GNU ; then
- sed -i \
- -e 's:/backup\.sh:/gbackup.sh:' \
- scripts/{backup,dump-remind,restore}.in \
- || die "sed non-GNU"
- fi
-}
-
-src_configure() {
- use static && append-ldflags -static
- local myeconfargs=(
- --bindir="${EPREFIX%/}"/bin
- --enable-backup-scripts
- --libexecdir="${EPREFIX%/}"/usr/sbin
- $(usex userland_GNU "" "--program-prefix=g")
- $(use_with acl posix-acls)
- $(use_enable nls)
- $(use_with selinux)
- $(use_with xattr xattrs)
- )
- FORCE_UNSAFE_CONFIGURE=1 econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
-
- local p=$(usex userland_GNU "" "g")
- if [[ -z ${p} ]] ; then
- # a nasty yet required piece of baggage
- exeinto /etc
- doexe "${FILESDIR}"/rmt
- fi
-
- # autoconf looks for gtar before tar (in configure scripts), hence
- # in Prefix it is important that it is there, otherwise, a gtar from
- # the host system (FreeBSD, Solaris, Darwin) will be found instead
- # of the Prefix provided (GNU) tar
- if use prefix ; then
- dosym tar /bin/gtar
- fi
-
- mv "${ED%/}"/usr/sbin/${p}backup{,-tar} || die
- mv "${ED%/}"/usr/sbin/${p}restore{,-tar} || die
-
- if use minimal ; then
- find "${ED%/}"/etc "${ED%/}"/*bin/ "${ED%/}"/usr/*bin/ \
- -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
- -delete || die
- fi
-}
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/
@ 2020-12-23 8:12 Fabian Groffen
0 siblings, 0 replies; 7+ messages in thread
From: Fabian Groffen @ 2020-12-23 8:12 UTC (permalink / raw
To: gentoo-commits
commit: fa9750b4c24e402475d4edaa1b2ef34f17d945c3
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 23 08:11:21 2020 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Wed Dec 23 08:12:14 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa9750b4
app-arch/tar: add patch for macOS Big Sur 11.1
Bug: https://bugs.gentoo.org/761322
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
| 53 ++++++++++++++++++++++
app-arch/tar/tar-1.32.90.ebuild | 4 ++
app-arch/tar/tar-1.32.ebuild | 3 ++
3 files changed, 60 insertions(+)
--git a/app-arch/tar/files/tar-1.32-check-sys-ioctl-header-configure.patch b/app-arch/tar/files/tar-1.32-check-sys-ioctl-header-configure.patch
new file mode 100644
index 00000000000..c8aee2fcce8
--- /dev/null
+++ b/app-arch/tar/files/tar-1.32-check-sys-ioctl-header-configure.patch
@@ -0,0 +1,53 @@
+[buildsys] macOS Big Sur 11.1 doesn't have sys/ioctl.h
+
+Author: Alexei Colin
+Bug: https://bugs.gentoo.org/761322
+Bug: https://savannah.gnu.org/bugs/index.php?59755
+
+--- a/configure 2020-12-23 00:49:19.000000000 -0500
++++ b/configure 2020-12-23 00:49:52.000000000 -0500
+@@ -3422,6 +3422,7 @@
+ as_fn_append ac_header_list " sys/device.h"
+ as_fn_append ac_header_list " sys/gentape.h"
+ as_fn_append ac_header_list " sys/inet.h"
++as_fn_append ac_header_list " sys/ioctl.h"
+ as_fn_append ac_header_list " sys/io/trioctl.h"
+ as_fn_append ac_header_list " sys/mtio.h"
+ as_fn_append ac_header_list " sys/time.h"
+--- a/config.h.in 2019-02-23 07:56:20.000000000 -0500
++++ b/config.h.in 2020-12-23 01:04:49.000000000 -0500
+@@ -1480,6 +1480,9 @@
+ /* Define to 1 if you have the <sys/inttypes.h> header file. */
+ #undef HAVE_SYS_INTTYPES_H
+
++/* Define to 1 if you have the <sys/ioctl.h> header file. */
++#undef HAVE_SYS_IOCTL_H
++
+ /* Define to 1 if you have the <sys/io/trioctl.h> header file. */
+ #undef HAVE_SYS_IO_TRIOCTL_H
+
+--- a/lib/system-ioctl.h 2020-12-22 20:57:00.000000000 -0500
++++ b/lib/system-ioctl.h 2020-12-22 20:57:35.000000000 -0500
+@@ -41,8 +41,10 @@
+ # endif
+ # include <sys/tape.h>
+ # else
+-# if HAVE_SYS_MTIO_H
++# if HAVE_SYS_IOCTL_H
+ # include <sys/ioctl.h>
++# endif
++# if HAVE_SYS_MTIO_H
+ # if HAVE_SGTTY_H
+ # include <sgtty.h>
+ # endif
+--- a/src/checkpoint.c 2020-12-22 20:56:48.000000000 -0500
++++ b/src/checkpoint.c 2020-12-22 20:58:29.000000000 -0500
+@@ -20,7 +20,7 @@
+ #include <system.h>
+ #include "common.h"
+ #include "wordsplit.h"
+-#include <sys/ioctl.h>
++#include <system-ioctl.h>
+ #include <termios.h>
+ #include "fprintftime.h"
+ #include <signal.h>
diff --git a/app-arch/tar/tar-1.32.90.ebuild b/app-arch/tar/tar-1.32.90.ebuild
index 87f3d927f1c..43686c3c26d 100644
--- a/app-arch/tar/tar-1.32.90.ebuild
+++ b/app-arch/tar/tar-1.32.90.ebuild
@@ -25,6 +25,10 @@ DEPEND="${RDEPEND}
xattr? ( elibc_glibc? ( sys-apps/attr ) )"
BDEPEND="nls? ( sys-devel/gettext )"
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.32-check-sys-ioctl-header-configure.patch
+)
+
src_prepare() {
default
diff --git a/app-arch/tar/tar-1.32.ebuild b/app-arch/tar/tar-1.32.ebuild
index 81267f7aa85..d1fd7864919 100644
--- a/app-arch/tar/tar-1.32.ebuild
+++ b/app-arch/tar/tar-1.32.ebuild
@@ -33,6 +33,9 @@ src_prepare() {
scripts/{backup,dump-remind,restore}.in \
|| die "sed non-GNU"
fi
+
+ [[ ${CHOST} == *darwin20* ]] && \
+ eapply "${FILESDIR}"/${PN}-1.32-check-sys-ioctl-header-configure.patch
}
src_configure() {
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-12-23 8:12 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-19 12:27 [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/ Thomas Deutschmann
-- strict thread matches above, loose matches on Subject: below --
2020-12-23 8:12 Fabian Groffen
2019-02-23 19:15 Lars Wendler
2019-01-11 1:34 Thomas Deutschmann
2019-01-01 14:38 Lars Wendler
2017-01-17 20:43 Mike Frysinger
2016-12-22 22:57 Lars Wendler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox