=================================================================== RCS file: /cvs/cvsweb/Attic/cvsweb.conf,v retrieving revision 3.17 retrieving revision 4.5 diff -u -p -r3.17 -r4.5 --- cvsweb/Attic/cvsweb.conf 2001/01/02 23:34:46 3.17 +++ cvsweb/Attic/cvsweb.conf 2019/11/11 13:15:09 4.5 @@ -1,337 +1,361 @@ -# -*-perl-*- -# Configuration of cvsweb.cgi, the -# CGI interface to CVS Repositories. +# -*- perl -*- +# $Id: cvsweb.conf,v 4.5 2019/11/11 13:15:09 schwarze Exp $ +# $doc: cvsweb.conf,v 1.38 2006/01/19 19:53:38 ceri +# $knu: cvsweb.conf,v 1.97 2005/06/19 09:13:50 scop # +# Configuration of cvsweb.cgi, a web interface to CVS repositories. +# # (c) 1998-1999 H. Zeller # 1999 H. Nordstrom -# 2000 A. MUSHA +# 2000-2002 A. MUSHA +# 2002-2005 V. Skyttä # based on work by Bill Fenner -# $zId: cvsweb.conf,v 3.27 2000/07/27 10:16:39 kcoar Exp $ -# $Id: cvsweb.conf,v 3.17 2001/01/02 23:34:46 knu Exp $ + # -### +# Unless otherwise noted, all boolean parameters here default to off +# when no value for them has been explicitly set. +# -############## -# CVS Root -############## -# CVSweb can handle several CVS-Repositories -# at once. Enter a short symbolic names and the -# full path of these repositories here. -# NOTE that the symbolic names may not contain -# whitespaces. -# Note, that cvsweb.cgi currently needs to have physical access -# to the CVS repository so :pserver:someone@xyz.com:/data/cvsroot -# won't work! +# Set the path for the following commands: +# cvs, rlog, rcsdiff +# gzip (if you enable $allow_compress) +# (g)tar, zip (if you enable $allow_tar) +# cvsgraph (if you enable $allow_graph) +# enscript (if you enable $allow_enscript) +# +@command_path = qw(/bin /usr/bin /usr/local/bin); -# 'symbolic_name' => ['name_to_display', 'path_to_the_actual_repository'] -# Listed in the order specified: +# Search the above directories for each command (prefer gtar over tar). +# +for (qw(cvs rlog rcsdiff gzip gtar zip cvsgraph enscript)) { + $CMD{$_} = search_path($_); +} +$CMD{tar} = delete($CMD{gtar}) if $CMD{gtar}; +$CMD{tar} ||= search_path('tar'); + +# CVS roots +# +# CVSweb can handle several CVS repositories at once. Enter short (internal) +# symbolic repository names, their names in the UI and the actual locations +# here. The repositories will be listed in the order they're specified here. +# +# Obviously, CVSweb will need read access to these repository dirs. If you +# receive an error that no valid CVS roots were found, double-check the file +# permissions and any other attributes your system may have for the repository +# directories, such as SELinux file contexts. +# +# CVSweb will also load per-cvsroot configuration files if they exist. +# The symbolic_name (see below) of the CVS root will be concatenated into the +# name of the main (this) configuration file along with a hyphen, and that +# file will be loaded for that particular CVS root. For examples, see +# cvsweb.conf-* in the CVSweb distribution. +# +# Note that only local repositories are currently supported. Things like +# :pserver:someone@xyz.com:/data/cvsroot won't work. +# +# 'symbolic_name' => ['Name to display', '/path/to/cvsroot'] +# @CVSrepositories = ( - 'local' => ['Local Repository', '/home/cvs'], -# 'freebsd' => ['FreeBSD', '/home/ncvs'], -# 'openbsd' => ['OpenBSD', '/home/ncvs'], -# 'netbsd' => ['NetBSD', '/home/ncvs'], -# 'ruby' => ['Ruby', '/var/anoncvs/ruby'], - ); + 'local' => ['Local Repository', '/cvs'], +); -# This tree is enabled by default when -# you enter the page -$cvstreedefault = $CVSrepositories[2 * 0]; # The first one +# The default CVS root. Note that @CVSrepositories is list, not a hash, +# so you'll want to use 2 * 0-based-index-number here; or set this directly +# to the default's symbolic name. Unless specified, the first valid one in +# @CVSrepositories is used as the default. +# +# For example: +# +#$cvstreedefault = $CVSrepositories[2 * 0]; +#$cvstreedefault = 'local'; -############## -# Bug tracking system options -# ("PR" means Problem Report, as in GNATS) -############## -#@prcategories = qw( -# advocacy -# alpha -# bin -# conf -# docs -# gnu -# i386 -# kern -# misc -# pending -# ports -# sparc -# ); +# Mirror sites. The keys will be used as link texts, and the values are +# URLs pointing to the corresponding mirrors. # -#$prcgi = "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=%s"; +#%MIRRORS = ( +# 'Other location' => 'http://192.168.0.1/cgi-bin/cvsweb.cgi/', +# 'Yet another one' => 'http://192.168.0.2/cgi-bin/cvsweb.cgi/', +#); + +# Bug tracking system linking options ("PR" means Problem Report, as in GNATS) +# This will be done only for views for which $allow_*_extra below is true. # +#@prcategories = qw( +# advocacy +# alpha +# bin +# conf +# docs +# gnu +# i386 +# kern +# misc +# pending +# ports +# sparc +#); +#$prcgi = "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=%s"; #$prkeyword = "PR"; -############## -# Manual gateway -############## -$mancgi = "http://www.FreeBSD.org/cgi/man.cgi?apropos=0&sektion=%s&query=%s&manpath=FreeBSD+5.0-current&format=html"; +# Manual gateway linking. This will be done only for views for which +# $allow_*_extra below is true. +# +$mancgi = + "http://www.FreeBSD.org/cgi/man.cgi?apropos=0&sektion=%s&query=%s&manpath=FreeBSD+7.0-current&format=html"; -############## -# Defaults for UserSettings -############## +# Defaults for user definable options. +# %DEFAULTVALUE = ( - # sortby: File sort order - # file Sort by filename - # rev Sort by revision number - # date Sort by commit date - # author Sort by author - # log Sort by log message - "sortby" => "file", + # sortby: File sort order + # file Sort by filename + # rev Sort by revision number + # date Sort by commit date + # author Sort by author + # log Sort by log message + "sortby" => "file", - # hideattic: Hide or show files in Attic - # 1 Hide files in Attic - # 0 Show files in Attic + # ignorecase: Ignore case in sorts (filenames, authors, log messages) + # 0 Honor case + # 1 Ignore case + "ignorecase" => "0", - "hideattic" => "1", + # hideattic: Hide or show files in Attic + # 1 Hide files in Attic + # 0 Show files in Attic + "hideattic" => "1", - # logsort: Sort order for CVS logs - # date Sort revisions by date - # rev Sort revision by revision number - # cvs Don't sort them. Same order as CVS/RCS shows them. + # logsort: Sort order for CVS logs + # date Sort revisions by date + # rev Sort revision by revision number + # cvs Don't sort them. Same order as CVS/RCS shows them. + "logsort" => "date", - "logsort" => "date", + # f: Default diff format + # h Human readable + # u Unified diff + # c Context diff + # uc Unified diff, enscript colored (falls back to "u" w/o enscript) + # cc Context diff, enscript colored (falls back to "c" w/o enscript) + "f" => "u", - # f: Default diff format - # h Human readable - # u Unified diff - # c Context diff - # s Side by side - "f" => "u", + # hidecvsroot: Don't show the CVSROOT directory. Note that this is + # just the default for a user settable option (like others in this + # %DEFAULTVALUE hash); it won't really prevent access to CVSROOT. + # See @ForbiddenFiles for that. + # 1 Do not include the top-level CVSROOT directory in dir listings + # 0 Treat the top-level CVSROOT directory just like all other dirs + "hidecvsroot" => "0", - # hidecvsroot: Don't show the CVSROOT directory - # 1 Hide CVSROOT directory - # 0 Show CVSROOT directory - "hidecvsroot" => "0", + # hidenonreadable: Don't show files and directories that cannot be read + # in directory listings. + # 1 Hide non-readable entries + # 0 Show non-readable entries + "hidenonreadable" => "1", - # hidenonreadable: Don't show entries which cannot be read - # 1 Hide non-readable entries - # 0 Show non-readable entries - "hidenonreadable" => "1", + # ln: Show line numbers in HTMLized views + # 1 Show line numbers + # 0 Don't show line numbers + "ln" => "0", ); -############## -# some layout stuff -############## +# +# Layout options (see also the included CSS file) +# -# The body-tag for directory views and logs -$body_tag = ''; - -# The body-tag for diffs and annotations -$body_tag_for_src = ''; - # Wanna have a logo on the page ? -$logo = ''; +# +#$logo = '

