Please try the attached patch and let me know if it fixes it for you...

Cheers,

Tim

Anonymous wrote:
Tim Kientzle <kient...@freebsd.org> writes:

Author: kientzle
Date: Sat May  8 16:28:22 2010
New Revision: 207790
URL: http://svn.freebsd.org/changeset/base/207790

Log:
  Config updates.

Modified:
  head/usr.bin/tar/config_freebsd.h

Smth broke after this commit. Hitting ^T causes ports to barf errors.

before

    x11-toolkits/wxgtk28 $ make BATCH= patch
    ===>  Extracting for wxgtk2-2.8.10_4
    => MD5 Checksum OK for wxGTK-2.8.10.tar.bz2.
    => SHA256 Checksum OK for wxGTK-2.8.10.tar.bz2.
    load: 0.05  cmd: sh 64229 [running] 0.00r 0.00u 0.00s 0% 1576k
    load: 0.05  cmd: bzip2 64231 [running] 0.19r 0.16u 0.00s 2% 4564k
    load: 0.05  cmd: bsdtar 64232 [running] 0.36r 0.00u 0.13s 1% 2420k
    load: 0.05  cmd: bzip2 64231 [running] 0.56r 0.47u 0.00s 4% 4568k
    load: 0.05  cmd: bsdtar 64232 [running] 1.82r 0.05u 0.62s 6% 2448k
    ===>  Patching for wxgtk2-2.8.10_4
    ===>  Applying FreeBSD patches for wxgtk2-2.8.10_4

after

    x11-toolkits/wxgtk28 $ make BATCH= patch
    load: 0.05  cmd: make 63587 [zio->io_cv)] 0.19r 0.03u 0.00s 0% 1268k
    ===>  Extracting for wxgtk2-2.8.10_4
    load: 0.05  cmd: awk 63621 [zio->io_cv)] 0.01r 0.00u 0.00s 0% 1492k
    => MD5 Checksum OK for wxGTK-2.8.10.tar.bz2.
    => SHA256 Checksum OK for wxGTK-2.8.10.tar.bz2.
    load: 0.05  cmd: bzip2 63631 [running] 0.13r 0.10u 0.00s 1% 4564k
    wxGTK-2.8.10/contrib/include/wx/fl/controlbar.h: Error reading stdin
    load: 0.05  cmd: bzip2 63631 [running] 0.34r 0.30u 0.00s 3% 4568k
    tar: Error exit delayed from previous errors.
    *** Error code 1

Looks like errors are related to extracting from stdin.

    $ bzip2 -dc wxGTK-2.8.10.tar.bz2 | tar xf -
    load: 0.04  cmd: bzip2 65117 [running] 0.17r 0.07u 0.00s 0% 4564k
    tar: Error reading stdin
    load: 0.04  cmd: bzip2 65117 [running] 0.33r 0.23u 0.00s 2% 4568k
    tar: Error exit delayed from previous errors.
    zsh: broken pipe  bzip2 -dc wxGTK-2.8.10.tar.bz2 |
    zsh: exit 1       tar xf -


Index: archive_read_open_fd.c
===================================================================
--- archive_read_open_fd.c	(revision 208162)
+++ archive_read_open_fd.c	(working copy)
@@ -116,11 +116,15 @@
 	ssize_t bytes_read;
 
 	*buff = mine->buffer;
-	bytes_read = read(mine->fd, mine->buffer, mine->block_size);
-	if (bytes_read < 0) {
-		archive_set_error(a, errno, "Error reading fd %d", mine->fd);
+	for (;;) {
+		bytes_read = read(mine->fd, mine->buffer, mine->block_size);
+		if (bytes_read < 0) {
+			if (errno == EINTR)
+				continue;
+			archive_set_error(a, errno, "Error reading fd %d", mine->fd);
+		}
+		return (bytes_read);
 	}
-	return (bytes_read);
 }
 
 #if ARCHIVE_API_VERSION < 2
Index: archive_read_open_filename.c
===================================================================
--- archive_read_open_filename.c	(revision 208162)
+++ archive_read_open_filename.c	(working copy)
@@ -160,15 +160,19 @@
 	ssize_t bytes_read;
 
 	*buff = mine->buffer;
-	bytes_read = read(mine->fd, mine->buffer, mine->block_size);
-	if (bytes_read < 0) {
-		if (mine->filename[0] == '\0')
-			archive_set_error(a, errno, "Error reading stdin");
-		else
-			archive_set_error(a, errno, "Error reading '%s'",
-			    mine->filename);
+	for (;;) {
+		bytes_read = read(mine->fd, mine->buffer, mine->block_size);
+		if (bytes_read < 0) {
+			if (errno == EINTR)
+				continue;
+			else if (mine->filename[0] == '\0')
+				archive_set_error(a, errno, "Error reading stdin");
+			else
+				archive_set_error(a, errno, "Error reading '%s'",
+				    mine->filename);
+		}
+		return (bytes_read);
 	}
-	return (bytes_read);
 }
 
 #if ARCHIVE_API_VERSION < 2
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to