Annotation of cvsweb/cvsweb.conf, Revision 3.52
3.1 knu 1: # -*-perl-*-
2: # Configuration of cvsweb.cgi, the
3: # CGI interface to CVS Repositories.
4: #
5: # (c) 1998-1999 H. Zeller <zeller@think.de>
6: # 1999 H. Nordstrom <hno@hem.passagen.se>
3.30 knu 7: # 2000-2002 A. MUSHA <knu@FreeBSD.org>
3.48 scop 8: # 2002-2003 V. Skyttä <scop@FreeBSD.org>
3.1 knu 9: # based on work by Bill Fenner <fenner@FreeBSD.org>
3.28 knu 10: #
3.30 knu 11: # $FreeBSD$
3.27 knu 12: # $Id: cvsweb.conf,v 3.29 2001/07/23 09:14:52 hzeller Exp $
3.28 knu 13: # $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 3.27 2001/08/01 09:48:39 knu Exp $
3.1 knu 14: #
15: ###
16:
3.19 knu 17: # Set the path for the following commands:
3.47 scop 18: # cvs, rlog, rcsdiff
3.19 knu 19: # gzip (if you enable $allow_compress)
3.47 scop 20: # (g)tar, zip (if you enable $allow_tar)
3.42 scop 21: # cvsgraph (if you enable $allow_graph)
3.19 knu 22: $command_path = '/bin:/usr/bin:/usr/local/bin';
23:
3.47 scop 24: # Search the above directories for each command (prefer gtar over tar).
3.48 scop 25: for (qw(cvs rlog rcsdiff gzip gtar zip cvsgraph enscript)) {
3.26 knu 26: $CMD{$_} = search_path($_);
3.19 knu 27: }
3.47 scop 28: $CMD{tar} = delete($CMD{gtar}) if $CMD{gtar};
29: $CMD{tar} ||= search_path('tar');
3.19 knu 30:
3.1 knu 31: ##############
32: # CVS Root
33: ##############
34: # CVSweb can handle several CVS-Repositories
35: # at once. Enter a short symbolic names and the
36: # full path of these repositories here.
37: # NOTE that the symbolic names may not contain
38: # whitespaces.
39: # Note, that cvsweb.cgi currently needs to have physical access
40: # to the CVS repository so :pserver:someone@xyz.com:/data/cvsroot
41: # won't work!
42:
3.17 knu 43: # 'symbolic_name' => ['name_to_display', 'path_to_the_actual_repository']
44: # Listed in the order specified:
45: @CVSrepositories = (
3.26 knu 46: 'local' => ['Local Repository', '/home/cvs'],
47: # 'freebsd' => ['FreeBSD', '/home/ncvs'],
48: # 'openbsd' => ['OpenBSD', '/home/ncvs'],
49: # 'netbsd' => ['NetBSD', '/home/ncvs'],
50: # 'ruby' => ['Ruby', '/var/anoncvs/ruby'],
51: );
3.1 knu 52:
53: # This tree is enabled by default when
54: # you enter the page
3.26 knu 55: $cvstreedefault = $CVSrepositories[2 * 0]; # The first one
3.1 knu 56:
57: ##############
3.15 knu 58: # Bug tracking system options
59: # ("PR" means Problem Report, as in GNATS)
3.1 knu 60: ##############
3.15 knu 61: #@prcategories = qw(
3.26 knu 62: # advocacy
63: # alpha
64: # bin
65: # conf
66: # docs
67: # gnu
68: # i386
69: # kern
70: # misc
71: # pending
72: # ports
73: # sparc
74: #);
75:
3.15 knu 76: #
77: #$prcgi = "http://www.FreeBSD.org/cgi/query-pr.cgi?pr=%s";
78: #
79: #$prkeyword = "PR";
3.1 knu 80:
81: ##############
3.15 knu 82: # Manual gateway
3.8 knu 83: ##############
3.26 knu 84: $mancgi =
85: "http://www.FreeBSD.org/cgi/man.cgi?apropos=0&sektion=%s&query=%s&manpath=FreeBSD+5.0-current&format=html";
3.1 knu 86:
87: ##############
88: # Defaults for UserSettings
89: ##############
90: %DEFAULTVALUE = (
3.26 knu 91:
92: # sortby: File sort order
93: # file Sort by filename
94: # rev Sort by revision number
95: # date Sort by commit date
96: # author Sort by author
97: # log Sort by log message
98: "sortby" => "file",
99:
3.46 scop 100: # ignorecase: ignore case in sorts (filenames, authors, log messages)
101: # 0 Honour case
102: # 1 Ignore case
103: "ignorecase" => "0",
104:
3.26 knu 105: # hideattic: Hide or show files in Attic
106: # 1 Hide files in Attic
107: # 0 Show files in Attic
108: "hideattic" => "1",
109:
110: # logsort: Sort order for CVS logs
111: # date Sort revisions by date
112: # rev Sort revision by revision number
113: # cvs Don't sort them. Same order as CVS/RCS shows them.
114: "logsort" => "date",
115:
116: # f: Default diff format
117: # h Human readable
118: # u Unified diff
119: # c Context diff
120: # s Side by side
121: "f" => "u",
122:
123: # hidecvsroot: Don't show the CVSROOT directory
124: # 1 Hide CVSROOT directory
125: # 0 Show CVSROOT directory
126: "hidecvsroot" => "0",
127:
128: # hidenonreadable: Don't show entries which cannot be read
129: # 1 Hide non-readable entries
130: # 0 Show non-readable entries
131: "hidenonreadable" => "1",
3.49 scop 132:
133: # ln: Show line numbers in HTMLized views
134: # 1 Show line numbers
135: # 0 Don't show line numbers
136: "ln" => "0",
3.1 knu 137: );
138:
139: ##############
140: # some layout stuff
141: ##############
142:
143: # Wanna have a logo on the page ?
3.30 knu 144: $logo = '<p><img src="/icons/apache_pb.gif" alt="Powered by Apache"></p>';
3.1 knu 145:
3.34 scop 146: # The title of the Page on startup. This will be put inside a <h1> tag.
3.1 knu 147: $defaulttitle = "CVS Repository";
148:
3.34 scop 149: # The address is shown on the footer. This will be put inside a <address> tag.
150: $address = '<span style="font-size: smaller">FreeBSD-CVSweb <<a href="mailto:freebsd-cvsweb@FreeBSD.org">freebsd-cvsweb@FreeBSD.org</a>></span>';
3.1 knu 151:
152: $long_intro = <<EOT;
153: <p>
154: This is a WWW interface for CVS Repositories.
155: You can browse the file hierarchy by picking directories
156: (which have slashes after them, <i>e.g.</i>, <b>src/</b>).
157: If you pick a file, you will see the revision history
158: for that file.
159: Selecting a revision number will download that revision of
160: the file. There is a link at each revision to display
161: diffs between that revision and the previous one, and
162: a form at the bottom of the page that allows you to
163: display diffs between arbitrary revisions.
164: </p>
165: <p>
3.33 scop 166: This script has been written by Bill Fenner and improved by Henner Zeller,
167: Henrik Nordström, and Ken Coar, then Akinori MUSHA brought it
3.22 knu 168: back to FreeBSD community and made further improvements; it is covered
3.33 scop 169: by <a
170: href="http://www.opensource.org/licenses/bsd-license.html">The BSD Licence</a>.
3.1 knu 171: </p>
172: <p>
173: If you would like to use this CGI script on your own web server and
3.33 scop 174: CVS tree, download the latest version from <URL:<a
175: href="http://www.FreeBSD.org/projects/cvsweb.html">http://www.FreeBSD.org/projects/cvsweb.html</a>>.
3.1 knu 176: </p>
177: <p>
3.33 scop 178: Feel free to send any patches, suggestions and comments to the FreeBSD-CVSweb
179: mailing list at
180: <<a
181: href="mailto:freebsd-cvsweb\@FreeBSD.org">freebsd-cvsweb\@FreeBSD.org</a>>.
3.1 knu 182: </p>
183: EOT
184:
185: $short_instruction = <<EOT;
186: <p>
187: Click on a directory to enter that directory. Click on a file to display
3.32 scop 188: its revision history and to get a chance to display diffs between revisions.
3.1 knu 189: </p>
190: EOT
191:
3.42 scop 192: # Icons for the web UI. If ICON-URL is empty, the TEXT representation is
193: # used. If you do not want to have a tool tip for an icon, set TEXT empty.
194: # The width and height of the icon allow the browser to correctly display
195: # the table while still loading the icons. If these icons are too large,
196: # check out the "mini" versions in the icons/ directory; they have a
197: # width/height of 16/16.
3.26 knu 198:
3.42 scop 199: my $iconsdir = '/icons';
200:
3.51 scop 201: # format: TEXT ICON-URL width height
3.26 knu 202: %ICONS = (
3.51 scop 203: back => [('[BACK]', "$iconsdir/back.gif", 20, 22)],
204: dir => [('[DIR]', "$iconsdir/dir.gif", 20, 22)],
205: file => [('[TXT]', "$iconsdir/text.gif", 20, 22)],
206: binfile => [('[BINARY]', "$iconsdir/binary.gif", 20, 22)],
207: graph => [('[GRAPH]', "$iconsdir/minigraph.png", 16, 16)],
3.26 knu 208: );
3.15 knu 209: undef $iconsdir;
3.1 knu 210:
3.43 scop 211: # An URL where to find the CSS.
212: $cssurl = '/css/cvsweb.css';
213:
3.1 knu 214: # the length to which the last logentry should
215: # be truncated when shown in the directory view
216: $shortLogLen = 80;
217:
218: # Show author of last change
219: $show_author = 1;
220:
221: ##############
222: # table view for directories
223: ##############
224:
3.40 scop 225: # Cell padding for directory table
3.1 knu 226: $tablepadding = 2;
227:
228: #
229: # Modules in the repository that should not be displayed, either by default
230: # nor by explicit path specification.
231: #
3.27 knu 232: @HideModules = (
233: # "^my/secret/module",
234: );
235:
236: #
237: # Files matching these pathnames shouldn't be checked out with cvsweb,
238: # since they may contain sensitive information. Simple file name based
239: # filter. Often, the CVSROOT/passwd is exposed and some people tend
240: # to check in their .cvspass, though this is a bad idea. These files
241: # shouldn't be readable by default. Thanks to Damian Gryski to point
242: # this out.
3.36 scop 243: # Note that this affects only files, not directories.
3.27 knu 244: @ForbiddenFiles = (
245: "^CVSROOT/passwd\$", # CVSROOT/passwd should not be cvs add'ed, though
246: "/\\.cvspass\$", # Ditto. Just in case.
247: );
3.1 knu 248:
249: #
250: # Use CVSROOT/CVSROOT/descriptions for describing the directories/modules
251: # See INSTALL section 8
252: #
253: $use_descriptions = 0;
254:
255: ##############
256: # Human Readable Diff
257: ##############
258:
259: # (c) 1998 H. Zeller <zeller@think.de>
260: #
261: # Generates two columns of color encoded
262: # diff; much like xdiff or emacs-ediff mode.
263: #
264: # The diff-stuff is a piece of code I once made for
265: # cvs2html which is under GPL,
266: # see http://www.sslug.dk/cvs2html
267: # (c) 1997/98 Peter Toft <pto@sslug.imm.dtu.dk>
268: #
269: # some parameters to screw:
270: ##
271:
272: # make lines breakable so that the columns do not
273: # exceed the width of the browser
274: $hr_breakable = 1;
275:
3.4 knu 276: # give out function names in diffs
3.1 knu 277: # this just makes sense if we have C-files, otherwise
278: # diff's heuristic doesn't work well ..
279: # ( '-p' option to diff)
3.4 knu 280: $showfunc = 1;
3.1 knu 281:
282: # For each pair of regexps, files that match the first regexp will be diff'ed
283: # with an '-F' option with the second regexp.
3.4 knu 284: %funcline_regexp = (
3.26 knu 285: "\\.(4th|fr)\$" => "\\(^\\|[ \t]\\): ",
286: "\\.rb\$" => "^[\t ]*\\(class\\|module\\|def\\) ",
287: );
3.1 knu 288:
289: # ignore whitespaces for human readable diffs
290: # (indendation and stuff ..)
291: # ( '-w' option to diff)
3.7 knu 292: $hr_ignwhite = 0;
3.1 knu 293:
294: # ignore diffs which are caused by
295: # keyword-substitution like $Id - Stuff
296: # ( '-kk' option to rcsdiff)
297: $hr_ignkeysubst = 1;
298:
299: # the width of the textinput of the
300: # request-diff-form
301: $inputTextSize = 12;
302:
303: ##############
304: # Mime Types
305: ##############
306:
3.52 ! scop 307: # The MIME type lookup works like this:
! 308: # 1) Look up from %MTYPES below with the file name extension (suffix).
! 309: # 2) If not found, use the MIME::Types(3) module if it's available.
! 310: # 3) If not found, lookup from the $mime_types file (see below).
! 311: # 4) If not found, try %MTYPES{'*'}.
! 312: # 5) If not found, use 'application/octet-stream' if the file's keyword
! 313: # substitution mode is b (ie. the file was checked in as binary to CVS),
! 314: # 'text/plain' otherwise.
3.1 knu 315:
3.52 ! scop 316: # Quick MIME type lookup; maps filename extensions to MIME types.
! 317: # Add common mappings here for fast lookup. You can also use this
! 318: # to override MIME::Types(3) or the $mime_types file (see below).
3.1 knu 319: %MTYPES = (
3.26 knu 320: "html" => "text/html",
321: "shtml" => "text/html",
322: "gif" => "image/gif",
323: "jpeg" => "image/jpeg",
324: "jpg" => "image/jpeg",
325: "png" => "image/png",
326: "xpm" => "image/xpm",
3.52 ! scop 327: # "*" => "text/plain",
3.26 knu 328: );
3.52 ! scop 329:
! 330: # The traditional mime.types file, eg. the one from Apache is fine.
! 331: # See above where this gets used.
! 332: $mime_types = '/usr/local/etc/apache/mime.types';
3.11 knu 333:
334: # Charset for HTML output
3.13 knu 335: $charset = '';
3.26 knu 336:
3.13 knu 337: # e.g.
338: #$charset = $where =~ m,/ru[/_-], ? 'koi8-r'
339: # : $where =~ m,/zh[/_-], ? 'big5'
340: # : $where =~ m,/ja[/_-], ? 'x-euc-jp'
341: # : $where =~ m,/ko[/_-], ? 'x-euc-kr'
342: # : 'iso-8859-1';
3.29 knu 343:
344: # Output filter
345: $output_filter = '';
346:
347: # e.g.
348: ## unify/convert Japanese code into EUC-JP
349: #$output_filter= '/usr/local/bin/nkf -e';
3.1 knu 350:
351: ##############
352: # Misc
353: ##############
3.50 scop 354: # Allow annotation of files. See also @annotate_options below.
3.1 knu 355: $allow_annotate = 1;
356:
357: # allow pretty-printed version of files
358: $allow_markup = 1;
359:
3.31 knu 360: # allow extra hlink formatting (such as PR xrefs) in logs
361: $allow_log_extra = 1; # default: enabled
362:
363: # allow extra hlink formatting (such as PR xrefs) in directories
364: $allow_dir_extra = 1;
365:
366: # allow extra hlink formatting in source code/formatted diff views
367: $allow_source_extra = 1;
368:
3.1 knu 369: # allow compression with gzip
370: # of output if the Browser accepts
371: # it (HTTP_ACCEPT_ENCODING=gzip)
372: # [make sure to have gzip in the path]
3.16 knu 373: $allow_compress = 0;
3.1 knu 374:
375: # Make use of javascript functions.
376: # This way you can select one of your CVSroot
377: # without pressing 'Go' (.. if you do have more
378: # than one CVSROOT defined)
379: $use_java_script = 1;
380:
381: # open Download-Links in another window
382: $open_extern_window = 1;
383:
384: # The size of this extern window; this size option
385: # needs use_java_script to be defined
386: # just comment them if you don't want to have a fixed
387: # size
388: #$extern_window_width = 600;
389: #$extern_window_height = 440;
390:
391: # Edit Options
392: # Enable form to edit your options (hideattic,sortbydate)
393: # this isn't necessary if you've $dirtable defined 'cause
394: # this allows editing of all your options more intuitive
395: $edit_option_form = (not $dirtable);
396:
397: # If you have files which automatically refers to other files
398: # (such as HTML) then this allows you to browse the checked
399: # out files as if outside CVS.
400: $checkout_magic = 1;
401:
402: # Show last changelog message for sub directories
403: # The current implementation makes many assumptions and may show the
404: # incorrect file at some times. The main assumption is that the last
405: # modified file has the newest filedate. But some CVS operations
406: # touches the file without even when a new version is't checked in,
407: # and TAG based browsing essientially puts this out of order, unless
408: # the last checkin was on the same tag as you are viewing.
409: # Enable this if you like the feature, but don't rely on correct results.
410: $show_subdir_lastmod = 0;
411:
412: # Show CVS log when viewing file contents
413: $show_log_in_markup = 1;
414:
3.13 knu 415: # Preformat when viewing file contents. This should be turned off
416: # when you have files in the repository that are in a multibyte
417: # encoding which uses HTML special characters ([<>&"]) as part of a
418: # multi-byte character. (such as iso-2022-jp, ShiftJIS, etc.)
419: # Otherwise those files will get screwed up in markup.
420: $preformat_in_markup = '';
421:
3.1 knu 422: # Tabstop used to expand tabs in colored diffs. If undefined then
423: # tabs are always expanded to 8 spaces.
424: $tabstop = 8;
425:
426: # if you wish to display absolute times in your local timezone,
427: # then define mytz and fill in the strings for your standard and
428: # daylight time. Note that you must also make sure the system
429: # timezone is correctly set.
430: # @mytz=("EST", "EDT");
431:
432: # cvsweb is friendly to caches by indicating a suitable
433: # last-modified timestamp. Doing this uses slightly more
434: # CPU so you might want to disable it if you have a slow
435: # server
436: $use_moddate = 1;
437:
3.12 knu 438: # Allows downloading a tarball of the current directory if set.
439: # Bear in mind that this allows downloading a tarball of your entire
440: # repository, which can take a lot of time and disk space to create!
441: # If you enable this, you may need to make sure that cvsweb can write to
442: # CVSROOT/val-tags, due to a bug in cvs.
443: $allow_tar = '';
3.42 scop 444:
445: # Allows graphical representations of file logs with CvsGraph if set.
446: $allow_cvsgraph = $CMD{cvsgraph} ? 1 : 0;
447:
3.45 scop 448: # Maximum number of filenames to pass to rlog(1) in one command.
449: # If you see "Failed to spawn GNU rlog" errors with directories containing
450: # lots of files, experiment by setting this to different values and see if
451: # the error still occurs. A good value to start from would be eg. 200.
452: # Just comment this out if you're not bitten by the problem.
453: #$file_list_len = 200;
454:
3.42 scop 455: # Path to the CvsGraph configuration file. Only used if $allow_cvsgraph
456: # is true. Leave this empty or comment it out to make cvsgraph(1) use its
457: # default configuration file.
458: #$cvsgraph_config = "/etc/cvsgraph.conf";
3.13 knu 459:
460: # Options to pass to tar(1).
3.15 knu 461: @tar_options = qw();
3.26 knu 462:
3.13 knu 463: # e.g. @tar_options = qw(--ignore-failed-read);
464: # GNU tar has some useful options against unexpected errors.
3.47 scop 465: # Other useful options include "--owner=0" and "--group=0", see
466: # the tar(1) (or gtar(1)) manpage for details.
3.13 knu 467:
3.19 knu 468: # Options to pass to gzip(1) when compressing a tarball to download.
469: @gzip_options = qw();
3.26 knu 470:
3.19 knu 471: # e.g. @gzip_options = qw(-3);
3.25 knu 472: # Try lower compression level than 6 (default) if you want faster
473: # compression, or higher, for better compression.
474:
475: # Options to pass to zip(1) when compressing a zip archive to download.
3.47 scop 476: @zip_options = qw(-q);
3.26 knu 477:
3.25 knu 478: # e.g. @zip_options = qw(-3);
3.19 knu 479: # Try lower compression level than 6 (default) if you want faster
3.21 knu 480: # compression, or higher, for better compression.
3.19 knu 481:
3.13 knu 482: # Options to pass to cvs(1).
3.37 scop 483: # For cvs versions prior to 1.11, the '-l' option doesn't work; If you want
484: # working checkouts with an older cvs version, you'll have to make sure that
485: # the cvsweb user can read and write to CVSROOT/history.
3.35 scop 486: @cvs_options = qw(-lf);
3.19 knu 487:
3.47 scop 488: push @cvs_options, '-R' if ($^O eq 'freebsd' || $^O eq 'openbsd');
489: push @cvs_options, '-u' if ($^O eq 'netbsd');
3.26 knu 490:
3.19 knu 491: # Only FreeBSD's and OpenBSD's cvs(1) supports -R (read only access
492: # mode) option, which considerably speeds up checkouts over NFS.
3.38 scop 493: # A similar effect is provided by -u on NetBSD.
3.12 knu 494:
3.39 scop 495: # Options to pass to the 'cvs annotate' command, usually the normal
496: # @cvs_options are good enough here.
497: @annotate_options = @cvs_options;
498:
499: # To make annotate work against a read only repository, add -n, e.g.:
500: # @annotate_options = (@cvs_options, '-n');
3.48 scop 501:
502:
503: # Enables syntax highlighting using GNU Enscript if set.
504: # You will need GNU Enscript version 1.6.2 or newer for this to work.
505: #$allow_enscript = $CMD{enscript} ? 1 : 0;
506:
507: # Options to pass to enscript(1).
508: # Do not set the -q, --language, -o and --highlight options here.
509: # Most useful styles are probably emacs, emacs_verbose and msvc.
510: @enscript_options = qw(--style=emacs --color=1);
511:
512: # Enscript highlight rule to filename regex mappings. The set of useful
513: # mappings depends on what highlight rules the system has installed.
514: %enscript_types =
515: (
516: 'ada' => qr/\.ad(s|b|a)$/o,
517: 'asm' => qr/\.[Ss]$/o,
518: 'awk' => qr/\.awk$/o,
519: 'bash' => qr/\.(bash(_profile|rc)|inputrc)$/o,
520: 'c' => qr/\.(c|h)$/o,
521: 'changelog' => qr/^changelog$/io,
522: 'cpp' => qr/\.(c\+\+|C|H|cpp|cc|cxx)$/o,
523: 'csh' => qr/\.(csh(rc)?|log(in|out)|history)$/o,
524: 'elisp' => qr/\.e(l|macs)$/o,
525: 'fortran' => qr/\.[fF]$/o,
526: 'haskell' => qr/\.(l?h|l?g)s$/o,
527: 'html' => qr/\.x?html?$/o,
528: 'idl' => qr/\.idl$/o,
529: 'inf' => qr/\.inf$/io,
530: 'java' => qr/\.java$/o,
531: 'javascript' => qr/\.js$/o,
532: 'ksh' => qr/\.ksh$/o,
533: 'm4' => qr/\.m4$/o,
534: 'makefile' => qr/((GNU)?[Mm]akefile.*|\.(ma?ke?|am)$)/o,
535: 'matlab' => qr/\.m$/o,
536: 'nroff' => qr/\.man$/o,
537: 'pascal' => qr/\.p(as|p)?$/io,
538: 'perl' => qr/\.p(m|(er?)l)$/io,
539: 'postscript' => qr/\.e?ps$/io,
540: 'python' => qr/\.py$/o,
541: 'rfc' => qr/\b((rfc|draft)\..*\.txt)$/o,
542: 'scheme' => qr/\.(scm|scheme)$/o,
543: 'sh' => qr/\.sh$/o,
544: 'skill' => qr/\.il$/o,
545: 'sql' => qr/\.sql$/o,
546: 'states' => qr/\.st$/o,
547: 'synopsys' => qr/\.s(cr|yn(th)?)$/o,
548: 'tcl' => qr/\.tcl$/o,
549: 'tcsh' => qr/\.tcshrc$/o,
550: 'tex' => qr/\.tex$/o,
551: 'vba' => qr/\.vba$/o,
552: 'verilog' => qr/\.(v|vh)$/o,
553: 'vhdl' => qr/\.vhdl?$/o,
554: 'vrml' => qr/\.wrl$/o,
555: 'wmlscript' => qr/\.wmls(cript)?$/o,
556: 'zsh' => qr/\.(zsh(env|rc)|z(profile|log(in|out)))$/o,
557: );
3.39 scop 558:
3.12 knu 559: 1;
3.26 knu 560:
3.1 knu 561: #EOF
CVSweb