Annotation of cvsweb/cvsweb.conf, Revision 4.21
4.2 schwarze 1: # -*- perl -*-
4.21 ! schwarze 2: # $Id: cvsweb.conf,v 4.20 2019/11/29 15:05:26 schwarze Exp $
4.2 schwarze 3: # $doc: cvsweb.conf,v 1.38 2006/01/19 19:53:38 ceri
4: # $knu: cvsweb.conf,v 1.97 2005/06/19 09:13:50 scop
5: #
3.76 scop 6: # Configuration of cvsweb.cgi, a web interface to CVS repositories.
3.1 knu 7: #
8: # (c) 1998-1999 H. Zeller <zeller@think.de>
9: # 1999 H. Nordstrom <hno@hem.passagen.se>
3.30 knu 10: # 2000-2002 A. MUSHA <knu@FreeBSD.org>
3.95 scop 11: # 2002-2005 V. Skyttä <scop@FreeBSD.org>
3.1 knu 12: # based on work by Bill Fenner <fenner@FreeBSD.org>
13:
3.92 scop 14: #
15: # Unless otherwise noted, all boolean parameters here default to off
16: # when no value for them has been explicitly set.
17: #
3.19 knu 18:
3.53 scop 19: # CVS roots
20: #
21: # CVSweb can handle several CVS repositories at once. Enter short (internal)
22: # symbolic repository names, their names in the UI and the actual locations
23: # here. The repositories will be listed in the order they're specified here.
24: #
3.93 scop 25: # Obviously, CVSweb will need read access to these repository dirs. If you
26: # receive an error that no valid CVS roots were found, double-check the file
27: # permissions and any other attributes your system may have for the repository
28: # directories, such as SELinux file contexts.
29: #
3.76 scop 30: # CVSweb will also load per-cvsroot configuration files if they exist.
31: # The symbolic_name (see below) of the CVS root will be concatenated into the
32: # name of the main (this) configuration file along with a hyphen, and that
33: # file will be loaded for that particular CVS root. For examples, see
34: # cvsweb.conf-* in the CVSweb distribution.
35: #
3.53 scop 36: # Note that only local repositories are currently supported. Things like
37: # :pserver:someone@xyz.com:/data/cvsroot won't work.
38: #
39: # 'symbolic_name' => ['Name to display', '/path/to/cvsroot']
40: #
3.17 knu 41: @CVSrepositories = (
4.4 schwarze 42: 'local' => ['Local Repository', '/cvs'],
3.26 knu 43: );
3.88 scop 44:
3.92 scop 45: # Manual gateway linking. This will be done only for views for which
46: # $allow_*_extra below is true.
3.76 scop 47: #
3.26 knu 48: $mancgi =
3.98 ceri 49: "http://www.FreeBSD.org/cgi/man.cgi?apropos=0&sektion=%s&query=%s&manpath=FreeBSD+7.0-current&format=html";
3.1 knu 50:
3.90 scop 51: # Defaults for user definable options.
3.76 scop 52: #
3.1 knu 53: %DEFAULTVALUE = (
3.26 knu 54:
3.76 scop 55: # sortby: File sort order
56: # file Sort by filename
57: # rev Sort by revision number
58: # date Sort by commit date
59: # author Sort by author
60: # log Sort by log message
61: "sortby" => "file",
62:
63: # ignorecase: Ignore case in sorts (filenames, authors, log messages)
64: # 0 Honor case
65: # 1 Ignore case
66: "ignorecase" => "0",
67:
68: # hideattic: Hide or show files in Attic
69: # 1 Hide files in Attic
70: # 0 Show files in Attic
71: "hideattic" => "1",
72:
73: # logsort: Sort order for CVS logs
74: # date Sort revisions by date
75: # rev Sort revision by revision number
76: # cvs Don't sort them. Same order as CVS/RCS shows them.
77: "logsort" => "date",
78:
79: # f: Default diff format
80: # h Human readable
81: # u Unified diff
82: # c Context diff
83: "f" => "u",
84:
3.90 scop 85: # hidecvsroot: Don't show the CVSROOT directory. Note that this is
86: # just the default for a user settable option (like others in this
87: # %DEFAULTVALUE hash); it won't really prevent access to CVSROOT.
88: # See @ForbiddenFiles for that.
89: # 1 Do not include the top-level CVSROOT directory in dir listings
90: # 0 Treat the top-level CVSROOT directory just like all other dirs
3.76 scop 91: "hidecvsroot" => "0",
92:
3.90 scop 93: # hidenonreadable: Don't show files and directories that cannot be read
94: # in directory listings.
3.76 scop 95: # 1 Hide non-readable entries
96: # 0 Show non-readable entries
97: "hidenonreadable" => "1",
98:
99: # ln: Show line numbers in HTMLized views
100: # 1 Show line numbers
101: # 0 Don't show line numbers
102: "ln" => "0",
3.1 knu 103: );
104:
3.76 scop 105: #
106: # Layout options (see also the included CSS file)
107: #
3.1 knu 108:
109: # Wanna have a logo on the page ?
3.58 scop 110: #
3.79 scop 111: #$logo = '<p><img src="/icons/apache_pb.gif" alt="Powered by Apache" /></p>';
3.1 knu 112:
3.79 scop 113: # The title of the Page on startup. This will be put inside <h1> and <title>
114: # tags, and HTML escaped.
3.58 scop 115: #
3.1 knu 116: $defaulttitle = "CVS Repository";
117:
3.34 scop 118: # The address is shown on the footer. This will be put inside a <address> tag.
3.58 scop 119: #
4.5 schwarze 120: $address = '<span style="font-size: smaller">CVSweb</span>';
3.1 knu 121:
4.21 ! schwarze 122: # Icons for the web UI.
3.42 scop 123: my $iconsdir = '/icons';
3.1 knu 124:
3.43 scop 125: # An URL where to find the CSS.
3.58 scop 126: #
3.43 scop 127: $cssurl = '/css/cvsweb.css';
128:
3.76 scop 129: # The length to which the last log entry should be truncated when shown
130: # in the directory view.
3.58 scop 131: #
3.1 knu 132: $shortLogLen = 80;
133:
3.76 scop 134: # Show author of last change?
3.58 scop 135: #
3.1 knu 136: $show_author = 1;
137:
3.76 scop 138: # Cell padding for directory table.
3.58 scop 139: #
3.1 knu 140: $tablepadding = 2;
141:
3.91 scop 142: # Regular expressions for files and directories which should be hidden.
3.75 scop 143: # Each regexp is compared against a path relative to a CVS root, after
144: # stripping the trailing ",v" if present. Matching files and directories
145: # are not displayed.
3.58 scop 146: #
3.27 knu 147: @ForbiddenFiles = (
3.74 scop 148: qr|^CVSROOT/+passwd$|o, # CVSROOT/passwd should not be 'cvs add'ed though.
149: qr|/\.cvspass$|o, # Ditto. Just in case.
3.75 scop 150: #qr|^my/+secret/+dir|o,
3.27 knu 151: );
3.1 knu 152:
3.77 scop 153: # Use CVSROOT/descriptions for describing the directories/modules?
3.69 scop 154: # See INSTALL, section 9.
3.1 knu 155: #
156: $use_descriptions = 0;
157:
3.76 scop 158: #
159: # Human readable diff.
160: #
3.1 knu 161: # (c) 1998 H. Zeller <zeller@think.de>
162: #
3.76 scop 163: # Generates two columns of color encoded diff; much like xdiff or GNU Emacs'
164: # ediff-mode.
3.1 knu 165: #
3.76 scop 166: # The diff-stuff is a piece of code I once made for cvs2html which is under
167: # GPL, see http://www.sslug.dk/cvs2html
3.1 knu 168: # (c) 1997/98 Peter Toft <pto@sslug.imm.dtu.dk>
169:
3.76 scop 170: # Make lines breakable so that the columns do not exceed the width of the
171: # browser?
3.58 scop 172: #
3.1 knu 173: $hr_breakable = 1;
174:
3.80 scop 175: # Print function names in diffs (unified and context only).
176: # See the -p option in the diff(1) man page.
3.58 scop 177: #
3.4 knu 178: $showfunc = 1;
3.1 knu 179:
3.76 scop 180: # Ignore whitespace in human readable diffs? ('-w' option to diff)
3.58 scop 181: #
3.7 knu 182: $hr_ignwhite = 0;
3.1 knu 183:
3.76 scop 184: # Ignore diffs which are caused by keyword substitution, $Id and friends?
185: # ('-kk' option to rcsdiff)
3.58 scop 186: #
3.1 knu 187: $hr_ignkeysubst = 1;
188:
3.76 scop 189: # The width of the textinput of the "request diff" form.
3.58 scop 190: #
3.1 knu 191: $inputTextSize = 12;
3.70 scop 192:
193: # Custom per MIME type diff tools, used for comparing binary files such as
194: # spreadsheets, images etc. Each key is a MIME type in lowercase.
195: # Each value is an array ref of available diff tools for that type, each of
196: # which is a hash ref with values (mandatory where default not listed):
197: # name: the name to show in the UI for this diff type
198: # cmd: full path to executable
199: # args: arguments as an array ref (not string!, defaults to no arguments)
200: # type: output MIME type (defaults to text/plain)
201: #
202: %DIFF_COMMANDS = (
203: #'text/xml' => [
204: # { name => 'XMLdiff',
205: # cmd => $CMD{xmldiff},
206: # },
207: # { name => 'XMLdiff (XUpdate)',
208: # cmd => $CMD{xmldiff},
209: # args => [ qw(-x) ],
210: # type => 'text/xml',
211: # },
212: #],
213: );
3.1 knu 214:
3.76 scop 215: #
216: # Mime types
217: #
3.1 knu 218:
3.52 scop 219: # The MIME type lookup works like this:
220: # 1) Look up from %MTYPES below with the file name extension (suffix).
221: # 2) If not found, use the MIME::Types(3) module if it's available.
222: # 3) If not found, lookup from the $mime_types file (see below).
223: # 4) If not found, try %MTYPES{'*'}.
224: # 5) If not found, use 'application/octet-stream' if the file's keyword
225: # substitution mode is b (ie. the file was checked in as binary to CVS),
226: # 'text/plain' otherwise.
3.1 knu 227:
3.52 scop 228: # Quick MIME type lookup; maps filename extensions to MIME types.
229: # Add common mappings here for fast lookup. You can also use this
230: # to override MIME::Types(3) or the $mime_types file (see below).
3.58 scop 231: #
3.1 knu 232: %MTYPES = (
3.26 knu 233: "html" => "text/html",
234: "shtml" => "text/html",
235: "gif" => "image/gif",
236: "jpeg" => "image/jpeg",
237: "jpg" => "image/jpeg",
238: "png" => "image/png",
239: "xpm" => "image/xpm",
3.52 scop 240: # "*" => "text/plain",
3.26 knu 241: );
3.52 scop 242:
243: # The traditional mime.types file, eg. the one from Apache is fine.
244: # See above where this gets used.
3.58 scop 245: #
4.3 schwarze 246: $mime_types = '/conf/mime.types';
3.11 knu 247:
3.56 scop 248: # Charset appended to the Content-Type HTTP header for text/* MIME types.
249: # Note that the web server may default to some charset which may take effect
250: # if you leave this parameter empty or unset.
3.69 scop 251: # For Apache, see also the AddDefaultCharset directive.
3.56 scop 252: #
3.13 knu 253: $charset = '';
3.26 knu 254:
3.13 knu 255: # e.g.
256: #$charset = $where =~ m,/ru[/_-], ? 'koi8-r'
257: # : $where =~ m,/zh[/_-], ? 'big5'
258: # : $where =~ m,/ja[/_-], ? 'x-euc-jp'
259: # : $where =~ m,/ko[/_-], ? 'x-euc-kr'
260: # : 'iso-8859-1';
3.29 knu 261:
262: # Output filter
3.58 scop 263: #
3.29 knu 264: $output_filter = '';
265:
266: # e.g.
267: ## unify/convert Japanese code into EUC-JP
268: #$output_filter= '/usr/local/bin/nkf -e';
3.1 knu 269:
270: ##############
271: # Misc
272: ##############
3.58 scop 273:
3.76 scop 274: # Allow annotation of files? See also @annotate_options below.
3.58 scop 275: #
3.1 knu 276: $allow_annotate = 1;
277:
3.96 scop 278: # Allow HTMLized versions of files?
3.58 scop 279: #
3.1 knu 280: $allow_markup = 1;
281:
3.96 scop 282: # Allow CVSweb to create mailto: links from email addresses in various
283: # HTMLized views? Default: yes.
284: #
285: #$allow_mailtos = 0;
286:
4.8 schwarze 287: ## Extra hyperlinking means hyperlinks to manual page
288: ## gateways, see $mancgi above.
3.92 scop 289:
3.76 scop 290: # Allow extra hyperlinking (such as PR cross-references) in logs?
3.92 scop 291: # Default: yes.
3.58 scop 292: #
3.92 scop 293: #$allow_log_extra = 0;
3.31 knu 294:
3.92 scop 295: # Allow extra hyperlinking in directory views?
3.58 scop 296: #
3.31 knu 297: $allow_dir_extra = 1;
298:
3.76 scop 299: # Allow extra hyperlinking in source code/formatted diff views?
3.58 scop 300: #
3.31 knu 301: $allow_source_extra = 1;
302:
3.76 scop 303: # Allow compression with gzip in general? Note that this also requires
304: # that the browser supports it, and will be disabled on the fly when necessary.
3.58 scop 305: #
3.92 scop 306: #$allow_compress = 1;
3.1 knu 307:
3.76 scop 308: # Show a form for setting options in the directory view?
3.58 scop 309: #
310: $edit_option_form = 1;
3.1 knu 311:
3.77 scop 312: # Show last changelog message for subdirectories?
3.1 knu 313: # The current implementation makes many assumptions and may show the
314: # incorrect file at some times. The main assumption is that the last
315: # modified file has the newest filedate. But some CVS operations
3.97 scop 316: # touch the file even when a new version isn't checked in, and TAG
317: # based browsing essentially puts this out of order unless the last
318: # checkin was on the same tag as you are viewing.
3.1 knu 319: # Enable this if you like the feature, but don't rely on correct results.
3.58 scop 320: #
3.92 scop 321: #$show_subdir_lastmod = 1;
3.1 knu 322:
3.76 scop 323: # Show CVS log when viewing file contents?
3.58 scop 324: #
3.1 knu 325: $show_log_in_markup = 1;
326:
3.77 scop 327: # Preformat when viewing file contents? This should be turned off
3.13 knu 328: # when you have files in the repository that are in a multibyte
329: # encoding which uses HTML special characters ([<>&"]) as part of a
3.97 scop 330: # multibyte character. (such as iso-2022-jp, ShiftJIS, etc.)
3.13 knu 331: # Otherwise those files will get screwed up in markup.
3.58 scop 332: #
3.92 scop 333: #$preformat_in_markup = 1;
3.13 knu 334:
3.92 scop 335: # Default tab width used to expand tabs to spaces in various HTMLized views.
336: # Note that CVSweb scans the first few lines of sources for some common editor
337: # directives controlling the tab width. It uses the value from them if found,
338: # falling back to the value of $tabstop if not. Default: 8.
3.58 scop 339: #
3.92 scop 340: #$tabstop = 4;
3.1 knu 341:
3.82 scop 342: # CVSweb is friendly to caches by sending the HTTP Last-Modified
343: # header corresponding to the sent content. In the case of a
344: # checkout, this may require running rcslog on the file solely for the
345: # purpose of retrieving the timestamp to be sent. If you have a slow
3.92 scop 346: # server, you may want to turn this off for a small performance gain.
3.58 scop 347: #
3.1 knu 348: $use_moddate = 1;
349:
3.45 scop 350: # Maximum number of filenames to pass to rlog(1) in one command.
4.16 schwarze 351: # If you see "Failed to spawn rlog" errors with directories containing
3.45 scop 352: # lots of files, experiment by setting this to different values and see if
353: # the error still occurs. A good value to start from would be eg. 200.
354: # Just comment this out if you're not bitten by the problem.
3.57 scop 355: #
3.45 scop 356: #$file_list_len = 200;
3.86 scop 357:
4.13 schwarze 358: # Whether to allow downloading a tarball of the current directory.
3.57 scop 359: # While downloading of the entire repository is disallowed, depending on
360: # the directory this may take a lot of time and disk space. For some CVS
3.69 scop 361: # versions, the user account running CVSweb needs write access to
4.18 schwarze 362: # CVSROOT/val-tags. See also the tar options below.
3.57 scop 363: #
4.18 schwarze 364: $allow_tar = 0;
3.57 scop 365:
3.13 knu 366: # Options to pass to tar(1).
3.57 scop 367: # For example: @tar_options = qw(--ignore-failed-read);
368: # GNU tar has some useful options against unexpected errors.
369: # Other useful options include "--owner=0" and "--group=0", see
370: # the tar(1) (or gtar(1)) manpage for details.
371: #
3.15 knu 372: @tar_options = qw();
3.26 knu 373:
3.13 knu 374: # Options to pass to cvs(1).
3.63 scop 375: # For cvs versions 1.11 to 1.11.6 (broken in < 1.11, removed in 1.11.7), you
376: # can use the '-l' option to prevent cvs from writing to the history file.
377: # For other cvs versions, either suppress history logging by using the
3.69 scop 378: # LogHistory parameter in CVSROOT/config or make sure that the CVSweb user
3.63 scop 379: # can read and write to CVSROOT/history.
3.61 scop 380: # FreeBSD's and OpenBSD's cvs(1) has long since supported -R (read only access
381: # mode) option, which considerably speeds up checkouts over NFS. For other
4.19 schwarze 382: # platforms, the -R option is available in cvs >= 1.12.1.
383: # A similar effect is provided by -u on NetBSD.
3.57 scop 384: #
3.85 scop 385: @cvs_options = qw(-f);
3.47 scop 386: push @cvs_options, '-R' if ($^O eq 'freebsd' || $^O eq 'openbsd');
387: push @cvs_options, '-u' if ($^O eq 'netbsd');
3.26 knu 388:
3.39 scop 389: # Options to pass to the 'cvs annotate' command, usually the normal
390: # @cvs_options are good enough here.
3.57 scop 391: # To make annotate work against a read only repository, add -n, ie.:
392: # @annotate_options = (@cvs_options, '-n');
393: #
3.39 scop 394: @annotate_options = @cvs_options;
395:
3.54 scop 396: # Options to pass to rcsdiff(1).
397: # Probably the only useful one here is -q (suppress diagnostic output).
3.57 scop 398: #
3.54 scop 399: @rcsdiff_options = qw(-q);
3.39 scop 400:
3.89 scop 401: # Troubleshooting: in case of problems, setting this to 1 will cause more
402: # error output into your web server error log. Under normal operation,
403: # this should be set to 0 or commented out.
404: #
405: #$DEBUG = 1;
3.94 scop 406:
3.12 knu 407: 1;
3.26 knu 408:
3.57 scop 409: # EOF
CVSweb