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

File: [cvsweb.bsd.lv] / cvsweb / Attic / cvsweb.conf (download)

Revision 3.57, Sun Sep 14 16:20:27 2003 UTC (20 years, 6 months ago) by scop
Changes since 3.56: +53 -32 lines

- Improved documentation and organization.
- Better, commented out default for $allow_tar.

# -*-perl-*-
# Configuration of cvsweb.cgi, the
# CGI interface to CVS Repositories.
#
# (c) 1998-1999 H. Zeller    <zeller@think.de>
#     1999      H. Nordstrom <hno@hem.passagen.se>
#     2000-2002 A. MUSHA     <knu@FreeBSD.org>
#     2002-2003 V. Skyttä    <scop@FreeBSD.org>
#          based on work by Bill Fenner  <fenner@FreeBSD.org>
#
# $FreeBSD$
# $Id: cvsweb.conf,v 3.57 2003/09/14 16:20:27 scop Exp $
# $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 3.27 2001/08/01 09:48:39 knu Exp $
#
###

# 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)
$command_path = '/bin:/usr/bin:/usr/local/bin';

# 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.
#
# 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'],
);

#
# 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
#);

#
#$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";

##############
# Defaults for UserSettings
##############
%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",

	# ignorecase: ignore case in sorts (filenames, authors, log messages)
	#   0      Honour case
	#   1      Ignore case
	"ignorecase" => "0",

	# 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" => "date",

	# f:	 Default diff format
	#   h      Human readable
	#   u      Unified diff
	#   c      Context diff
	#   s      Side by side
	#   uc     Unified diff, enscript colored
	#   cc     Context diff, enscript colored
	#   sc     Side by side, enscript colored
	"f" => "u",

	# hidecvsroot: Don't show the CVSROOT directory
	#   1      Hide CVSROOT directory
	#   0      Show CVSROOT directory
	"hidecvsroot" => "0",

	# 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
##############

# Wanna have a logo on the page ?
$logo = '<p><img src="/icons/apache_pb.gif" alt="Powered by Apache"></p>';

# The title of the Page on startup.  This will be put inside a <h1> tag.
$defaulttitle = "CVS Repository";

# The address is shown on the footer.  This will be put inside a <address> tag.
$address = '<span style="font-size: smaller">FreeBSD-CVSweb &lt;<a href="mailto:freebsd-cvsweb@FreeBSD.org">freebsd-cvsweb@FreeBSD.org</a>&gt;</span>';

$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
display diffs between arbitrary revisions.
</p>
<p>
This script has been written by Bill Fenner and improved by Henner Zeller,
Henrik Nordstr&ouml;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 Licence</a>.
</p>
<p>
If you would like to use this CGI script on your own web server and
CVS tree, download the latest version from &lt;URL:<a
href="http://www.FreeBSD.org/projects/cvsweb.html">http://www.FreeBSD.org/projects/cvsweb.html</a>&gt;.
</p>
<p>
Feel free to send any patches, suggestions and comments to the FreeBSD-CVSweb
mailing list at
&lt;<a
href="mailto:freebsd-cvsweb\@FreeBSD.org">freebsd-cvsweb\@FreeBSD.org</a>&gt;.
</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.
</p>
EOT

# 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 => [('[BINARY]', "$iconsdir/binary.gif",    20,   22)],
     graph   => [('[GRAPH]',  "$iconsdir/minigraph.png", 16,   16)],
);
undef $iconsdir;

# An URL where to find the CSS.
$cssurl = '/css/cvsweb.css';

# the length to which the last logentry should
# be truncated when shown in the directory view
$shortLogLen = 80;

# Show author of last change
$show_author = 1;

##############
# table view for directories
##############

# Cell padding for directory table
$tablepadding = 2;

#
# Modules in the repository that should not be displayed, either by default
# nor by explicit path specification.
#
@HideModules = (
#	"^my/secret/module",
);

#
# Files matching these pathnames shouldn't be checked out with cvsweb,
# since they may contain sensitive information. Simple file name based
# filter. Often, the CVSROOT/passwd is exposed and some people tend
# to check in their .cvspass, though this is a bad idea. These files
# shouldn't be readable by default. Thanks to Damian Gryski to point
# this out.
# Note that this affects only files, not directories.
@ForbiddenFiles = (
	"^CVSROOT/passwd\$",   # CVSROOT/passwd should not be cvs add'ed, though
	"/\\.cvspass\$",       # Ditto.  Just in case.
);

#
# Use CVSROOT/CVSROOT/descriptions for describing the directories/modules
# See INSTALL section 8
#
$use_descriptions = 0;

##############
# Human Readable Diff
##############

# (c) 1998 H. Zeller <zeller@think.de>
#
# Generates two columns of color encoded
# diff; much like xdiff or 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
# (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
$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)
$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)
$hr_ignwhite = 0;

# ignore diffs which are caused by
# keyword-substitution like $Id - Stuff
# ( '-kk' option to rcsdiff)
$hr_ignkeysubst = 1;

# the width of the textinput of the
# request-diff-form
$inputTextSize = 12;

##############
# Mime Types
##############

# 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",
);

# The traditional mime.types file, eg. the one from Apache is fine.
# See above where this gets used.
$mime_types = '/usr/local/etc/apache/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 the AddDefaultCharset directive.
#
$charset = '';

# e.g.
#$charset = $where =~ m,/ru[/_-], ? 'koi8-r'
#  : $where =~ m,/zh[/_-], ? 'big5'
#  : $where =~ m,/ja[/_-], ? 'x-euc-jp'
#  : $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.  See also @annotate_options below.
$allow_annotate = 1;

# allow pretty-printed version of files
$allow_markup = 1;

# allow extra hlink formatting (such as PR xrefs) in logs
$allow_log_extra = 1; # default: enabled

# allow extra hlink formatting (such as PR xrefs) in directories
$allow_dir_extra = 1;

# allow extra hlink formatting in source code/formatted diff views
$allow_source_extra = 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;

# 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;

# open Download-Links in another window
$open_extern_window = 1;

# 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;

# 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);

# 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;

# Show last changelog message for sub directories
# 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.
# Enable this if you like the feature, but don't rely on correct results.
$show_subdir_lastmod = 0;

# Show CVS log when viewing file contents
$show_log_in_markup = 1;

# 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.)
# Otherwise those files will get screwed up in markup.
$preformat_in_markup = '';

# Tabstop used to expand tabs in colored diffs. If undefined then
# tabs are always expanded to 8 spaces.
$tabstop = 8;

# 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");

# 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
$use_moddate = 1;

#
# 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;

#
# Allows graphical representations of file logs with CvsGraph if set to a
# true value.
#
$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.
#
#$cvsgraph_config = "/etc/cvsgraph.conf";

#
# 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();

#
# 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).
# For cvs versions prior to 1.11, the '-l' option doesn't work; If you want
# working checkouts with an older cvs version, you'll have to make sure that
# the cvsweb user can read and write to CVSROOT/history.
# Only FreeBSD's and OpenBSD's cvs(1) supports -R (read only access
# mode) option, which considerably speeds up checkouts over NFS.
# A similar effect is provided by -u on NetBSD.
#
@cvs_options = qw(-lf);
push @cvs_options, '-R' if ($^O eq 'freebsd' || $^O eq 'openbsd');
push @cvs_options, '-u' if ($^O eq 'netbsd');

#
# 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.2 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$/o,
   'ksh'          => qr/\.ksh$/o,
   'm4'           => qr/\.m4$/o,
   'makefile'     => qr/((GNU)?[Mm]akefile.*|\.(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,
  );

1;

# EOF