Sophie

Sophie

distrib > Altlinux > 4.1 > i586 > by-pkgid > 8d611803a0dfe4ba13cdf9fc0125df52 > files > 2

perl-CGI-3.37-alt1.src.rpm

 .gear/rules                                        |    2 +
 .../tags/1878a555be028b4cf2b6341c471690c6e568c05c  |   13 ++
 .../tags/3e8fdc6e6f3af200981bafb7d21732ddf46daa45  |   13 ++
 .gear/tags/list                                    |    2 +
 CGI.pm                                             |   96 +++---------
 CGI/Apache.pm                                      |    1 +
 CGI/Carp.pm                                        |   18 ++-
 CGI/Cookie.pm                                      |   23 +--
 CGI/Fast.pm                                        |    4 +-
 CGI/Pretty.pm                                      |    4 +-
 CGI/Switch.pm                                      |    1 +
 perl-CGI.spec                                      |  160 ++++++++++++++++++++
 12 files changed, 238 insertions(+), 99 deletions(-)

diff --git a/.gear/rules b/.gear/rules
new file mode 100644
index 0000000..6e9e6de
--- /dev/null
+++ b/.gear/rules
@@ -0,0 +1,2 @@
+tar: @version@:. name=CGI.pm-@version@
+diff: @version@:. . name=perl-CGI-@version@-@release@.patch
diff --git a/.gear/tags/1878a555be028b4cf2b6341c471690c6e568c05c b/.gear/tags/1878a555be028b4cf2b6341c471690c6e568c05c
new file mode 100644
index 0000000..79aef1a
--- /dev/null
+++ b/.gear/tags/1878a555be028b4cf2b6341c471690c6e568c05c
@@ -0,0 +1,13 @@
+object e8644840afdd46e207da7ee7157ab65b4a8394b1
+type commit
+tag 3.35
+tagger Alexey Tourbin <at@altlinux.ru> 1208267197 +0400
+
+3.35
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+
+iEYEABECAAYFAkgEsb0ACgkQfBKgtDjnu0aeewCgq0bRhv43S7ExBkNBCxiCozTw
+yvMAn0WsHrshZkk/kgP14OqZtUfYAxjr
+=G88N
+-----END PGP SIGNATURE-----
diff --git a/.gear/tags/3e8fdc6e6f3af200981bafb7d21732ddf46daa45 b/.gear/tags/3e8fdc6e6f3af200981bafb7d21732ddf46daa45
new file mode 100644
index 0000000..ea26bc1
--- /dev/null
+++ b/.gear/tags/3e8fdc6e6f3af200981bafb7d21732ddf46daa45
@@ -0,0 +1,13 @@
+object b829e6c300121c0cb9bad777ba7f1ad3f80ad850
+type commit
+tag 3.37
+tagger Alexey Tourbin <at@altlinux.ru> 1208980707 +0400
+
+3.37
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+
+iEYEABECAAYFAkgPlOMACgkQfBKgtDjnu0b3qwCgj7I4irkS3nwVuLQdoK/Ev0v9
+5pYAoMp98TcAofdS/XjRk44XAAZi81UT
+=6WlD
+-----END PGP SIGNATURE-----
diff --git a/.gear/tags/list b/.gear/tags/list
new file mode 100644
index 0000000..1868209
--- /dev/null
+++ b/.gear/tags/list
@@ -0,0 +1,2 @@
+1878a555be028b4cf2b6341c471690c6e568c05c 3.35
+3e8fdc6e6f3af200981bafb7d21732ddf46daa45 3.37
diff --git a/CGI.pm b/CGI.pm
index a77a645..75834e4 100644
--- a/CGI.pm
+++ b/CGI.pm
@@ -21,9 +21,6 @@ use Carp 'croak';
 $CGI::revision = '$Id: CGI.pm,v 1.251 2008/04/23 13:08:23 lstein Exp $';
 $CGI::VERSION='3.37';
 