Powered by Apache

'; -# The title of the Page on startup +# The title of the Page on startup. This will be put inside

and +# tags, and HTML escaped. +# $defaulttitle = "CVS Repository"; -# The address is shown on the footer -$address = "<font size=-1>CVSweb by <knu\@FreeBSD.org></font>"; +# The address is shown on the footer. This will be put inside a <address> tag. +# +$address = '<span style="font-size: smaller">CVSweb</span>'; -# color of navigation Header for -# diffs and annotations -$navigationHeaderColor = '#9999ee'; - $long_intro = <<EOT; <p> -This is a WWW interface for CVS Repositories. -You can browse the file hierarchy by picking directories -(which have slashes after them, <i>e.g.</i>, <b>src/</b>). -If you pick a file, you will see the revision history -for that file. -Selecting a revision number will download that revision of -the file. There is a link at each revision to display -diffs between that revision and the previous one, and -a form at the bottom of the page that allows you to +This is a WWW interface for CVS repositories. +You can browse the file hierarchy by following directory links (which +have slashes after them, e.g. <code>src/</code>). +If you follow a link to a file, you will see its revision history. +Following a link labeled with a revision number will display that +revision of the file. In the revision history view, there is a link +near each revision to display diffs between that revision and the +previous one, and a form at the bottom of the page that allows you to display diffs between arbitrary revisions. -</p> -<p> -This script has been written by Bill Fenner -<<a href="mailto:fenner\@FreeBSD.org">fenner\@FreeBSD.org</a>> -and improved by Henner Zeller -<<a href="mailto:zeller\@think.de">zeller\@think.de</a>>, -Henrik Nordström -<<a href="mailto:hno\@hem.passagen.se">hno\@hem.passagen.se</a>>, and -Ken Coar -<<a href="mailto:Ken.Coar\@Golux.Com">Ken.Coar\@Golux.Com</a>>, then -Akinori MUSHA <<a href="mailto:knu\@FreeBSD.org">knu\@FreeBSD.org</a>> -brought it back to FreeBSD community and added more facilities; -it is covered by the -<a href="http://www.opensource.org/licenses/bsd-license.html">BSD-Licence</a>. -</p> -<p> +</p><p> +This script has been written by Bill Fenner and improved by Henner Zeller, +Henrik Nordström, and Ken Coar, then Akinori MUSHA brought it +back to FreeBSD community and made further improvements; it is covered +by <a +href="http://www.opensource.org/licenses/bsd-license.html">The BSD License</a>. +</p><p> If you would like to use this CGI script on your own web server and -CVS tree, see Zeller's -<a href="http://linux.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi" ->CVSweb distribution site</a>. Bill's original script can be found -<a href="http://www.FreeBSD.org/~fenner/cvsweb/">here</a>. +CVS tree, download the latest version from +<<a href="http://cvsweb.bsd.lv/">http://cvsweb.bsd.lv/</a>>. </p> -<p> -Please send any suggestions, comments, etc. to -<a href="mailto:fenner\@FreeBSD.org">Bill Fenner</a> or, regarding the -modifications, to -<a href="mailto:knu\@FreeBSD.org">Akinori MUSHA</a>, -<a href="mailto:zeller\@think.de">Henner Zeller</a>, -<a href="mailto:hno\@hem.passagen.se">Henrik Nordström</a>, or -<a href="mailto:Ken.Coar\@Golux.Com">Ken Coar</a>. -</p> EOT $short_instruction = <<EOT; <p> Click on a directory to enter that directory. Click on a file to display -its revision history and to get a chance to display diffs between revisions. +its revision history and to get a chance to display diffs between revisions. </p> EOT -# used icons; if icon-url is empty, the text representation is used; if -# you do not want to have an ugly tooltip for the icon, remove the -# text-representation. -# The width and height of the icon allow the browser to correcly display -# the table while still loading the icons. -# These default icons are coming with apache. -# If these icons are too large, check out the miniicons in the -# icons/ directory; they have a width/height of 16/16 -my $iconsdir = "/icons"; -# format: TEXT ICON-URL width height -%ICONS = ( - back => [ ("[BACK]", "$iconsdir/back.gif", 20, 22) ], - dir => [ ("[DIR]", "$iconsdir/dir.gif", 20, 22) ], - file => [ ("[TXT]", "$iconsdir/text.gif", 20, 22) ], - ); +# Icons for the web UI. If ICON-URL is empty, the TEXT representation is +# used. If you do not want to have a tool tip for an icon, set TEXT empty. +# The width and height of the icon allow the browser to correctly display +# the table while still loading the icons. If these icons are too large, +# check out the "mini" versions in the icons/ directory; they have a +# width/height of 16/16. +# +my $iconsdir = '/icons'; + +# format: TEXT ICON-URL width height +%ICONS = ( + back => [('[BACK]', "$iconsdir/back.gif", 20, 22)], + dir => [('[DIR]', "$iconsdir/dir.gif", 20, 22)], + file => [('[TXT]', "$iconsdir/text.gif", 20, 22)], + binfile => [('[BIN]', "$iconsdir/binary.gif", 20, 22)], + graph => [('[GRAPH]', "$iconsdir/minigraph.png", 16, 16)], +); undef $iconsdir; -# the length to which the last logentry should -# be truncated when shown in the directory view +# An URL where to find the CSS. +# +$cssurl = '/css/cvsweb.css'; + +# The length to which the last log entry should be truncated when shown +# in the directory view. +# $shortLogLen = 80; -# Show author of last change +# Show author of last change? +# $show_author = 1; -############## -# table view for directories -############## - -# Show directory as table -# this is much more readable but has one -# drawback: the whole table has to be loaded -# before common browsers display it which may -# be annoying if you have a slow link - and a -# large directory .. -$dirtable = 1; - -# show different colors for even/odd rows -@tabcolors = ('#ffffff', '#ffffff'); +# Cell padding for directory table. +# $tablepadding = 2; -# Color of Header -$columnHeaderColorDefault = '#ffffcc'; -$columnHeaderColorSorted = '#ffcc66'; - -# -# If you want to have colored borders -# around each row, uncomment this -$tableBorderColor = '#cccccc'; - +# Regular expressions for files and directories which should be hidden. +# Each regexp is compared against a path relative to a CVS root, after +# stripping the trailing ",v" if present. Matching files and directories +# are not displayed. # -# Modules in the repository that should not be displayed, either by default -# nor by explicit path specification. -# -@HideModules = ( - ); +@ForbiddenFiles = ( + qr|^CVSROOT/+passwd$|o, # CVSROOT/passwd should not be 'cvs add'ed though. + qr|/\.cvspass$|o, # Ditto. Just in case. + #qr|^my/+secret/+dir|o, +); +# Use CVSROOT/descriptions for describing the directories/modules? +# See INSTALL, section 9. # -# Use CVSROOT/CVSROOT/descriptions for describing the directories/modules -# See INSTALL section 8 -# $use_descriptions = 0; -############## -# Human Readable Diff -############## - +# +# Human readable diff. +# # (c) 1998 H. Zeller <zeller@think.de> # -# Generates two columns of color encoded -# diff; much like xdiff or emacs-ediff mode. +# Generates two columns of color encoded diff; much like xdiff or GNU Emacs' +# ediff-mode. # -# The diff-stuff is a piece of code I once made for -# cvs2html which is under GPL, -# see http://www.sslug.dk/cvs2html +# The diff-stuff is a piece of code I once made for cvs2html which is under +# GPL, see http://www.sslug.dk/cvs2html # (c) 1997/98 Peter Toft <pto@sslug.imm.dtu.dk> -# -# some parameters to screw: -## -# make lines breakable so that the columns do not -# exceed the width of the browser +# Make lines breakable so that the columns do not exceed the width of the +# browser? +# $hr_breakable = 1; -# give out function names in diffs -# this just makes sense if we have C-files, otherwise -# diff's heuristic doesn't work well .. -# ( '-p' option to diff) +# Print function names in diffs (unified and context only). +# See the -p option in the diff(1) man page. +# $showfunc = 1; -# For each pair of regexps, files that match the first regexp will be diff'ed -# with an '-F' option with the second regexp. -%funcline_regexp = ( - "\\.(4th|fr)\$" => "\\(^\\|[ \t]\\): ", - "\\.rb\$" => "^[\t ]*\\(class\\|module\\|def\\) ", - ); - -# ignore whitespaces for human readable diffs -# (indendation and stuff ..) -# ( '-w' option to diff) +# Ignore whitespace in human readable diffs? ('-w' option to diff) +# $hr_ignwhite = 0; -# ignore diffs which are caused by -# keyword-substitution like $Id - Stuff -# ( '-kk' option to rcsdiff) +# Ignore diffs which are caused by keyword substitution, $Id and friends? +# ('-kk' option to rcsdiff) +# $hr_ignkeysubst = 1; -# Colors and font to show the diff type of code changes -$diffcolorHeading = '#99cccc'; # color of 'Line'-head of each diffed file -$diffcolorEmpty = '#cccccc'; # color of 'empty' lines -$diffcolorRemove = '#ff9999'; # Removed line(s) (left) ( - ) -$diffcolorChange = '#99ff99'; # Changed line(s) ( both ) -$diffcolorAdd = '#ccccff'; # Added line(s) ( - ) (right) -$diffcolorDarkChange = '#99cc99'; # lines, which are empty in change -$difffontface = "Helvetica,Arial"; -$difffontsize = "-1"; - -# the width of the textinput of the -# request-diff-form +# The width of the textinput of the "request diff" form. +# $inputTextSize = 12; -############## -# Mime Types -############## +# Custom per MIME type diff tools, used for comparing binary files such as +# spreadsheets, images etc. Each key is a MIME type in lowercase. +# Each value is an array ref of available diff tools for that type, each of +# which is a hash ref with values (mandatory where default not listed): +# name: the name to show in the UI for this diff type +# cmd: full path to executable +# args: arguments as an array ref (not string!, defaults to no arguments) +# type: output MIME type (defaults to text/plain) +# +%DIFF_COMMANDS = ( + #'text/xml' => [ + # { name => 'XMLdiff', + # cmd => $CMD{xmldiff}, + # }, + # { name => 'XMLdiff (XUpdate)', + # cmd => $CMD{xmldiff}, + # args => [ qw(-x) ], + # type => 'text/xml', + # }, + #], +); -# mapping to mimetypes to help -# cvsweb to guess the correct mime-type on -# checkout; you can use the mime.types from -# apache here: -$mime_types = '/usr/local/etc/apache/mime.types'; +# +# Mime types +# -# quick mime-type lookup; maps file-suffices to -# mime-types for displaying checkouts in the browser. -# Further MimeTypes will be found in the -# file $mime_types (apache style mime.types - file) -# - add common mappings here for faster lookup +# The MIME type lookup works like this: +# 1) Look up from %MTYPES below with the file name extension (suffix). +# 2) If not found, use the MIME::Types(3) module if it's available. +# 3) If not found, lookup from the $mime_types file (see below). +# 4) If not found, try %MTYPES{'*'}. +# 5) If not found, use 'application/octet-stream' if the file's keyword +# substitution mode is b (ie. the file was checked in as binary to CVS), +# 'text/plain' otherwise. + +# Quick MIME type lookup; maps filename extensions to MIME types. +# Add common mappings here for fast lookup. You can also use this +# to override MIME::Types(3) or the $mime_types file (see below). +# %MTYPES = ( - "html" => "text/html", - "shtml" => "text/html", - "gif" => "image/gif", - "jpeg" => "image/jpeg", - "jpg" => "image/jpeg", - "png" => "image/png", - "xpm" => "image/xpm", - "*" => "text/plain", - ); + "html" => "text/html", + "shtml" => "text/html", + "gif" => "image/gif", + "jpeg" => "image/jpeg", + "jpg" => "image/jpeg", + "png" => "image/png", + "xpm" => "image/xpm", +# "*" => "text/plain", +); -# Charset for HTML output +# The traditional mime.types file, eg. the one from Apache is fine. +# See above where this gets used. +# +$mime_types = '/conf/mime.types'; + +# Charset appended to the Content-Type HTTP header for text/* MIME types. +# Note that the web server may default to some charset which may take effect +# if you leave this parameter empty or unset. +# For Apache, see also the AddDefaultCharset directive. +# $charset = ''; + # e.g. #$charset = $where =~ m,/ru[/_-], ? 'koi8-r' # : $where =~ m,/zh[/_-], ? 'big5' @@ -339,114 +363,275 @@ $charset = ''; # : $where =~ m,/ko[/_-], ? 'x-euc-kr' # : 'iso-8859-1'; +# Output filter +# +$output_filter = ''; + +# e.g. +## unify/convert Japanese code into EUC-JP +#$output_filter= '/usr/local/bin/nkf -e'; + ############## # Misc ############## -# allow annotation of files -# this requires rw-access to the -# CVSROOT/history file (if you have one) -# and rw-access to the subdirectory to -# place the lock so you maybe don't want it + +# Allow annotation of files? See also @annotate_options below. +# $allow_annotate = 1; -# allow pretty-printed version of files +# Allow HTMLized versions of files? +# $allow_markup = 1; -# allow compression with gzip -# of output if the Browser accepts -# it (HTTP_ACCEPT_ENCODING=gzip) -# [make sure to have gzip in the path] -$allow_compress = 0; +# Allow CVSweb to create mailto: links from email addresses in various +# HTMLized views? Default: yes. +# +#$allow_mailtos = 0; -# Make use of javascript functions. -# This way you can select one of your CVSroot -# without pressing 'Go' (.. if you do have more -# than one CVSROOT defined) -$use_java_script = 1; +## Extra hyperlinking means hyperlinks to bug tracking systems and manual page +## gateways, see $prcgi and $mancgi and related options above. -# open Download-Links in another window -$open_extern_window = 1; +# Allow extra hyperlinking (such as PR cross-references) in logs? +# Default: yes. +# +#$allow_log_extra = 0; -# The size of this extern window; this size option -# needs use_java_script to be defined -# just comment them if you don't want to have a fixed -# size -#$extern_window_width = 600; -#$extern_window_height = 440; +# Allow extra hyperlinking in directory views? +# +$allow_dir_extra = 1; -# Edit Options -# Enable form to edit your options (hideattic,sortbydate) -# this isn't necessary if you've $dirtable defined 'cause -# this allows editing of all your options more intuitive -$edit_option_form = (not $dirtable); +# Allow extra hyperlinking in source code/formatted diff views? +# +$allow_source_extra = 1; -# Set the path for the following commands: -# cvs, rlog, rcsdiff -# gzip (if you enable $allow_compress) -# tar,rm (if you enable $allow_tar) -$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin'; +# Allow compression with gzip in general? Note that this also requires +# that the browser supports it, and will be disabled on the fly when necessary. +# +#$allow_compress = 1; -# If you have files which automatically refers to other files -# (such as HTML) then this allows you to browse the checked -# out files as if outside CVS. -$checkout_magic = 1; +# Use JavaScript in the UI? +# +$use_java_script = 1; -# Show last changelog message for sub directories +# Show a form for setting options in the directory view? +# +$edit_option_form = 1; + +# Show last changelog message for subdirectories? # The current implementation makes many assumptions and may show the # incorrect file at some times. The main assumption is that the last # modified file has the newest filedate. But some CVS operations -# touches the file without even when a new version is't checked in, -# and TAG based browsing essientially puts this out of order, unless -# the last checkin was on the same tag as you are viewing. +# touch the file even when a new version isn't checked in, and TAG +# based browsing essentially puts this out of order unless the last +# checkin was on the same tag as you are viewing. # Enable this if you like the feature, but don't rely on correct results. -$show_subdir_lastmod = 0; +# +#$show_subdir_lastmod = 1; -# Background color of logentry in markup -$markupLogColor = "#ffffff"; - -# Show CVS log when viewing file contents +# Show CVS log when viewing file contents? +# $show_log_in_markup = 1; -# Preformat when viewing file contents. This should be turned off +# Preformat when viewing file contents? This should be turned off # when you have files in the repository that are in a multibyte # encoding which uses HTML special characters ([<>&"]) as part of a -# multi-byte character. (such as iso-2022-jp, ShiftJIS, etc.) +# multibyte character. (such as iso-2022-jp, ShiftJIS, etc.) # Otherwise those files will get screwed up in markup. -$preformat_in_markup = ''; +# +# Note: enscript(1) highlighting is preferred over the built-in preformatting, +# ie. this has no effect if $allow_enscript is true and enscript can highlight +# the file. +# +#$preformat_in_markup = 1; -# Tabstop used to expand tabs in colored diffs. If undefined then -# tabs are always expanded to 8 spaces. -$tabstop = 8; +# Default tab width used to expand tabs to spaces in various HTMLized views. +# Note that CVSweb scans the first few lines of sources for some common editor +# directives controlling the tab width. It uses the value from them if found, +# falling back to the value of $tabstop if not. Default: 8. +# +#$tabstop = 4; -# if you wish to display absolute times in your local timezone, -# then define mytz and fill in the strings for your standard and +# If you wish to display absolute times in your local timezone, +# then define @mytz and fill in the strings for your standard and # daylight time. Note that you must also make sure the system # timezone is correctly set. -# @mytz=("EST", "EDT"); +# +#@mytz=("EST", "EDT"); -# cvsweb is friendly to caches by indicating a suitable -# last-modified timestamp. Doing this uses slightly more -# CPU so you might want to disable it if you have a slow -# server +# CVSweb is friendly to caches by sending the HTTP Last-Modified +# header corresponding to the sent content. In the case of a +# checkout, this may require running rcslog on the file solely for the +# purpose of retrieving the timestamp to be sent. If you have a slow +# server, you may want to turn this off for a small performance gain. +# $use_moddate = 1; -# Allows downloading a tarball of the current directory if set. -# Bear in mind that this allows downloading a tarball of your entire -# repository, which can take a lot of time and disk space to create! -# If you enable this, you may need to make sure that cvsweb can write to -# CVSROOT/val-tags, due to a bug in cvs. -$allow_tar = ''; +# Maximum number of filenames to pass to rlog(1) in one command. +# If you see "Failed to spawn GNU rlog" errors with directories containing +# lots of files, experiment by setting this to different values and see if +# the error still occurs. A good value to start from would be eg. 200. +# Just comment this out if you're not bitten by the problem. +# +#$file_list_len = 200; +# Allow graphical representations of file revisions and branches with CvsGraph? +# +$allow_cvsgraph = $CMD{cvsgraph} ? 1 : 0; + +# Path to the CvsGraph configuration file. Only used if $allow_cvsgraph +# is true. Leave this empty or comment it out to make cvsgraph(1) use its +# default configuration file. Note that CVSweb will override some of the +# settings in the configuration file with command line options, see +# doGraph() and doGraphView() in cvsweb.cgi for details. +# +#$cvsgraph_config = "/etc/cvsgraph.conf"; + +# URL to the CVSHistory script. This should be absolute (but does not need +# to include the host and port if the script is on the same server as +# CVSweb). +#$cvshistory_url = "/cgi-bin/cvshistory.cgi"; + +# Whether to allow downloading a tarball or a zip of the current directory. +# While downloading of the entire repository is disallowed, depending on +# the directory this may take a lot of time and disk space. For some CVS +# versions, the user account running CVSweb needs write access to +# CVSROOT/val-tags. See also the tar, gzip and zip options below. +# +#$allow_tar = (($CMD{tar} && $CMD{gzip}) || $CMD{zip}) ? 1 : 0; + # Options to pass to tar(1). +# For example: @tar_options = qw(--ignore-failed-read); +# GNU tar has some useful options against unexpected errors. +# Other useful options include "--owner=0" and "--group=0", see +# the tar(1) (or gtar(1)) manpage for details. +# @tar_options = qw(); -# e.g. @tar_options = qw(--ignore-failed-read); -# GNU tar has some useful options against unexpected errors. +# Options to pass to gzip(1) when compressing a tarball to download. +# For example: @gzip_options = qw(-3); +# Try lower compression level than 6 (default) if you want faster +# compression, or higher for better compression. +# +@gzip_options = qw(); + +# Options to pass to zip(1) when compressing a zip archive to download. +# For example: @zip_options = qw(-3); +# Try lower compression level than 6 (default) if you want faster +# compression, or higher for better compression. +# +@zip_options = qw(-q); + # Options to pass to cvs(1). -@cvs_options = qw(-l); -# e.g. @cvs_options = qw(-R -l); -# -R (read only access mode) is implemented only in FreeBSD's and -# OpenBSD's cvs(1). +# For cvs versions 1.11 to 1.11.6 (broken in < 1.11, removed in 1.11.7), you +# can use the '-l' option to prevent cvs from writing to the history file. +# For other cvs versions, either suppress history logging by using the +# LogHistory parameter in CVSROOT/config or make sure that the CVSweb user +# can read and write to CVSROOT/history. +# FreeBSD's and OpenBSD's cvs(1) has long since supported -R (read only access +# mode) option, which considerably speeds up checkouts over NFS. For other +# platforms, the -R option and the CVSREADONLYFS environment variable are +# available in cvs >= 1.12.1. A similar effect is provided by -u on NetBSD. +# +@cvs_options = qw(-f); +push @cvs_options, '-R' if ($^O eq 'freebsd' || $^O eq 'openbsd'); +push @cvs_options, '-u' if ($^O eq 'netbsd'); +# Only affects cvs >= 1.12.1, but doesn't hurt older ones. +$ENV{CVSREADONLYFS} = 1 unless exists($ENV{CVSREADONLYFS}); +# Options to pass to the 'cvs annotate' command, usually the normal +# @cvs_options are good enough here. +# To make annotate work against a read only repository, add -n, ie.: +# @annotate_options = (@cvs_options, '-n'); +# +@annotate_options = @cvs_options; + +# Options to pass to rcsdiff(1). +# Probably the only useful one here is -q (suppress diagnostic output). +# +@rcsdiff_options = qw(-q); + +# Enables syntax highlighting using GNU Enscript if set. +# You will need GNU Enscript version 1.6.3 or newer for this to work. +# +#$allow_enscript = $CMD{enscript} ? 1 : 0; + +# Options to pass to enscript(1). +# Do not set the -q, --language, -o or --highlight options here. +# Most useful styles are probably emacs, emacs_verbose and msvc. +# +@enscript_options = qw(--style=emacs --color=1); + +# Enscript highlight rule to filename regex mappings. The set of useful +# mappings depends on what highlight rules the system has installed. +# +%enscript_types = + ( + 'ada' => qr/\.ad(s|b|a)$/o, + 'asm' => qr/\.[Ss]$/o, + 'awk' => qr/\.awk$/o, + 'bash' => qr/\.(bash(_profile|rc)|inputrc)$/o, + 'c' => qr/\.(c|h)$/o, + 'changelog' => qr/^changelog$/io, + 'cpp' => qr/\.(c\+\+|C|H|cpp|cc|cxx)$/o, + 'csh' => qr/\.(csh(rc)?|log(in|out)|history)$/o, + 'elisp' => qr/\.e(l|macs)$/o, + 'fortran' => qr/\.[fF]$/o, + 'haskell' => qr/\.(l?h|l?g)s$/o, + 'html' => qr/\.x?html?$/o, + 'idl' => qr/\.idl$/o, + 'inf' => qr/\.inf$/io, + 'java' => qr/\.java$/o, + 'javascript' => qr/\.(js|pac)$/o, + 'ksh' => qr/\.ksh$/o, + 'm4' => qr/\.m4$/o, + 'makefile' => qr/(GNU)?[Mm]akefile(?!\.PL\b)|\.(ma?ke?|am)$/o, + 'matlab' => qr/\.m$/o, + 'nroff' => qr/\.man$/o, + 'pascal' => qr/\.p(as|p)?$/io, + 'perl' => qr/\.p(m|(er)?l)$/io, + 'postscript' => qr/\.e?ps$/io, + 'python' => qr/\.py$/o, + 'rfc' => qr/\b((rfc|draft)\..*\.txt)$/o, + 'scheme' => qr/\.(scm|scheme)$/o, + 'sh' => qr/\.sh$/o, + 'skill' => qr/\.il$/o, + 'sql' => qr/\.sql$/o, + 'states' => qr/\.st$/o, + 'synopsys' => qr/\.s(cr|yn(th)?)$/o, + 'tcl' => qr/\.tcl$/o, + 'tcsh' => qr/\.tcshrc$/o, + 'tex' => qr/\.tex$/o, + 'vba' => qr/\.vba$/o, + 'verilog' => qr/\.(v|vh)$/o, + 'vhdl' => qr/\.vhdl?$/o, + 'vrml' => qr/\.wrl$/o, + 'wmlscript' => qr/\.wmls(cript)?$/o, + 'zsh' => qr/\.(zsh(env|rc)|z(profile|log(in|out)))$/o, + ); + +# Troubleshooting: in case of problems, setting this to 1 will cause more +# error output into your web server error log. Under normal operation, +# this should be set to 0 or commented out. +# +#$DEBUG = 1; + +# Enable this to let CVSweb load extra configuration files from the "conf.d" +# subdirectory of the directory this file is located in. This enables site +# specific configuration without having to modify this "master" configuration +# file (except for enabling this functionality below :) +# +if (0) { + my $confdir = catdir(dirname(__FILE__), 'conf.d'); + if (opendir(CONFD, $confdir)) { + my @files = sort(map(catfile($confdir, $_), readdir(CONFD))); + close(CONFD); + for my $conffile (grep(-f && -r _, @files)) { + ($conffile) = ($conffile =~ /(.+\.conf)$/) or next; + do "$conffile" or config_error($conffile, $@); + } + } +} + 1; -#EOF + +# EOF