diff options
Diffstat (limited to 'dev-perl')
-rw-r--r-- | dev-perl/X11-Protocol/ChangeLog | 5 | ||||
-rw-r--r-- | dev-perl/X11-Protocol/Manifest | 4 | ||||
-rw-r--r-- | dev-perl/X11-Protocol/X11-Protocol-0.51-r2.ebuild (renamed from dev-perl/X11-Protocol/X11-Protocol-0.51.ebuild) | 11 | ||||
-rw-r--r-- | dev-perl/X11-Protocol/files/X11-Protocol-0.51_2.patch | 129 | ||||
-rw-r--r-- | dev-perl/X11-Protocol/files/digest-X11-Protocol-0.51-r2 (renamed from dev-perl/X11-Protocol/files/digest-X11-Protocol-0.51) | 0 |
5 files changed, 143 insertions, 6 deletions
diff --git a/dev-perl/X11-Protocol/ChangeLog b/dev-perl/X11-Protocol/ChangeLog index 90dad4adfc61..b9e984926d7e 100644 --- a/dev-perl/X11-Protocol/ChangeLog +++ b/dev-perl/X11-Protocol/ChangeLog @@ -1,6 +1,9 @@ # ChangeLog for dev-perl/X11-Protocol # Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-perl/X11-Protocol/ChangeLog,v 1.4 2003/10/13 17:09:27 taviso Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-perl/X11-Protocol/ChangeLog,v 1.5 2003/10/21 14:05:54 taviso Exp $ + + 21 Oct 2003; Tavis Ormandy <taviso@gentoo.org> X11-Protocol-0.51.ebuild: + updated patch. 13 Oct 2003; Tavis Ormandy <taviso@gentoo.org> X11-Protocol-0.51-r1.ebuild: stable. diff --git a/dev-perl/X11-Protocol/Manifest b/dev-perl/X11-Protocol/Manifest index e70a2aa4b6e8..76575c617ee4 100644 --- a/dev-perl/X11-Protocol/Manifest +++ b/dev-perl/X11-Protocol/Manifest @@ -1,6 +1,6 @@ -MD5 06f724c30106cdd4940dddf0da514a37 X11-Protocol-0.51-r2.ebuild 652 +MD5 b7a1d32f76047d6b76ca3819e5818918 X11-Protocol-0.51-r2.ebuild 655 MD5 d4aa49c319a5f8bdf45948cb707555bd X11-Protocol-0.51-r1.ebuild 653 -MD5 0ce7b08ae2b2c9301887a42a4ca08c52 ChangeLog 840 +MD5 c112899e44edeafd40006f0dc8369b4a ChangeLog 840 MD5 e2d8f1bf77722def1dd432e26455c818 metadata.xml 305 MD5 f24e90787470f41e63101e1a77d646b6 files/digest-X11-Protocol-0.51-r1 68 MD5 f24e90787470f41e63101e1a77d646b6 files/digest-X11-Protocol-0.51-r2 68 diff --git a/dev-perl/X11-Protocol/X11-Protocol-0.51.ebuild b/dev-perl/X11-Protocol/X11-Protocol-0.51-r2.ebuild index cafa704bd647..89c4f5bdc250 100644 --- a/dev-perl/X11-Protocol/X11-Protocol-0.51.ebuild +++ b/dev-perl/X11-Protocol/X11-Protocol-0.51-r2.ebuild @@ -1,8 +1,8 @@ # Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-perl/X11-Protocol/X11-Protocol-0.51.ebuild,v 1.3 2003/10/07 14:27:47 taviso Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-perl/X11-Protocol/X11-Protocol-0.51-r2.ebuild,v 1.1 2003/10/21 14:05:54 taviso Exp $ -inherit perl-module +inherit perl-module eutils S=${WORKDIR}/${P} DESCRIPTION="Client-side interface to the X11 Protocol" @@ -11,7 +11,12 @@ HOMEPAGE="http://www.cpan.org/modules/by-module/X11/${P}.readme" SLOT="0" LICENSE="Artistic X11" -KEYWORDS="x86 alpha ~sparc" +KEYWORDS="~x86 ~alpha ~sparc" DEPEND="${DEPEND} virtual/x11" + +src_unpack() { + unpack ${A} + cd ${S}; epatch ${FILESDIR}/X11-Protocol-0.51_2.patch +} diff --git a/dev-perl/X11-Protocol/files/X11-Protocol-0.51_2.patch b/dev-perl/X11-Protocol/files/X11-Protocol-0.51_2.patch new file mode 100644 index 000000000000..82c5f0a4cfcd --- /dev/null +++ b/dev-perl/X11-Protocol/files/X11-Protocol-0.51_2.patch @@ -0,0 +1,129 @@ +--- Protocol.pm.orig Fri Aug 22 18:39:18 2003 ++++ Protocol.pm Sun Oct 12 11:57:47 2003 +@@ -15,7 +15,7 @@ + + @EXPORT_OK = qw(pad padding padded hexi make_num_hash default_error_handler); + +-$VERSION = "0.51"; ++$VERSION = "0.51_2"; + + sub padding ($) { + my($x) = @_; +@@ -571,23 +571,28 @@ + return $mask; + } + ++sub make_error_msg { ++ my($self, $data) = @_; ++ my($type, $seq, $info, $minor_op, $major_op) ++ = unpack("xCSLSCxxxxxxxxxxxxxxxxxxxxx", $data); ++ my($t); ++ $t = join("", "Protocol error: bad $type (", ++ $self->do_interp('Error', $type), "); ", ++ "Sequence Number $seq\n", ++ " Opcode ($major_op, $minor_op) = ", ++ ($self->do_interp('Request', $major_op) ++ or $self->{'ext_request'}{$major_op}[$minor_op][0]), "\n"); ++ if ($type == 2) { ++ $t .= " Bad value $info (" . hexi($info) . ")\n"; ++ } elsif ($self->{'error_type'}[$type] & 1) { ++ $t .= " Bad resource $info (" . hexi($info) . ")\n"; ++ } ++ return $t; ++} ++ + sub default_error_handler { +- my($self, $data) = @_; +- my($type, $seq, $info, $minor_op, $major_op) +- = unpack("xCSLSCxxxxxxxxxxxxxxxxxxxxx", $data); +- my($t); +- $t = join("", "Protocol error: bad $type (", +- $self->do_interp('Error', $type), "); ", +- "Sequence Number $seq\n", +- " Opcode ($major_op, $minor_op) = ", +- ($self->do_interp('Request', $major_op) +- or $self->{'ext_request'}{$major_op}[$minor_op][0]), "\n"); +- if ($type == 2) { +- $t .= " Bad value $info (" . hexi($info) . ")\n"; +- } elsif ($self->{'error_type'}[$type] & 1) { +- $t .= " Bad resource $info (" . hexi($info) . ")\n"; +- } +- croak($t); ++ my($self, $data) = @_; ++ croak($self->make_error_msg($data)); + } + + sub handle_input { +@@ -597,8 +602,13 @@ + $type_b = $self->get(1); + $type = unpack "C", $type_b; + if ($type == 0) { +- &{$self->{'error_handler'}}($self, $type_b . $self->get(31)); +- return 0; ++ my $data = $type_b . $self->get(31); ++ my ($type, $seq, $info, $minor_op, $major_op) ++ = unpack("xCSLSCxxxxxxxxxxxxxxxxxxxxx", $data); ++ &{$self->{'error_handler'}}($self, $data); ++ # return 0 to denote an error & the sequence number to identify ++ # which request it applies to. ++ return (0, $seq); + } elsif ($type > 1) { + if ($self->{'event_handler'} eq "queue") { + push @{$self->{'event_queue'}}, $type_b . $self->get(31); +@@ -2031,6 +2041,7 @@ + my($op, $args, $major, $minor) = (@_, 0); + my($data); + ($data, $minor) = (&{$op->[1]}($self, @$args), $minor); ++ # print($op->[0] . " req has seq: " . $self->{sequence_num} . "\n"); + $minor = 0 unless defined $minor; + my($len) = (length($data) / 4) + 1; + croak "Request too long!\n" if $len > $self->{'maximum_request_length'}; +@@ -2054,8 +2065,13 @@ + $self->give($self->assemble_request($op, \@args, $major, $minor)); + $seq = $self->next_sequence(); + $self->add_reply($seq & 0xffff, \$data); +- $self->handle_input() until $data; ++ while (1) ++ { ++ my @ret = $self->handle_input(); ++ last if ($data || ($ret[0] == 0 && $ret[1] == $seq)); ++ } + $self->delete_reply($seq & 0xffff); ++ return undef unless $data; + return &{$op->[2]}($self, $data); + } elsif (@$op == 4) { # Many replies + my($seq, $data, @stuff, @ret); +@@ -2063,7 +2079,17 @@ + $seq = $self->next_sequence(); + $self->add_reply($seq & 0xffff, \$data); + for (;;) { +- $data = 0; $self->handle_input() until $data; ++ $data = 0; ++ while (1) ++ { ++ my @ret = $self->handle_input(); ++ last if ($data || ($ret[0] == 0 && $ret[1] == $seq)); ++ } ++ if (!$data) ++ { ++ $self->delete_reply($seq & 0xffff); ++ return undef; ++ } + @stuff = &{$op->[2]}($self, $data); + last unless @stuff; + if ($op->[3] eq "ARRAY") { +@@ -2392,8 +2418,13 @@ + $self->give($self->assemble_request($op, \@_, $major, $minor)); + $seq = $self->next_sequence(); + $self->add_reply($seq, \$data); +- $self->handle_input() until $data; ++ while (1) ++ { ++ my @ret = $self->handle_input(); ++ last if ($data || ($ret[0] == 0 && $ret[1] == $seq)); ++ } + $self->delete_reply($seq); ++ return undef unless $data; + return &{$op->[2]}($self, $data); + }; + } else { # ListFontsWithInfo diff --git a/dev-perl/X11-Protocol/files/digest-X11-Protocol-0.51 b/dev-perl/X11-Protocol/files/digest-X11-Protocol-0.51-r2 index cfa240ad96fa..cfa240ad96fa 100644 --- a/dev-perl/X11-Protocol/files/digest-X11-Protocol-0.51 +++ b/dev-perl/X11-Protocol/files/digest-X11-Protocol-0.51-r2 |