-# HARD-CODED LOCATION FOR FILE UPLOAD TEMPORARY FILES.
-# UNCOMMENT THIS ONLY IF YOU KNOW WHAT YOU'RE DOING.
-# $CGITempFile::TMPDIRECTORY = '/usr/tmp';
 use CGI::Util qw(rearrange make_attributes unescape escape expires ebcdic2ascii ascii2ebcdic);
 
 #use constant XHTML_DTD => ['-//W3C//DTD XHTML Basic 1.0//EN',
@@ -182,20 +179,23 @@ $SL = {
 $IIS++ if defined($ENV{'SERVER_SOFTWARE'}) && $ENV{'SERVER_SOFTWARE'}=~/IIS/;
 
 # Turn on special checking for Doug MacEachern's modperl
-if (exists $ENV{MOD_PERL}) {
+use constant MOD_PERL =>
+	exists $ENV{MOD_PERL} ?
+	exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2 ?
+	2 : 1 : 0;
+
+if (MOD_PERL == 2) {
   # mod_perl handlers may run system() on scripts using CGI.pm;
   # Make sure so we don't get fooled by inherited $ENV{MOD_PERL}
-  if (exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
     $MOD_PERL = 2;
     require Apache2::Response;
     require Apache2::RequestRec;
     require Apache2::RequestUtil;
     require Apache2::RequestIO;
     require APR::Pool;
-  } else {
+} elsif (MOD_PERL == 1) {
     $MOD_PERL = 1;
     require Apache;
-  }
 }
 
 # Turn on special checking for ActiveState's PerlEx
@@ -348,8 +348,8 @@ sub new {
     $self->upload_hook(shift @initializer, shift @initializer);
     $self->{'use_tempfile'} = shift @initializer if (@initializer > 0);
   }
-  if ($MOD_PERL) {
-    if ($MOD_PERL == 1) {
+  if (MOD_PERL) {
+    if (MOD_PERL == 1) {
       $self->r(Apache->request) unless $self->r;
       my $r = $self->r;
       $r->register_cleanup(\&CGI::_reset_globals);
@@ -610,6 +610,7 @@ sub init {
 	  }
 
           if (defined($fh) && ($fh ne '')) {
+              local $_;
               while (<$fh>) {
                   chomp;
                   last if /^=/;
@@ -634,7 +635,7 @@ sub init {
       # If method is GET or HEAD, fetch the query from
       # the environment.
       if ($is_xforms || $meth=~/^(GET|HEAD)$/) {
-	  if ($MOD_PERL) {
+	  if (MOD_PERL) {
 	    $query_string = $self->r->args;
 	  } else {
 	      $query_string = $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
@@ -991,7 +992,7 @@ END_OF_FUNC
 sub read_from_client {
     my($self, $buff, $len, $offset) = @_;
     local $^W=0;                # prevent a warning
-    return $MOD_PERL
+    return MOD_PERL
         ? $self->r->read($$buff, $len, $offset)
         : read(\*STDIN, $$buff, $len, $offset);
 }
@@ -1026,7 +1027,7 @@ sub import_names {
     my($self,$namespace,$delete) = self_or_default(@_);
     $namespace = 'Q' unless defined($namespace);
     die "Can't import names into \"main\"\n" if \%{"${namespace}::"} == \%::;
-    if ($delete || $MOD_PERL || exists $ENV{'FCGI_ROLE'}) {
+    if ($delete || MOD_PERL || exists $ENV{'FCGI_ROLE'}) {
 	# can anyone find an easier way to do this?
 	foreach (keys %{"${namespace}::"}) {
 	    local *symbol = "${namespace}::${_}";
@@ -1522,7 +1523,7 @@ sub header {
     push(@header,map {ucfirst $_} @other);
     push(@header,"Content-Type: $type") if $type ne '';
     my $header = join($CRLF,@header)."${CRLF}${CRLF}";
-    if (($MOD_PERL >= 1) && !$nph) {
+    if ((MOD_PERL >= 1) && !$nph) {
         $self->r->send_cgi_header($header);
         return '';
     }
@@ -3991,38 +3992,6 @@ END_OF_AUTOLOAD
 ####################################################################################
 package CGITempFile;
 
-sub find_tempdir {
-  $SL = $CGI::SL;
-  $MAC = $CGI::OS eq 'MACINTOSH';
-  my ($vol) = $MAC ? MacPerl::Volumes() =~ /:(.*)/ : "";
-  unless (defined $TMPDIRECTORY) {
-    @TEMP=("${SL}usr${SL}tmp","${SL}var${SL}tmp",
-	   "C:${SL}temp","${SL}tmp","${SL}temp",
-	   "${vol}${SL}Temporary Items",
-           "${SL}WWW_ROOT", "${SL}SYS\$SCRATCH",
-	   "C:${SL}system${SL}temp");
-    unshift(@TEMP,$ENV{'TMPDIR'}) if defined $ENV{'TMPDIR'};
-
-    # this feature was supposed to provide per-user tmpfiles, but
-    # it is problematic.
-    #    unshift(@TEMP,(getpwuid($<))[7].'/tmp') if $CGI::OS eq 'UNIX';
-    # Rob: getpwuid() is unfortunately UNIX specific. On brain dead OS'es this
-    #    : can generate a 'getpwuid() not implemented' exception, even though
-    #    : it's never called.  Found under DOS/Win with the DJGPP perl port.
-    #    : Refer to getpwuid() only at run-time if we're fortunate and have  UNIX.
-    # unshift(@TEMP,(eval {(getpwuid($>))[7]}).'/tmp') if $CGI::OS eq 'UNIX' and $> != 0;
-
-    foreach (@TEMP) {
-      do {$TMPDIRECTORY = $_; last} if -d $_ && -w _;
-    }
-  }
-  $TMPDIRECTORY  = $MAC ? "" : "." unless $TMPDIRECTORY;
-}
-
-find_tempdir();
-
-$MAXTRIES = 5000;
-
 # cute feature, but overload implementation broke it
 # %OVERLOAD = ('""'=>'as_string');
 *CGITempFile::AUTOLOAD = \&CGI::AUTOLOAD;
@@ -4044,15 +4013,10 @@ $AUTOLOADED_ROUTINES=<<'END_OF_AUTOLOAD';
 'new' => <<'END_OF_FUNC',
 sub new {
     my($package,$sequence) = @_;
-    my $filename;
-    find_tempdir() unless -w $TMPDIRECTORY;
-    for (my $i = 0; $i < $MAXTRIES; $i++) {
-	last if ! -f ($filename = sprintf("\%s${SL}CGItemp%d", $TMPDIRECTORY, $sequence++));
-    }
-    # check that it is a more-or-less valid filename
-    return unless $filename =~ m!^([a-zA-Z0-9_\+ \'\":/.\$\\-]+)$!;
-    # this used to untaint, now it doesn't
-    # $filename = $1;
+    require File::Temp;
+    $TMPDIRECTORY = File::Temp::tempdir('cgi.XXXXXXXX', TMPDIR => 1, CLEANUP => 1)
+	unless $TMPDIRECTORY && -d $TMPDIRECTORY && -w _;
+    my $filename = File::Temp::tempnam($TMPDIRECTORY, 'cgi');
     return bless \$filename;
 }
 END_OF_FUNC
@@ -4166,7 +4130,7 @@ script and restore it later.
 For example, using the object oriented style, here is how you create
 a simple "Hello World" HTML page:
 
-   #!/usr/local/bin/perl -w
+   #!/usr/bin/perl -w
    use CGI;                             # load CGI routines
    $q = new CGI;                        # create new CGI object
    print $q->header,                    # create the HTTP header
@@ -4184,7 +4148,7 @@ The main differences are that we now need to import a set of functions
 into our name space (usually the "standard" functions), and we don't
 need to create the CGI object.
 
-   #!/usr/local/bin/perl
+   #!/usr/bin/perl
    use CGI qw/:standard/;           # load standard CGI routines
    print header,                    # create the HTTP header
          start_html('hello world'), # start the HTML
@@ -4916,20 +4880,6 @@ To ensure that the temporary file cannot be read by other CGI scripts,
 use suEXEC or a CGI wrapper program to run your script.  The temporary
 file is created with mode 0600 (neither world nor group readable).
 
-The temporary directory is selected using the following algorithm:
-
-    1. if the current user (e.g. "nobody") has a directory named
-    "tmp" in its home directory, use that (Unix systems only).
-
-    2. if the environment variable TMPDIR exists, use the location
-    indicated.
-
-    3. Otherwise try the locations /usr/tmp, /var/tmp, C:\temp,
-    /tmp, /temp, ::Temporary Items, and \WWW_ROOT.
-
-Each of these locations is checked that it is a directory and is
-writable.  If not, the algorithm tries the next choice.
-
 =back
 
 =head2 SPECIAL FORMS FOR IMPORTING HTML-TAG FUNCTIONS
@@ -7351,7 +7301,7 @@ path information in CGI scripts destined for use with IIS.
 
 As per path_info() but returns the additional
 path information translated into a physical path, e.g.
-"/usr/local/etc/httpd/htdocs/additional/stuff".
+"/etc/httpd/htdocs/additional/stuff".
 
 The Microsoft IIS is broken with respect to the translated
 path as well.
@@ -7509,7 +7459,7 @@ You are also advised to put the script into NPH mode and to set $| to
 
 Here is a simple script that demonstrates server push:
 
-  #!/usr/local/bin/perl
+  #!/usr/bin/perl
   use CGI qw/:push -nph/;
   $| = 1;
   print multipart_init(-boundary=>'----here we go!');
@@ -7760,7 +7710,7 @@ for suggestions and bug fixes.
 =head1 A COMPLETE EXAMPLE OF A SIMPLE FORM-BASED SCRIPT
 
 
-	#!/usr/local/bin/perl
+	#!/usr/bin/perl
 
 	use CGI ':standard';
 
diff --git a/CGI/Apache.pm b/CGI/Apache.pm
index c711a48..85aa98e 100644
--- a/CGI/Apache.pm
+++ b/CGI/Apache.pm
@@ -1,5 +1,6 @@
 use CGI;
 
+package CGI::Apache;
 $VERSION = '1.00';
 
 1;
diff --git a/CGI/Carp.pm b/CGI/Carp.pm
index 4ddf27c..ac0be1d 100644
--- a/CGI/Carp.pm
+++ b/CGI/Carp.pm
@@ -408,18 +408,22 @@ sub _warn {
     }
 }
 
+use constant MOD_PERL =>
+	exists $ENV{MOD_PERL} ?
+	exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2 ?
+	2 : 1 : 0;
 
 # The mod_perl package Apache::Registry loads CGI programs by calling
 # eval.  These evals don't count when looking at the stack backtrace.
 sub _longmess {
     my $message = Carp::longmess();
     $message =~ s,eval[^\n]+(ModPerl|Apache)/(?:Registry|Dispatch)\w*\.pm.*,,s
-        if exists $ENV{MOD_PERL};
+        if MOD_PERL;
     return $message;
 }
 
 sub ineval {
-  (exists $ENV{MOD_PERL} ? 0 : $^S) || _longmess() =~ /eval [\{\']/m
+  (MOD_PERL ? 0 : $^S) || _longmess() =~ /eval [\{\']/m
 }
 
 sub die {
@@ -446,7 +450,7 @@ sub die {
     my($file,$line,$id) = id(1);
     $arg .= " at $file line $line." unless $arg=~/\n$/;
     &fatalsToBrowser($arg) if $WRAP;
-    if (($arg =~ /\n$/) || !exists($ENV{MOD_PERL})) {
+    if (($arg =~ /\n$/) || !MOD_PERL) {
       my $stamp = stamp;
       $arg=~s/^/$stamp/gm;
     }
@@ -518,7 +522,6 @@ For help, please send mail to $wm, giving this error message
 and the time and date of the error.
 END
   ;
-  my $mod_perl = exists $ENV{MOD_PERL};
 
   if ($CUSTOM_MSG) {
     if (ref($CUSTOM_MSG) eq 'CODE') {
@@ -540,10 +543,9 @@ $outer_message
 END
   ;
 
-  if ($mod_perl) {
+  if (MOD_PERL) {
     my $r;
-    if ($ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
-      $mod_perl = 2;
+    if (MOD_PERL == 2) {
       require Apache2::RequestRec;
       require Apache2::RequestIO;
       require Apache2::RequestUtil;
@@ -561,7 +563,7 @@ END
     # handler to produce the doc for us.
     if ($r->bytes_sent) {
       $r->print($mess);
-      $mod_perl == 2 ? ModPerl::Util::exit(0) : $r->exit;
+      MOD_PERL == 2 ? ModPerl::Util::exit(0) : $r->exit;
     } else {
       # MSIE won't display a custom 500 response unless it is >512 bytes!
       if ($ENV{HTTP_USER_AGENT} =~ /MSIE/) {
diff --git a/CGI/Cookie.pm b/CGI/Cookie.pm
index c9f318e..c854d17 100644
--- a/CGI/Cookie.pm
+++ b/CGI/Cookie.pm
@@ -22,16 +22,11 @@ use overload '""' => \&as_string,
     'fallback'=>1;
 
 # Turn on special checking for Doug MacEachern's modperl
-my $MOD_PERL = 0;
-if (exists $ENV{MOD_PERL}) {
-  if (exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
-      $MOD_PERL = 2;
-      require Apache2::RequestUtil;
-      require APR::Table;
-  } else {
-    $MOD_PERL = 1;
+if (CGI::MOD_PERL == 2) {
+    require Apache2::RequestUtil;
+    require APR::Table;
+} elsif (CGI::MOD_PERL == 1) {
     require Apache;
-  }
 }
 
 # fetch a list of cookies from the environment and
@@ -70,13 +65,13 @@ sub fetch {
 
 sub get_raw_cookie {
   my $r = shift;
-  $r ||= eval { $MOD_PERL == 2                    ? 
+  $r ||= eval { CGI::MOD_PERL == 2                    ? 
                   Apache2::RequestUtil->request() :
-                  Apache->request } if $MOD_PERL;
+                  Apache->request } if CGI::MOD_PERL;
   if ($r) {
     $raw_cookie = $r->headers_in->{'Cookie'};
   } else {
-    if ($MOD_PERL && !exists $ENV{REQUEST_METHOD}) {
+    if (CGI::MOD_PERL && !exists $ENV{REQUEST_METHOD}) {
       die "Run $r->subprocess_env; before calling fetch()";
     }
     $raw_cookie = $ENV{HTTP_COOKIE} || $ENV{COOKIE};
@@ -179,10 +174,10 @@ sub bake {
   my ($self, $r) = @_;
 
   $r ||= eval {
-      $MOD_PERL == 2
+      CGI::MOD_PERL == 2
           ? Apache2::RequestUtil->request()
           : Apache->request
-  } if $MOD_PERL;
+  } if CGI::MOD_PERL;
   if ($r) {
       $r->headers_out->add('Set-Cookie' => $self->as_string);
   } else {
diff --git a/CGI/Fast.pm b/CGI/Fast.pm
index d29feb4..ce7d205 100644
--- a/CGI/Fast.pm
+++ b/CGI/Fast.pm
@@ -106,7 +106,7 @@ waiting some more.
 
 A typical FastCGI script will look like this:
 
-    #!/usr/local/bin/perl    # must be a FastCGI version of perl!
+    #!/usr/bin/perl    # must be a FastCGI version of perl!
     use CGI::Fast;
     &do_some_initialization();
     while ($q = new CGI::Fast) {
@@ -181,7 +181,7 @@ Maximum length of the queue of pending connections.
 
 For example:
 
-    #!/usr/local/bin/perl    # must be a FastCGI version of perl!
+    #!/usr/bin/perl    # must be a FastCGI version of perl!
     use CGI::Fast;
     &do_some_initialization();
     $ENV{FCGI_SOCKET_PATH} = "sputnik:8888";
diff --git a/CGI/Pretty.pm b/CGI/Pretty.pm
index 2147143..9184dda 100644
--- a/CGI/Pretty.pm
+++ b/CGI/Pretty.pm
@@ -147,8 +147,8 @@ sub new {
     my $class = shift;
     my $this = $class->SUPER::new( @_ );
 
-    if ($CGI::MOD_PERL) {
-        if ($CGI::MOD_PERL == 1) {
+    if (CGI::MOD_PERL) {
+        if (CGI::MOD_PERL == 1) {
             my $r = Apache->request;
             $r->register_cleanup(\&CGI::Pretty::_reset_globals);
         }
diff --git a/CGI/Switch.pm b/CGI/Switch.pm
index b8cc9ef..8a84fc2 100644
--- a/CGI/Switch.pm
+++ b/CGI/Switch.pm
@@ -1,5 +1,6 @@
 use CGI;
 
+package CGI::Switch;
 $VERSION = '1.00';
 
 1;
diff --git a/perl-CGI.spec b/perl-CGI.spec
new file mode 100644
index 0000000..0d4bc69
--- /dev/null
+++ b/perl-CGI.spec
@@ -0,0 +1,160 @@
+%define dist CGI.pm
+Name: perl-CGI
+Version: 3.37
+Release: alt1
+
+Summary: Simple CGI class for Perl
+License: GPL or Artistic
+Group: Development/Perl
+
+URL: %CPAN %dist
+Source: %dist-%version.tar
+Patch: %name-%version-%release.patch
+
+BuildArch: noarch
+
+# skip conditional dependencies
+%add_findreq_skiplist */CGI/Fast.pm
+
+# Automatically added by buildreq on Thu Apr 24 2008
+BuildRequires: perl-FCGI perl-devel
+
+%description
+This is CGI.pm, an easy-to-use Perl5 library for writing
+World Wide Web CGI scripts.
+
+%prep
+%setup -q -n %dist-%version
+%patch -p1
+bzip2 -9kf Changes
+
+%build
+%perl_vendor_build
+
+%install
+%perl_vendor_install
+
+%files
+%doc Changes.bz2 README examples
+%perl_vendor_privlib/CGI.pm
+%dir %perl_vendor_privlib/CGI
+%perl_vendor_privlib/CGI/*.pm
+
+%changelog
+* Thu Apr 24 2008 Alexey Tourbin <at@altlinux.ru> 3.37-alt1
+- 3.35 -> 3.37
+
+* Tue Apr 15 2008 Alexey Tourbin <at@altlinux.ru> 3.35-alt1
+- 3.33 -> 3.35
+
+* Sun Mar 02 2008 Alexey Tourbin <at@altlinux.ru> 3.33-alt1
+- 3.29 -> 3.33
+
+* Mon Aug 20 2007 Alexey Tourbin <at@altlinux.ru> 3.29-alt2
+- changed src.rpm packaging to keep upstream tarball unchanged
+
+* Tue Apr 17 2007 Alexey Tourbin <at@altlinux.ru> 3.29-alt1
+- 3.28 -> 3.29
+
+* Fri Mar 30 2007 Alexey Tourbin <at@altlinux.ru> 3.28-alt1
+- 3.25 -> 3.28
+- fixed insecure temporary file creation in CGI.pm
+
+* Fri Oct 06 2006 Alexey Tourbin <at@altlinux.ru> 3.25-alt1
+- 3.23 -> 3.25
+- imported sources into git and built with gear
+- turned mod_perl variables into constants so that constant folding works;
+  relaxed mode for perl.req is not needed now
+
+* Fri Aug 25 2006 Alexey Tourbin <at@altlinux.ru> 3.23-alt1
+- 3.22 -> 3.23
+
+* Thu Aug 24 2006 Alexey Tourbin <at@altlinux.ru> 3.22-alt1
+- 3.21 -> 3.22
+
+* Tue Aug 22 2006 Alexey Tourbin <at@altlinux.ru> 3.21-alt1
+- 3.20 -> 3.21
+
+* Wed Apr 26 2006 Alexey Tourbin <at@altlinux.ru> 3.20-alt1
+- 3.17 -> 3.20
+
+* Mon Apr 17 2006 Alexey Tourbin <at@altlinux.ru> 3.17-alt1
+- 3.11 -> 3.17
+
+* Mon Aug 08 2005 Alexey Tourbin <at@altlinux.ru> 3.11-alt1
+- 3.10 -> 3.11
+
+* Sat May 21 2005 Alexey Tourbin <at@altlinux.ru> 3.10-alt1
+- 3.09 -> 3.10
+- removed old dependencies
+
+* Sat May 07 2005 Alexey Tourbin <at@altlinux.ru> 3.09-alt1
+- 3.07 -> 3.09
+
+* Sat Mar 19 2005 Alexey Tourbin <at@altlinux.ru> 3.07-alt1.1
+- fixed $CGI::Apache::VERSION (cpan #11941)
+- fixed $CGI::Switch::VERSION (cpan #11942)
+
+* Wed Mar 16 2005 Alexey Tourbin <at@altlinux.ru> 3.07-alt1
+- 3.06 -> 3.07
+
+* Thu Mar 10 2005 Alexey Tourbin <at@altlinux.ru> 3.06-alt1
+- 3.05 -> 3.06
+- cgi_docs.html not packaged (no longer maintained)
+- cgi-lib_porting.html not packaged (cgi-lib.pl was defunct)
+- manual pages not packaged (use perldoc)
+
+* Sat Feb 19 2005 ALT QA Team Robot <qa-robot@altlinux.org> 3.05-alt1.1
+- Rebuilt with rpm-build-perl-0.5.1.
+
+* Fri Jul 02 2004 Alexey Tourbin <at@altlinux.ru> 3.05-alt1
+- 3.04 -> 3.05
+
+* Tue Mar 16 2004 Alexey Tourbin <at@altlinux.ru> 3.04-alt1
+- 3.04
+
+* Fri Dec 19 2003 Alexey Tourbin <at@altlinux.ru> 3.01-alt1
+- 3.01
+- upload_tmpdir.patch not needed
+
+* Thu Aug 21 2003 Alexey Tourbin <at@altlinux.ru> 3.00-alt1
+- 3.00 (cross-site scripting vulnerability fixed)
+- upload_tmpdir.patch updated
+
+* Tue Jul 22 2003 Alexey Tourbin <at@altlinux.ru> 2.98-alt1
+- 2.98 (crash in Dump function fixed)
+- upload_tmpdir.patch updated
+
+* Thu Jul 10 2003 Alexey Tourbin <at@altlinux.ru> 2.97-alt1
+- 2.97 (bugfixes)
+
+* Mon Jun 16 2003 Alexey Tourbin <at@altlinux.ru> 2.95-alt1
+- 2.95
+- merged packages down, with dependency tuning
+
+* Fri Mar 21 2003 Stanislav Ievlev <inger@altlinux.ru> 2.91-alt1
+- 2.91
+
+* Tue Nov 12 2002 Stanislav Ievlev <inger@altlinux.ru> 2.89-alt2
+- hack reqs
+
+* Thu Oct 31 2002 Alexey Tourbin <at@altlinux.ru> 2.89-alt1
+- 2.89
+- package split: perl-CGI, perl-CGI-Apache, perl-CGI-FCGI
+- perl-5.8 build with new rpm macros
+
+* Sun Mar 10 2002 Yuri N. Sedunov <aris@altlinux.ru> 2.80-alt1
+- 2.80
+- spec file skeletonization.
+
+* Mon Jun 25 2001 Stanislav Ievlev <inger@altlinux.ru> 2.752-alt1
+- Release for ALT Linux.
+
+* Wed Apr 25 2001 Pixel <pixel@mandrakesoft.com> 2.752-2mdk
+- rebuild with new perl
+
+* Sat Mar  3 2001 Pixel <pixel@mandrakesoft.com> 2.752-1mdk
+- cleanup (made by Alexander Skwar <ASkwar@Linux-Mandrake.com>)
+- First seperate Mandrake version
+- Added Upload Tmpdir patch from perl
+- Requires perl *WITHOUT* CGI.pm!