[BACK]Return to cvsweb.cgi CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / cvsweb

Diff for /cvsweb/cvsweb.cgi between version 4.38 and 4.39

version 4.38, 2019/11/29 19:30:16 version 4.39, 2019/11/29 23:42:40
Line 55  use filetest qw(access);
Line 55  use filetest qw(access);
   
 use vars qw (  use vars qw (
   $VERSION $CheckoutMagic $MimeTypes $DEBUG    $VERSION $CheckoutMagic $MimeTypes $DEBUG
   $config $allow_version_select  
   @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr %DEFAULTVALUE %MTYPES    @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr %DEFAULTVALUE %MTYPES
   @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS    @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS
   %alltags %fileinfo %tags @branchnames %nameprinted    %alltags %fileinfo %tags @branchnames %nameprinted
Line 126  EOM
Line 125  EOM
   $MimeTypes = undef if $@;    $MimeTypes = undef if $@;
   
   $CheckoutMagic = '~checkout~';    $CheckoutMagic = '~checkout~';
   $CMD{$_} = "/usr/bin/$_" for (qw(cvs rcsdiff rlog));  
   $CMD{tar} = "/bin/tar";  
 }  }
   
 # -----------------------------------------------------------------------------  # -----------------------------------------------------------------------------
Line 190  delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)});
Line 187  delete(@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)});
 # with cvs >= 1.12.1 and doesn't hurt other versions.  # with cvs >= 1.12.1 and doesn't hurt other versions.
 $ENV{CVSREADONLYFS} = 1;  $ENV{CVSREADONLYFS} = 1;
   
 # Location of the configuration file inside the web server chroot:  ######## configuration defaults #########
 $config = '/conf/cvsweb/cvsweb.conf';  
   
 ######## Configuration parameters #########  %CMD = (
     cvs     => '/usr/bin/cvs',
     rcsdiff => '/usr/bin/rcsdiff',
     rlog    => '/usr/bin/rlog',
     tar     => '/bin/tar',
   );
   
 @CVSrepositories = @CVSROOT = %CVSROOT = %DEFAULTVALUE =  %DEFAULTVALUE = (
   %MTYPES = %tags = %alltags = %fileinfo = ();    f               => 'u',
     hideattic       => 1,
     hidecvsroot     => 0,
     hidenonreadable => 1,
     ignorecase      => 0,
     ln              => 0,
     logsort         => 'date',
     sortby          => 'file',
   );
   
 $logo = $defaulttitle =  @ForbiddenFiles = (
   $address = $shortLogLen = $show_author =    qr|^CVSROOT/+passwd$|o, # CVSROOT/passwd should not be 'cvs add'ed though.
   $hr_breakable = $hr_ignwhite =    qr|/\.cvspass$|o,       # Ditto.  Just in case.
   $hr_ignkeysubst = $mime_types = $allow_annotate =  );
   $allow_markup = $allow_compress = $edit_option_form =  
   $show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup =  
   $tabstop = $use_moddate = $gzip_open = $DEBUG =  
   $allow_tar = undef;  
   
 $allow_version_select = $allow_mailtos = $allow_log_extra = 1;  %MTYPES = (
     gif  => 'image/gif',
     html => 'text/html',
     jpeg => 'image/jpeg',
     jpg  => 'image/jpeg',
     png  => 'image/png',
   );
   
   $address = 'CVSweb';
   $allow_annotate = 1;
   $allow_compress = 0;
   $allow_dir_extra = 1;
   $allow_log_extra = 1;
   $allow_mailtos = 1;
   $allow_markup = 1;
   $allow_source_extra = 1;
   $allow_tar = 0;
   @annotate_options = qw(-f -R);
   $cssurl = '/css/cvsweb.css';
   @cvs_options = qw(-f -R);
   @CVSrepositories = ('local', ['Local Repository', '/cvs']);
   $DEBUG = 0;
   $defaulttitle = 'CVS Repository';
   $edit_option_form = 1;
   $file_list_len = 0;
   $hr_breakable = 1;
   $hr_ignkeysubst = 1;
   $hr_ignwhite = 0;
   $iconsdir = '/icons';
   $logo = undef;
   $mancgi = 'https://man.openbsd.org/%s.%s';
   $mime_types = '/conf/mime.types';
   $preformat_in_markup = 0;
   @rcsdiff_options = qw(-q);
   $shortLogLen = 80;
   $show_author = 1;
   $show_log_in_markup = 1;
   $show_subdir_lastmod = 0;
   $tabstop = 8;
   @tar_options = qw();
   $use_descriptions = 0;
   $use_moddate = 1;
   
   ######## load configuration #########
   
   {
     my $config = '/conf/cvsweb/cvsweb.conf';
     last unless -e $config;
     defined do $config and last;
     $@ and fatal '500 Internal Error',
       'Error loading configuration file "<code>%s</code>": <pre>%s</pre>',
       $config, $@;
     fatal '500 Internal Error',
       'Cannot read configuration file "<code>%s</code>": %s',
       $config, $! || 'unknown error';
   }
   
   ######## other global variables #########
   
 @DIFFTYPES = qw(h H u c);  @DIFFTYPES = qw(h H u c);
 @DIFFTYPES{@DIFFTYPES} = (  @DIFFTYPES{@DIFFTYPES} = (
   {    {
Line 240  $allow_version_select = $allow_mailtos = $allow_log_ex
Line 302  $allow_version_select = $allow_mailtos = $allow_log_ex
   { descr => 'Revision',    },    { descr => 'Revision',    },
 );  );
   
 ##### End of configuration parameters #####  %alltags = ();
   @CVSROOT = ();
   %CVSROOT = ();
   %CVSROOTdescr = ();
   %fileinfo = ();
   $gzip_open = 0;
   %tags = ();
   
   ######## end of global variables #########
   
 my $pathinfo = '';  my $pathinfo = '';
 if (defined($ENV{PATH_INFO}) && $ENV{PATH_INFO} ne '') {  if (defined($ENV{PATH_INFO}) && $ENV{PATH_INFO} ne '') {
   ($pathinfo) = ($ENV{PATH_INFO} =~ VALID_PATH)    ($pathinfo) = ($ENV{PATH_INFO} =~ VALID_PATH)
Line 314  $maycompress = (
Line 384  $maycompress = (
   qw(cvsroot hideattic ignorecase sortby logsort f only_with_tag ln    qw(cvsroot hideattic ignorecase sortby logsort f only_with_tag ln
      hidecvsroot hidenonreadable);       hidecvsroot hidenonreadable);
   
 # Load configuration.  
 {  
   $config =~ m|^/| or fatal '500 Internal Error',  
     'Configuration file name "<code>%s</code>" is not an absolute path.',  
     $config;  
   defined do $config and last;  
   $@ and fatal '500 Internal Error',  
     'Error loading configuration file "<code>%s</code>": <pre>%s</pre>',  
     $config, $@;  
   fatal '500 Internal Error',  
     'Cannot read configuration file "<code>%s</code>": %s',  
     $config, $! || 'unknown error';  
 }  
   
 # Try to find a readable dir where we can cd into.  Some abs_path()  # Try to find a readable dir where we can cd into.  Some abs_path()
 # implementations as well as various cvs operations require such a dir to  # implementations as well as various cvs operations require such a dir to
 # work properly.  # work properly.
Line 477  for (my $i = 0; $i < scalar(@CVSrepositories); $i += 2
Line 533  for (my $i = 0; $i < scalar(@CVSrepositories); $i += 2
   push(@CVSROOT, $key);    push(@CVSROOT, $key);
 }  }
 unless ($rootfound) {  unless ($rootfound) {
   fatal('500 Internal Error',    fatal('500 Internal Error', 'no valid CVS roots found');
         'No valid CVS roots found!  See <code>@CVSrepositories</code> in ' .  
         'the configuration file (<code>%s</code>).',  
         $config);  
 }  }
 undef $rootfound;  undef $rootfound;
   
Line 584  if ($iconsdir) {
Line 637  if ($iconsdir) {
   $binfileicon = 'binfile';    $binfileicon = 'binfile';
 }  }
   
 my $config_cvstree = "$config-$cvstree";  
   
 # Do some special configuration for cvstrees  
 if (-f $config_cvstree) {  
   do "$config_cvstree"  
     or fatal("500 Internal Error",  
              'Error in loading configuration file: %s<br /><br />%s<br />',  
              $config_cvstree, $@);  
 }  
 undef $config_cvstree;  
   
 $fullname         = catfile($cvsroot, $where);  $fullname         = catfile($cvsroot, $where);
   
 my $rewrite = 0;  my $rewrite = 0;
Line 2627  sub printLog($$$;$$)
Line 2669  sub printLog($$$;$$)
     print ' - view: ', join(', ', @vlinks) if @vlinks;      print ' - view: ', join(', ', @vlinks) if @vlinks;
     undef @vlinks;      undef @vlinks;
   
     if (!$isbin && $allow_version_select) {      unless ($isbin) {
       print ' - ';        print ' - ';
       if ($isSelected) {        if ($isSelected) {
         print '<b>[selected&nbsp;for&nbsp;diffs]</b>';          print '<b>[selected&nbsp;for&nbsp;diffs]</b>';

Legend:
Removed from v.4.38  
changed lines
  Added in v.4.39

CVSweb