rpms/perl/F-10 perl-5.10.0-PodSimple.patch, 1.1, 1.2 perl.spec, 1.197, 1.198
Marcela Mašláňová
mmaslano at fedoraproject.org
Mon Dec 22 10:41:44 UTC 2008
Author: mmaslano
Update of /cvs/pkgs/rpms/perl/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18188
Modified Files:
perl-5.10.0-PodSimple.patch perl.spec
Log Message:
* Mon Dec 22 2008 Marcela MaÅ¡láÅová <mmaslano at redhat.com> - 4:5.10.0-52
- add missing XHTML.pm into Pod::Simple
- 295021 CVE-2007-4829 perl-Archive-Tar directory traversal flaws
- add another source for binary files, which test untaring links
perl-5.10.0-PodSimple.patch:
Index: perl-5.10.0-PodSimple.patch
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-10/perl-5.10.0-PodSimple.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- perl-5.10.0-PodSimple.patch 7 Oct 2008 13:40:22 -0000 1.1
+++ perl-5.10.0-PodSimple.patch 22 Dec 2008 10:41:13 -0000 1.2
@@ -1200,3 +1200,407 @@
print "ok $n # skip Pod::Simple S<> parsing bug\n";
} else {
print "not ok $n\n";
+diff -up perl-5.10.0/lib/Pod/Simple/XHTML.pm.miss perl-5.10.0/lib/Pod/Simple/XHTML.pm
+--- perl-5.10.0/lib/Pod/Simple/XHTML.pm.miss 2008-12-22 10:42:49.000000000 +0100
++++ perl-5.10.0/lib/Pod/Simple/XHTML.pm 2008-06-04 23:54:58.000000000 +0200
+@@ -0,0 +1,400 @@
++=pod
++
++=head1 NAME
++
++Pod::Simple::XHTML -- format Pod as validating XHTML
++
++=head1 SYNOPSIS
++
++ use Pod::Simple::XHTML;
++
++ my $parser = Pod::Simple::XHTML->new();
++
++ ...
++
++ $parser->parse_file('path/to/file.pod');
++
++=head1 DESCRIPTION
++
++This class is a formatter that takes Pod and renders it as XHTML
++validating HTML.
++
++This is a subclass of L<Pod::Simple::Methody> and inherits all its
++methods. The implementation is entirely different than
++L<Pod::Simple::HTML>, but it largely preserves the same interface.
++
++=cut
++
++package Pod::Simple::XHTML;
++use strict;
++use vars qw( $VERSION @ISA $HAS_HTML_ENTITIES );
++$VERSION = '3.04';
++use Carp ();
++use Pod::Simple::Methody ();
++ at ISA = ('Pod::Simple::Methody');
++
++BEGIN {
++ $HAS_HTML_ENTITIES = eval "require HTML::Entities; 1";
++}
++
++my %entities = (
++ q{>} => 'gt',
++ q{<} => 'lt',
++ q{'} => '#39',
++ q{"} => 'quot',
++ q{&} => 'amp',
++);
++
++sub encode_entities {
++ return HTML::Entities::encode_entities( $_[0] ) if $HAS_HTML_ENTITIES;
++ my $str = $_[0];
++ my $ents = join '', keys %entities;
++ $str =~ s/([$ents])/'&' . $entities{$1} . ';'/ge;
++ return $str;
++}
++
++#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++
++=head1 METHODS
++
++Pod::Simple::XHTML offers a number of methods that modify the format of
++the HTML output. Call these after creating the parser object, but before
++the call to C<parse_file>:
++
++ my $parser = Pod::PseudoPod::HTML->new();
++ $parser->set_optional_param("value");
++ $parser->parse_file($file);
++
++=head2 perldoc_url_prefix
++
++In turning L<Foo::Bar> into http://whatever/Foo%3a%3aBar, what
++to put before the "Foo%3a%3aBar". The default value is
++"http://search.cpan.org/perldoc?".
++
++=head2 perldoc_url_postfix
++
++What to put after "Foo%3a%3aBar" in the URL. This option is not set by
++default.
++
++=head2 title_prefix, title_postfix
++
++What to put before and after the title in the head. The values should
++already be &-escaped.
++
++=head2 html_css
++
++ $parser->html_css('path/to/style.css');
++
++The URL or relative path of a CSS file to include. This option is not
++set by default.
++
++=head2 html_javascript
++
++The URL or relative path of a JavaScript file to pull in. This option is
++not set by default.
++
++=head2 html_doctype
++
++A document type tag for the file. This option is not set by default.
++
++=head2 html_header_tags
++
++Additional arbitrary HTML tags for the header of the document. The
++default value is just a content type header tag:
++
++ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
++
++Add additional meta tags here, or blocks of inline CSS or JavaScript
++(wrapped in the appropriate tags).
++
++=head2 default_title
++
++Set a default title for the page if no title can be determined from the
++content. The value of this string should already be &-escaped.
++
++=head2 force_title
++
++Force a title for the page (don't try to determine it from the content).
++The value of this string should already be &-escaped.
++
++=head2 html_header, html_footer
++
++Set the HTML output at the beginning and end of each file. The default
++header includes a title, a doctype tag (if C<html_doctype> is set), a
++content tag (customized by C<html_header_tags>), a tag for a CSS file
++(if C<html_css> is set), and a tag for a Javascript file (if
++C<html_javascript> is set). The default footer simply closes the C<html>
++and C<body> tags.
++
++The options listed above customize parts of the default header, but
++setting C<html_header> or C<html_footer> completely overrides the
++built-in header or footer. These may be useful if you want to use
++template tags instead of literal HTML headers and footers or are
++integrating converted POD pages in a larger website.
++
++If you want no headers or footers output in the HTML, set these options
++to the empty string.
++
++=head2 index
++
++TODO -- Not implemented.
++
++Whether to add a table-of-contents at the top of each page (called an
++index for the sake of tradition).
++
++
++=cut
++
++__PACKAGE__->_accessorize(
++ 'perldoc_url_prefix',
++ 'perldoc_url_postfix',
++ 'title_prefix', 'title_postfix',
++ 'html_css',
++ 'html_javascript',
++ 'html_doctype',
++ 'html_header_tags',
++ 'title', # Used internally for the title extracted from the content
++ 'default_title',
++ 'force_title',
++ 'html_header',
++ 'html_footer',
++ 'index',
++ 'batch_mode', # whether we're in batch mode
++ 'batch_mode_current_level',
++ # When in batch mode, how deep the current module is: 1 for "LWP",
++ # 2 for "LWP::Procotol", 3 for "LWP::Protocol::GHTTP", etc
++);
++
++#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++
++=head1 SUBCLASSING
++
++If the standard options aren't enough, you may want to subclass
++Pod::Simple::XHMTL. These are the most likely candidates for methods
++you'll want to override when subclassing.
++
++=cut
++
++sub new {
++ my $self = shift;
++ my $new = $self->SUPER::new(@_);
++ $new->{'output_fh'} ||= *STDOUT{IO};
++ $new->accept_targets( 'html', 'HTML' );
++ $new->perldoc_url_prefix('http://search.cpan.org/perldoc?');
++ $new->html_header_tags('<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">');
++ $new->nix_X_codes(1);
++ $new->codes_in_verbatim(1);
++ $new->{'scratch'} = '';
++ return $new;
++}
++
++#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++
++=head2 handle_text
++
++This method handles the body of text within any element: it's the body
++of a paragraph, or everything between a "=begin" tag and the
++corresponding "=end" tag, or the text within an L entity, etc. You would
++want to override this if you are adding a custom element type that does
++more than just display formatted text. Perhaps adding a way to generate
++HTML tables from an extended version of POD.
++
++So, let's say you want add a custom element called 'foo'. In your
++subclass's C<new> method, after calling C<SUPER::new> you'd call:
++
++ $new->accept_targets_as_text( 'foo' );
++
++Then override the C<start_for> method in the subclass to check for when
++"$flags->{'target'}" is equal to 'foo' and set a flag that marks that
++you're in a foo block (maybe "$self->{'in_foo'} = 1"). Then override the
++C<handle_text> method to check for the flag, and pass $text to your
++custom subroutine to construct the HTML output for 'foo' elements,
++something like:
++
++ sub handle_text {
++ my ($self, $text) = @_;
++ if ($self->{'in_foo'}) {
++ $self->{'scratch'} .= build_foo_html($text);
++ } else {
++ $self->{'scratch'} .= $text;
++ }
++ }
++
++=cut
++
++sub handle_text {
++ # escape special characters in HTML (<, >, &, etc)
++ $_[0]{'scratch'} .= $_[0]{'in_verbatim'} ? encode_entities( $_[1] ) : $_[1]
++}
++
++sub start_Para { $_[0]{'scratch'} = '<p>' }
++sub start_Verbatim { $_[0]{'scratch'} = '<pre><code>'; $_[0]{'in_verbatim'} = 1}
++
++sub start_head1 { $_[0]{'scratch'} = '<h1>' }
++sub start_head2 { $_[0]{'scratch'} = '<h2>' }
++sub start_head3 { $_[0]{'scratch'} = '<h3>' }
++sub start_head4 { $_[0]{'scratch'} = '<h4>' }
++
++sub start_item_bullet { $_[0]{'scratch'} = '<li>' }
++sub start_item_number { $_[0]{'scratch'} = "<li>$_[1]{'number'}. " }
++sub start_item_text { $_[0]{'scratch'} = '<li>' }
++
++sub start_over_bullet { $_[0]{'scratch'} = '<ul>'; $_[0]->emit }
++sub start_over_text { $_[0]{'scratch'} = '<ul>'; $_[0]->emit }
++sub start_over_block { $_[0]{'scratch'} = '<ul>'; $_[0]->emit }
++sub start_over_number { $_[0]{'scratch'} = '<ol>'; $_[0]->emit }
++
++sub end_over_bullet { $_[0]{'scratch'} .= '</ul>'; $_[0]->emit }
++sub end_over_text { $_[0]{'scratch'} .= '</ul>'; $_[0]->emit }
++sub end_over_block { $_[0]{'scratch'} .= '</ul>'; $_[0]->emit }
++sub end_over_number { $_[0]{'scratch'} .= '</ol>'; $_[0]->emit }
++
++# . . . . . Now the actual formatters:
++
++sub end_Para { $_[0]{'scratch'} .= '</p>'; $_[0]->emit }
++sub end_Verbatim {
++ $_[0]{'scratch'} .= '</code></pre>';
++ $_[0]{'in_verbatim'} = 0;
++ $_[0]->emit;
++}
++
++sub end_head1 { $_[0]{'scratch'} .= '</h1>'; $_[0]->emit }
++sub end_head2 { $_[0]{'scratch'} .= '</h2>'; $_[0]->emit }
++sub end_head3 { $_[0]{'scratch'} .= '</h3>'; $_[0]->emit }
++sub end_head4 { $_[0]{'scratch'} .= '</h4>'; $_[0]->emit }
++
++sub end_item_bullet { $_[0]{'scratch'} .= '</li>'; $_[0]->emit }
++sub end_item_number { $_[0]{'scratch'} .= '</li>'; $_[0]->emit }
++sub end_item_text { $_[0]->emit }
++
++# This handles =begin and =for blocks of all kinds.
++sub start_for {
++ my ($self, $flags) = @_;
++ $self->{'scratch'} .= '<div';
++ $self->{'scratch'} .= ' class="'.$flags->{'target'}.'"' if ($flags->{'target'});
++ $self->{'scratch'} .= '>';
++ $self->emit;
++
++}
++sub end_for {
++ my ($self) = @_;
++ $self->{'scratch'} .= '</div>';
++ $self->emit;
++}
++
++sub start_Document {
++ my ($self) = @_;
++ if (defined $self->html_header) {
++ $self->{'scratch'} .= $self->html_header;
++ $self->emit unless $self->html_header eq "";
++ } else {
++ my ($doctype, $title, $metatags);
++ $doctype = $self->html_doctype || '';
++ $title = $self->force_title || $self->title || $self->default_title || '';
++ $metatags = $self->html_header_tags || '';
++ if ($self->html_css) {
++ $metatags .= "\n<link rel='stylesheet' href='" .
++ $self->html_css . "' type='text/css'>";
++ }
++ if ($self->html_javascript) {
++ $metatags .= "\n<script type='text/javascript' src='" .
++ $self->html_javascript . "'></script>";
++ }
++ $self->{'scratch'} .= <<"HTML";
++$doctype
++<html>
++<head>
++<title>$title</title>
++$metatags
++</head>
++<body>
++HTML
++ $self->emit;
++ }
++}
++
++sub end_Document {
++ my ($self) = @_;
++ if (defined $self->html_footer) {
++ $self->{'scratch'} .= $self->html_footer;
++ $self->emit unless $self->html_footer eq "";
++ } else {
++ $self->{'scratch'} .= "</body>\n</html>";
++ $self->emit;
++ }
++}
++
++# Handling code tags
++sub start_B { $_[0]{'scratch'} .= '<b>' }
++sub end_B { $_[0]{'scratch'} .= '</b>' }
++
++sub start_C { $_[0]{'scratch'} .= '<code>' }
++sub end_C { $_[0]{'scratch'} .= '</code>' }
++
++sub start_E { $_[0]{'scratch'} .= '&' }
++sub end_E { $_[0]{'scratch'} .= ';' }
++
++sub start_F { $_[0]{'scratch'} .= '<i>' }
++sub end_F { $_[0]{'scratch'} .= '</i>' }
++
++sub start_I { $_[0]{'scratch'} .= '<i>' }
++sub end_I { $_[0]{'scratch'} .= '</i>' }
++
++sub start_L {
++ my ($self, $flags) = @_;
++ my $url;
++ if ($flags->{'type'} eq 'url') {
++ $url = $flags->{'to'};
++ } elsif ($flags->{'type'} eq 'pod') {
++ $url .= $self->perldoc_url_prefix || '';
++ $url .= $flags->{'to'} || '';
++ $url .= '/' . $flags->{'section'} if ($flags->{'section'});
++ $url .= $self->perldoc_url_postfix || '';
++# require Data::Dumper;
++# print STDERR Data::Dumper->Dump([$flags]);
++ }
++
++ $self->{'scratch'} .= '<a href="'. $url . '">';
++}
++sub end_L { $_[0]{'scratch'} .= '</a>' }
++
++sub start_S { $_[0]{'scratch'} .= '<nobr>' }
++sub end_S { $_[0]{'scratch'} .= '</nobr>' }
++
++sub emit {
++ my($self) = @_;
++ my $out = $self->{'scratch'} . "\n";
++ print {$self->{'output_fh'}} $out, "\n";
++ $self->{'scratch'} = '';
++ return;
++}
++
++# Bypass built-in E<> handling to preserve entity encoding
++sub _treat_Es {}
++
++1;
++
++__END__
++
++=head1 SEE ALSO
++
++L<Pod::Simple>, L<Pod::Simple::Methody>
++
++=head1 COPYRIGHT
++
++Copyright (c) 2003-2005 Allison Randal.
++
++This library is free software; you can redistribute it and/or modify
++it under the same terms as Perl itself. The full text of the license
++can be found in the LICENSE file included with this module.
++
++This library is distributed in the hope that it will be useful, but
++without any warranty; without even the implied warranty of
++merchantability or fitness for a particular purpose.
++
++=head1 AUTHOR
++
++Allison Randal <allison at perl.org>
++
++=cut
++
Index: perl.spec
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-10/perl.spec,v
retrieving revision 1.197
retrieving revision 1.198
diff -u -r1.197 -r1.198
--- perl.spec 29 Nov 2008 00:10:08 -0000 1.197
+++ perl.spec 22 Dec 2008 10:41:14 -0000 1.198
@@ -7,7 +7,7 @@
Name: perl
Version: %{perl_version}
-Release: 51%{?dist}
+Release: 52%{?dist}
Epoch: %{perl_epoch}
Summary: Practical Extraction and Report Language
Group: Development/Languages
@@ -16,6 +16,7 @@
License: (GPL+ or Artistic) and (GPLv2+ or Artistic)
Url: http://www.perl.org/
Source0: http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/perl-%{perl_version}.tar.gz
+Source1: Tar-Archive.tar.gz
Source11: filter-requires.sh
Source12: perl-5.8.0-libnet.cfg
# Specific to Fedora/RHEL
@@ -121,6 +122,8 @@
# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21733.html
Patch31: perl-5.10.0-Change33897.patch
+Patch32: perl-5.10.0-ArchiveTar1.40.patch
+
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: tcsh, dos2unix, man, groff
BuildRequires: gdbm-devel, db4-devel, zlib-devel
@@ -274,7 +277,7 @@
Group: Development/Libraries
License: GPL+ or Artistic
Epoch: 0
-Version: 1.38
+Version: 1.40
Requires: perl = %{perl_epoch}:%{perl_version}-%{release}
Requires: perl(Compress::Zlib), perl(IO::Zlib)
@@ -821,7 +824,7 @@
%prep
-%setup -q
+%setup -q -a 1
%patch1 -p1
%patch2 -p1
%patch3 -p1
@@ -859,6 +862,7 @@
%patch29 -p1
%patch30 -p1
%patch31 -p1
+%patch32 -p1
#
# Candidates for doc recoding (need case by case review):
@@ -1092,6 +1096,7 @@
perl -x patchlevel.h '33881 Integrate Changes 33825, 33826, 33829'
perl -x patchlevel.h '33896 Eliminate POSIX::int_macro_int, and all the complex AUTOLOAD fandango'
perl -x patchlevel.h '33897 Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG'
+perl -x patchlevel.h 'Fedora Patch32: CVE-2007-4829 Update Archive::Tar to 1.40'
%clean
rm -rf $RPM_BUILD_ROOT
@@ -1651,7 +1656,7 @@
%files Pod-Simple
%defattr(-,root,root,-)
-%{_prefix}/lib/perl5/%{perl_version}/Pod/Simple/
+%{_prefix}/lib/perl5/%{perl_version}/Pod/Simple/
%{_prefix}/lib/perl5/%{perl_version}/Pod/Simple.pm
%{_prefix}/lib/perl5/%{perl_version}/Pod/Simple.pod
%{_mandir}/man3/Pod::Simple*
@@ -1699,6 +1704,11 @@
# Old changelog entries are preserved in CVS.
%changelog
+* Mon Dec 22 2008 Marcela MaÅ¡láÅová <mmaslano at redhat.com> - 4:5.10.0-52
+- add missing XHTML.pm into Pod::Simple
+- 295021 CVE-2007-4829 perl-Archive-Tar directory traversal flaws
+- add another source for binary files, which test untaring links
+
* Fri Nov 28 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 4:5.10.0-51
- to fix Fedora bz 473223, which is really perl bug #54186 (http://rt.perl.org/rt3//Public/Bug/Display.html?id=54186)
we apply Changes 33640, 33881, 33896, 33897
More information about the fedora-extras-commits
mailing list