cvsweb.conf 17.1 KB
Newer Older
1
2
3
4
5
6
# -*-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>
7
8
#     2000-2002 A. MUSHA     <knu@FreeBSD.org>
#     2002      V. Skytt    <scop@FreeBSD.org>
9
10
#          based on work by Bill Fenner  <fenner@FreeBSD.org>
#
11
# $FreeBSD: projects/cvsweb/cvsweb.conf,v 1.36.2.3 2002/09/23 05:30:17 scop Exp $
12
# $Id: cvsweb.conf,v 1.6 2005-09-02 22:07:23 stoller Exp $
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 1.27 2001/08/01 09:48:39 knu Exp $
#
###

# Set the path for the following commands:
#   uname, cvs, rlog, rcsdiff
#   gzip (if you enable $allow_compress)
#   tar, rm, zip (if you enable $allow_tar)
$command_path = '/bin:/usr/bin:/usr/local/bin';

# Search the above directories for each command
for (qw(uname cvs rlog rcsdiff gzip tar rm zip)) {
	$CMD{$_} = search_path($_);
}

# The name of the operating system implementation
chomp($uname = `$CMD{uname}`);

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

# 'symbolic_name' => ['name_to_display', 'path_to_the_actual_repository']
# Listed in the order specified:
@CVSrepositories = (
	'top'   => ['My CVS Repository', '/usr/testbed/CVS'],
);

# This tree is enabled by default when
# you enter the page
$cvstreedefault = $CVSrepositories[2 * 0];    # The first one

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

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

	# hidecvsroot: Don't show the CVSROOT directory
	#   1      Hide CVSROOT directory
	#   0      Show CVSROOT directory
120
	"hidecvsroot" => "0",
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

	# hidenonreadable: Don't show entries which cannot be read
	#   1      Hide non-readable entries
	#   0      Show non-readable entries
	"hidenonreadable" => "1",
);

##############
# some layout stuff
##############

# The body-tag for directory views and logs
$body_tag = '<body text="#000000" bgcolor="#ffffff">';

# The body-tag for diffs and annotations
$body_tag_for_src = '<body text="#000000" bgcolor="#eeeeee">';

# Wanna have a logo on the page ?
# XXX: This is just a copy of the one from menu.php3, and has Utah-specific
# stuff hardcoded. Since it shouldn't run on other sites, seemed like a
# waste to spend to much time doing it in a more 'correct' way
$logo = '<table cellpadding=0 cellspacing=0 border=0 width=50%><tr>
            <td align=left valign=top width="0%">
             <table cellpadding=5 cellspacing=0 border=0 bgcolor="#880000">
              <tr>
                <td>
                 <b><font size=5 color=white face=Helvetica>
                        Emulab.Net
                    </font>
                 </b>
                </td>
              </tr>
             </table>
            </td>
            <td align=left valign=top width=0%>
                <table cellpadding=5 cellspacing=0 border=0
                         bgcolor=#ABABE0>
                  <tr>
                   <td nowrap>
                     <b>
                       <font size=5 face=helvetica color="#000000">
                            The Utah Network Testbed
                       </font>
                     </b>
                   </td>
                  <tr>
                </table>
            </td>
            <td align=left width=100%>
              <font size=5 face=helvetica>
                &nbsp;[<a href="https://www.emulab.net/index.php3">Home</a>]
              </font>
            </td>
          </tr>
          </table>
';

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

181
182
# 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>';
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200

# 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
display diffs between arbitrary revisions.
</p>
201
202
203
204
205
EOT

$long_tag = <<EOT;
<br><br><br>
<hr noshade>
206
<p>
207
<font size=-1>
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
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>
225
</font>
226
227
228
229
230
EOT

$short_instruction = <<EOT;
<p>
Click on a directory to enter that directory. Click on a file to display
231
its revision history and to get a chance to display diffs between revisions.
232
</p>
233
234
235
EOT
    
$license = <<EOT;
236
237
238
239
240
241
242
<p>
<b>Please remember that the Emulab
<a href="http://www.emulab.net/doc/docwrapper.php3?docname=LICENSE.txt">
<b>LICENSE</b></a> states that this source code is 1) for use only for
research and education, 2) cannot be used for commercial purposes,
and, 3) cannot be redistributed outside your research group.</b>
</p>
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
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 = "/cvsweb";

# 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)],
);
undef $iconsdir;

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

# 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');
$tablepadding = 2;

# Color of Header
$columnHeaderColorDefault = '#ffffcc';
$columnHeaderColorSorted  = '#ffcc66';

# 
# If you want to have colored borders 
# around each row, uncomment this
$tableBorderColor = '#cccccc';

#
# 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.
310
# Note that this affects only files, not directories.
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
@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;

# 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
$inputTextSize = 12;

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

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

# 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
%MTYPES = (
	"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
$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
# 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_annotate = 1;

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

436
437
438
439
440
441
442
443
444
# 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;

445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
# 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;

# Background color of logentry in markup
$markupLogColor = "#ffffff";

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

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

# Options to pass to tar(1).
@tar_options = qw(--ignore-failed-read);

# 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.
@gzip_options = qw();

# e.g. @gzip_options = qw(-3);
#      Try lower compression level than 6 (default) if you want faster
#      compression, or higher, for better compression.

# Options to pass to zip(1) when compressing a zip archive to download.
@zip_options = qw();

# e.g. @zip_options = qw(-3);
#      Try lower compression level than 6 (default) if you want faster
#      compression, or higher, for better compression.

# Options to pass to cvs(1).
545
546
547
# 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.
548
@cvs_options = qw(-f);
549
550

push @cvs_options, '-R' if ($uname eq 'FreeBSD' || $uname eq 'OpenBSD');
551
push @cvs_options, '-u' if ($uname eq 'NetBSD');
552
553
554

#      Only FreeBSD's and OpenBSD's cvs(1) supports -R (read only access
#      mode) option, which considerably speeds up checkouts over NFS.
555
556
557
558
559
560
561
562
#      A similar effect is provided by -u on NetBSD.

# Options to pass to the 'cvs annotate' command, usually the normal
# @cvs_options are good enough here.
@annotate_options = @cvs_options;

#      To make annotate work against a read only repository, add -n, e.g.:
#      @annotate_options = (@cvs_options, '-n');
563
564
565
566

1;

#EOF