diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-05-21 06:18:35 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-05-21 06:18:35 +0000 |
commit | 7765f3d8490e79de5378d3366c70121516cbc2ea (patch) | |
tree | 0ba56ca31c3631d343cac02578cf39e7ef5326b3 /app-arch | |
parent | old (diff) | |
download | historical-7765f3d8490e79de5378d3366c70121516cbc2ea.tar.gz historical-7765f3d8490e79de5378d3366c70121516cbc2ea.tar.bz2 historical-7765f3d8490e79de5378d3366c70121516cbc2ea.zip |
Restore sigpipe patch for now #309001.
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'app-arch')
-rw-r--r-- | app-arch/tar/ChangeLog | 8 | ||||
-rw-r--r-- | app-arch/tar/Manifest | 15 | ||||
-rw-r--r-- | app-arch/tar/files/tar-1.23-revert-pipe.patch | 125 | ||||
-rw-r--r-- | app-arch/tar/tar-1.23-r2.ebuild | 70 |
4 files changed, 210 insertions, 8 deletions
diff --git a/app-arch/tar/ChangeLog b/app-arch/tar/ChangeLog index d69b2b97f7ad..988b14a9f0a6 100644 --- a/app-arch/tar/ChangeLog +++ b/app-arch/tar/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-arch/tar # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/tar/ChangeLog,v 1.145 2010/04/25 18:57:31 chainsaw Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/tar/ChangeLog,v 1.146 2010/05/21 06:18:35 vapier Exp $ + +*tar-1.23-r2 (21 May 2010) + + 21 May 2010; Mike Frysinger <vapier@gentoo.org> +tar-1.23-r2.ebuild, + +files/tar-1.23-revert-pipe.patch: + Restore sigpipe patch for now #309001. 25 Apr 2010; <chainsaw@gentoo.org> -tar-1.22.ebuild, -tar-1.23.ebuild: Pull revisions that cause havoc with GCC 4.5; these should never be diff --git a/app-arch/tar/Manifest b/app-arch/tar/Manifest index 184361522708..d26aac87032e 100644 --- a/app-arch/tar/Manifest +++ b/app-arch/tar/Manifest @@ -1,10 +1,11 @@ -----BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 +Hash: SHA256 AUX rmt 273 RMD160 18f5fac369cc3372af7bd83384bb437a67baaa44 SHA1 971081167d145e45288a173d74ca19aa24c0c05e SHA256 8de946561fc5fe3603627c78c9777dc1f7bad7926171822f3a25958a6cd3be55 AUX tar-1.21-revert-pipe.patch 3701 RMD160 c780024f65b271261f3d02cd9d12c08ccb65f183 SHA1 534b429111dccf6c58d3adafda529c70452ee39b SHA256 26eecb1da171102d3fdc64c66559a41615ca8247ffe3ab4d87b4040873ca8dfd AUX tar-1.21-testsuite.patch 3929 RMD160 b37d7633e31a5312b8cac4be90e3810d2ff493ba SHA1 c17909c43bd72c23752ca6b08fcd160c30b2e885 SHA256 21bc687af7390f91bed813858f7ba097a59303fa353e017c309024925caa0211 AUX tar-1.22-strncpy.patch 1249 RMD160 542af1ab41a609f1fa0189a83a6ca8c6363a94fe SHA1 af241c59cde042a78da2b0478822c099d96468e8 SHA256 a6f857c6747b1fb2a850ac7059e1c7b598bdb8641ac11a77f48e7d326a8a258f +AUX tar-1.23-revert-pipe.patch 3743 RMD160 0d1945ffd7ea720c563d46199d1d0b43aeaf8094 SHA1 2b4a8e52098a3d20466ce203fcbd9c3a0d5a7741 SHA256 b2beffd2f9d1fe0ca38e48e3e5cf9b0d2ba96229dd1fe81d9532e89ff0401d8f AUX tar-1.23-strncpy.patch 1249 RMD160 1e0f8fcc6152ec3cc4208a5efebdb4d97b928113 SHA1 9a4c94827703fae8572246c6380d55821db15196 SHA256 d88ba0b9d3b5dc9a8d6b70e4e71c376ff8dcd3412cb8ffceca3a722a17dbaa85 AUX tar.1 16821 RMD160 f58bc7cfeeee0cc811a6c2b5dd1dffe8b197231e SHA1 b354f0803c03cd59fe24f93d532f27f6f0136316 SHA256 f3558b444ab9427c06bc92838c29194051ed64edd0a909163cfa715cc7e6dcdd DIST tar-1.20.tar.bz2 1912591 RMD160 cb5a708e847489e5370b83a433f3e847ce359e56 SHA1 4d4cda2ce857b5ea77b39dc718260ab09c145335 SHA256 be8bf33afb5adc2377e45d94693ffd46b75f267f9b808df0c7006e51211f9deb @@ -14,13 +15,13 @@ DIST tar-1.23.tar.bz2 2189324 RMD160 e79062b7f69d80b734445306f69fb8b96801e909 SH EBUILD tar-1.20.ebuild 1654 RMD160 b7bb0fc7bdcfbf33d00fc8a337e8c15c9a801147 SHA1 d80c6ea3d8e71e2a3c8eed9f652ac88babd17dec SHA256 1ba966014de965854cbd2a98aebb899392e889512492a5b5507c57fe59dba496 EBUILD tar-1.21-r1.ebuild 1782 RMD160 b720a7bd217875e8c03b0b41b460a35a28bcf49c SHA1 489f1d5205b3587d44d8b44c628c7da5525b519b SHA256 c6cc9ba591d974f1911b67e058fdc39fb5b598f031d9e717363ed30cea96e7b9 EBUILD tar-1.22-r1.ebuild 1783 RMD160 63e68ca7d7e3e9ea66de96000eb87417f4c1f393 SHA1 79751f031b9dabc55ee749122d120085264b22f1 SHA256 253d53116b0a87c712aef285d55ee09dd9b68d213e73ecaaece9bdf597b9a500 -EBUILD tar-1.23-r1.ebuild 1718 RMD160 ff1571a774e125fcad74d5f1bad2e977f4786953 SHA1 ffc3192881ff573d35c3b581c8881764cf48d302 SHA256 ab5f9599221a0159706943f800b349827a478ddf52b69f8d68ff1188ffe1925c -MISC ChangeLog 21792 RMD160 9884fca97aa7a2fe3d73f89a4ab77c545251405b SHA1 73c0b1480f96523ac7c0f0cfa2e3963cb2a16200 SHA256 a36dfba8568d2a6bb159b705b7689de848cb3fb0834856ca8e2176685d42e68e +EBUILD tar-1.23-r2.ebuild 1769 RMD160 3245d66e8573dee6a2afc71ef6adbb69d2bc237c SHA1 28552b52ded95dbb84a61a318502066c6f522fdb SHA256 b7dc9e2e6729ba69b4b8f48a0f41ffab0831f7a662efce883ce69c558e5967e7 +MISC ChangeLog 21968 RMD160 debc95672b9671b6a6bb3fdcfc6a11d6d698c660 SHA1 6d0a0bb69e7a2744c023ac18962d1f7d42b2ac8d SHA256 f9eb444283e984ba5a3a0723b5c2aca8cb6f2e329ca65ddd80e5c1879ca76465 MISC metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 SHA1 9c213f5803676c56439df3716be07d6692588856 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.15 (GNU/Linux) +Version: GnuPG v2.0.14 (GNU/Linux) -iEYEARECAAYFAkvUkN4ACgkQp5vW4rUFj5rejwCePHf2/2R2imSD/Xqed2zJNu9g -EiMAoKDjuwUDAYxNSqXIb00T3d+Biwy+ -=JR73 +iF4EAREIAAYFAkv2JcgACgkQTwhj9JtAlp5JUQD/SzUeI3oxWvCpl/sDuVWX/Cch +wJlZgxjAH02I87REih8A/iFd3nZsG64TS7+8NaZojHHcX9F60L0z3N9sK+Fif2W8 +=v1le -----END PGP SIGNATURE----- diff --git a/app-arch/tar/files/tar-1.23-revert-pipe.patch b/app-arch/tar/files/tar-1.23-revert-pipe.patch new file mode 100644 index 000000000000..f10719626f6c --- /dev/null +++ b/app-arch/tar/files/tar-1.23-revert-pipe.patch @@ -0,0 +1,125 @@ +http://bugs.gentoo.org/252680 +http://bugs.gentoo.org/309001 +http://lists.gnu.org/archive/html/bug-tar/2008-12/msg00028.html + +revert this change: + +2008-11-25 Sergey Poznyakoff <gray@gnu.org.ua> + + Do not try to drain the input pipe before closing the + archive. + + * src/buffer.c (close_archive): Remove call to + sys_drain_input_pipe. Pass hit_eof as the second + argument to sys_wait_for_child. + * src/common.h (sys_drain_input_pipe): Remove + (sys_wait_for_child): Declare second argument. + * src/system.c (sys_drain_input_pipe): Remove. + (sys_wait_for_child): Take two arguments. The second one helps to + decide whether to tolerate child termination on SIGPIPE. + +diff --git a/src/buffer.c b/src/buffer.c +index 5f5457a..02a3e4c 100644 +--- a/src/buffer.c ++++ b/src/buffer.c +@@ -848,6 +848,8 @@ close_archive (void) + flush_archive (); + } + ++ sys_drain_input_pipe (); ++ + compute_duration (); + if (verify_option) + verify_volume (); +@@ -855,7 +857,7 @@ close_archive (void) + if (rmtclose (archive) != 0) + close_error (*archive_name_cursor); + +- sys_wait_for_child (child_pid, hit_eof); ++ sys_wait_for_child (child_pid); + + tar_stat_destroy (¤t_stat_info); + if (save_name) +diff --git a/src/common.h b/src/common.h +index 9897b46..cc3483e 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -699,7 +699,8 @@ char *xheader_format_name (struct tar_stat_info *st, const char *fmt, + + void sys_detect_dev_null_output (void); + void sys_save_archive_dev_ino (void); +-void sys_wait_for_child (pid_t, bool); ++void sys_drain_input_pipe (void); ++void sys_wait_for_child (pid_t); + void sys_spawn_shell (void); + bool sys_compare_uid (struct stat *a, struct stat *b); + bool sys_compare_gid (struct stat *a, struct stat *b); +diff --git a/src/system.c b/src/system.c +index c90a40d..e57e6da 100644 +--- a/src/system.c ++++ b/src/system.c +@@ -1,7 +1,6 @@ + /* System-dependent calls for tar. + +- Copyright (C) 2003, 2004, 2005, 2006, 2007, +- 2008 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004, 2005, 2006, 2007 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 +@@ -52,7 +51,12 @@ sys_detect_dev_null_output (void) + } + + void +-sys_wait_for_child (pid_t child_pid, bool eof) ++sys_drain_input_pipe (void) ++{ ++} ++ ++void ++sys_wait_for_child (pid_t child_pid) + { + } + +@@ -156,8 +160,26 @@ sys_detect_dev_null_output (void) + && archive_stat.st_ino == dev_null_stat.st_ino)); + } + ++/* Manage to fully drain a pipe we might be reading, so to not break it on ++ the producer after the EOF block. FIXME: one of these days, GNU tar ++ might become clever enough to just stop working, once there is no more ++ work to do, we might have to revise this area in such time. */ ++ ++void ++sys_drain_input_pipe (void) ++{ ++ size_t r; ++ ++ if (access_mode == ACCESS_READ ++ && ! _isrmt (archive) ++ && (S_ISFIFO (archive_stat.st_mode) || S_ISSOCK (archive_stat.st_mode))) ++ while ((r = rmtread (archive, record_start->buffer, record_size)) != 0 ++ && r != SAFE_READ_ERROR) ++ continue; ++} ++ + void +-sys_wait_for_child (pid_t child_pid, bool eof) ++sys_wait_for_child (pid_t child_pid) + { + if (child_pid) + { +@@ -171,11 +193,8 @@ sys_wait_for_child (pid_t child_pid, bool eof) + } + + if (WIFSIGNALED (wait_status)) +- { +- int sig = WTERMSIG (wait_status); +- if (!(!eof && sig == SIGPIPE)) +- FATAL_ERROR ((0, 0, _("Child died with signal %d"), sig)); +- } ++ FATAL_ERROR ((0, 0, _("Child died with signal %d"), ++ WTERMSIG (wait_status))); + else if (WEXITSTATUS (wait_status) != 0) + ERROR ((0, 0, _("Child returned status %d"), + WEXITSTATUS (wait_status))); diff --git a/app-arch/tar/tar-1.23-r2.ebuild b/app-arch/tar/tar-1.23-r2.ebuild new file mode 100644 index 000000000000..9e46eee7f263 --- /dev/null +++ b/app-arch/tar/tar-1.23-r2.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/tar/tar-1.23-r2.ebuild,v 1.1 2010/05/21 06:18:35 vapier Exp $ + +inherit flag-o-matic eutils + +DESCRIPTION="Use this to make tarballs :)" +HOMEPAGE="http://www.gnu.org/software/tar/" +SRC_URI="http://ftp.gnu.org/gnu/tar/${P}.tar.bz2 + ftp://alpha.gnu.org/gnu/tar/${P}.tar.bz2 + mirror://gnu/tar/${P}.tar.bz2" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="nls static userland_GNU" + +RDEPEND="" +DEPEND="${RDEPEND} + nls? ( >=sys-devel/gettext-0.10.35 )" + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}"/${P}-revert-pipe.patch #309001 + epatch "${FILESDIR}"/${P}-strncpy.patch #317139 + + 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_compile() { + local myconf + use static && append-ldflags -static + use userland_GNU || myconf="--program-prefix=g" + # Work around bug in sandbox #67051 + gl_cv_func_chown_follows_symlink=yes \ + econf \ + --enable-backup-scripts \ + --bindir=/bin \ + --libexecdir=/usr/sbin \ + $(use_enable nls) \ + ${myconf} || die + emake || die "emake failed" +} + +src_install() { + local p="" + use userland_GNU || p=g + + emake DESTDIR="${D}" install || die "make install failed" + + if [[ -z ${p} ]] ; then + # a nasty yet required piece of baggage + exeinto /etc + doexe "${FILESDIR}"/rmt || die + fi + + dodoc AUTHORS ChangeLog* NEWS README* THANKS + newman "${FILESDIR}"/tar.1 ${p}tar.1 + mv "${D}"/usr/sbin/${p}backup{,-tar} + mv "${D}"/usr/sbin/${p}restore{,-tar} + + rm -f "${D}"/usr/$(get_libdir)/charset.alias +} |