# $FreeBSD$ #################################################################### #################################################################### # This file contains the default configuration for the CVSROOT # perl scripts. You are advised to override the configuration # in the cfg_local.pm file instead of here. # # WARNING: You are strongly advised to check for syntax errors # in this file before committing it. Use: perl -cw cfg.pm #################################################################### #################################################################### package cfg; use strict; use vars qw( $ADD_TO_LINE $AVAIL_FILE $CHECK_HEADERS $COMMITCHECK_EXTRA @COMMIT_HOSTS $COMMITTER $DEBUG $DIFF_BLOCK_TOTAL_LINES $EXCLUDE_FILE $FILE_PREFIX $IDHEADER $LAST_FILE @LOG_FILE_MAP $MAILADDRS $MAILBANNER $MAILCMD $MAIL_BRANCH_HDR $MAIL_ON_DIR_CREATION $MAIL_TRANSFORM $MINCVSVERSION $MAX_DIFF_SIZE $NO_DOS_LINEBREAKS $PID $PROG_CVS $PROG_MV %TEMPLATE_HEADERS $TMPDIR $TZ $UNEXPAND_RCSID $WARN_HEADERS $FEATURE_FREEZE ); use POSIX qw(tzset); my $CVSROOT = $ENV{'CVSROOT'} || die "Can't determine \$CVSROOT!"; ###################### ### global options ### ###################### ### WARNING: these aren't global across all the scripts yet. ### This is work in progress. # Process group id; used as a unique number in temporary file names. $PID = getpgrp(); # Debug level, 0 = off, 1 = on. $DEBUG = 0; # Feature freeze, 0 = off, 1 = on. $FEATURE_FREEZE = 0; # Location of temporary directory. $TMPDIR = "/tmp/"; # The filename prefix used for temporary files. $FILE_PREFIX = "#cvs.files.$PID"; # The file used to store the name of the last directory examined # when processing a multi-directory commit. $LAST_FILE = "$TMPDIR/$FILE_PREFIX.lastdir"; # System tools. $PROG_CVS = '/usr/bin/cvs'; # cvs(1) $PROG_MV = '/bin/mv'; # mv(1) # The username of the committer. $COMMITTER = $ENV{"LOGNAME"} || $ENV{'USER'} || getlogin || (getpwuid($<))[0] || sprintf("uid#%d",$<); # Time zone $TZ = undef; ################### ### commitcheck ### ################### # A list of hosts the it's ok to commit on. Useful if your committers # take local copies of the repository to work off-line. # (Empty if you don't want checks.) @COMMIT_HOSTS = (); # The minimum version of cvs that we will work with. $MINCVSVERSION = "1090900"; # 1.9.9p0 # Additional commit time checks. This is an anonymous subroutine # that gets called early on in the validation process to see whether # the committer is allowed to commit. It should return true if # everything is ok, otherwise the commit will be terminated. $COMMITCHECK_EXTRA = ""; ################### ### cvs_acls.pl ### ################### # The name of the avail file that defines who's allow to # commit to what. $AVAIL_FILE = "$CVSROOT/CVSROOT/avail"; ################ ### logcheck ### ################ # These are the optional headers that can be filled at the end of # each commit message. The associated value is a regular-expression # that is used to type-check the entered value. If a match fails # then the commit is rejected. (See rcstemplate). # # Make sure that these are also described in the rcstemplate to # make their usage clear to committers. # # In addition any of these entries that are left blank are removed # from the log at commit time. [Please note that for them to be # removed from the rcslog in the repository you need to be running # the version of cvs in the FreeBSD source tree. We've got a local # patch that causes cvs to read back the commit message after the # commit_prep.pl script has had a chance to modify it (via the # 'commitinfo' hook). ] %TEMPLATE_HEADERS = ( # "Reviewed by" => '.*', # "Submitted by" => '.*', # "Obtained from" => '.*', # "Approved by" => '.*', # "PR" => '.*', # "MFC after" => '\d+(\s+(days?|weeks?|months?))?', # "Security" => '.*', # "Feature safe" => '.*' ); ###################### ### commit_prep.pl ### ###################### # Check for instances of $IDHEADER in committed files, and # bomb out if they're not present, or corrupted. # Exclusions can be specified in the exclude file. # Currently $IDHEADER must be an instance of '$ CVSHeader $', or an alias # defined in CVSROOT/options. $CHECK_HEADERS = 0; $EXCLUDE_FILE = "$CVSROOT/CVSROOT/exclude"; # Make a header check a non-fatal error - just warn, don't exit. $WARN_HEADERS = 0; # WARNING: You will also need to be running the version of cvs that # the FreeBSD project is using; I believe that we have some local patches # that aren't in the main 'cvs' source. # Additionally you'll need to tweak CVSROOT/options if you wish to use your # own ident header. $IDHEADER = 'CVSHeader'; # Contract any instances of $IDHEADER in the source file before committing. # This is useful because it means that expanded headers aren't stored in # the repository as part of the delta. $UNEXPAND_RCSID = 0; # Check for DOS/WINDOWS/MAC linebreaks in the file, bomb out if present. # Exclusions can be specified in the exclude file. $NO_DOS_LINEBREAKS = 0; #################### ### log_accum.pl ### #################### # The command used to mail the log messages. # Usually something like '/usr/sbin/sendmail'. $MAILCMD = "/usr/sbin/sendmail"; # Email addresses of recipients of commit mail. $MAILADDRS = 'nobody'; # Extra banner added to the top of commit email. # Use "" if you don't want one. # i.e. $MAILBANNER = "Project X CVS Repository"; $MAILBANNER = ""; # Send mail when directories are created in the repository. # 0 = off, 1 = on. $MAIL_ON_DIR_CREATION = 0; # Include the names of the branches committed to in the commit email, # using this header (leave off the trailing ':'). # Use "" if you don't want one. $MAIL_BRANCH_HDR = "X-CVS-Branch"; # Include a 'To:' header in the generated commit mail? $ADD_TO_LINE = 1; # This is a way to post-process the log email before it is mailed. # Some people find it useful to use this to create URLs in their # commit mails to show the patch in a web page (using cvsweb) for # instance. # # The $MAIL_TRANSFORM variable should be "" if you don't want to # use this feature. Otherwise it should be a reference to a # subroutine that is passed the email message as a list, and returns # the modified list to the log_accum.pl script. The list has one # element per email line, with no trailing line feeds. This function # shouldn't add them. If $DEBUG is switched on the log_accum.pl # script will show the before and after on stdout at commit time. # # The example below shows a way of inserting links to cvsweb. $MAIL_TRANSFORM = ""; #$MAIL_TRANSFORM = sub { # add_cvsweb_entry("http://www.example.org/cgi-bin/cvsweb.cgi", @_); #}; # A copy of the commit summary is saved locally as well as being # emailed to the committers. The name of the local log is obtained # by performing a pattern match on the directory that the files are # in. The following map defines the file names and their associated # pattern match. They are checked in order. The name 'other' is # used if none of the patterns match. # # XXX The directory that the logs are placed in should be a # configuration option too. @LOG_FILE_MAP = ( 'CVSROOT' => '^CVSROOT/', 'doc' => '^doc/', 'user' => '^src/', 'other' => '.*' ); # Include diffs of not greater than this size in kbytes in the # commit mail for each file modified. (0 = off). $MAX_DIFF_SIZE = 0; # Maximum size of in lines of the diff block. $DIFF_BLOCK_TOTAL_LINES = 200; ###################### # EXAMPLES ###################### # A function for post-processing a log message # and outputing it with URLs to a cvsweb.cgi in. sub add_cvsweb_entry { my $url_to_cvsweb = shift; my @input = @_; my @output = (); # Skip down to the revision summary. while (1) { my $line = shift @input; last unless defined($line); push @output, $line; last if $line =~ /^\s*Revision\s*Changes\s*Path\s*$/; } # Add the url links my $skip = 0; foreach (@input) { # The revision block is terminated with an empty line. $skip = 1 if $_ =~ /^\s*$/; push @output, $_; next if $skip; my ($rev, $add, $sub, $file, $status) = split; $rev =~ /(?:(.*)\.)?([^\.]+)\.([^\.]+)$/; my ($base, $r1, $r2) = ($1, $2, $3); my $prevrev = ""; if ($r2 == 1) { $prevrev = $base; } else { $prevrev = "$base." if $base; $prevrev .= "$r1." . ($r2 - 1); } my $baseurl = "$url_to_cvsweb/$file"; my $extra; if (defined($status)) { $rev = $prevrev if $status =~ /dead/; $extra = "?rev=$rev&content-type=text/plain"; } else { $extra = ".diff?r1=$prevrev&r2=$rev&f=h"; } push @output, "$baseurl$extra"; } return @output; }; ###################################################################### # Load the local configuration file, that allows the entries in this # file to be overridden. ###################################################################### eval { require "$CVSROOT/CVSROOT/cfg_local.pm" } if -e "$CVSROOT/CVSROOT/cfg_local.pm"; warn $@ if $@; if (defined $TZ) { $ENV{'TZ'} = $TZ; } else { delete $ENV{'TZ'}; } tzset; 1; # Perl requires all modules to return true. Don't delete!!!! #end 1-5/+8 * Update to the 4 April version of the maildir patch which has thedougb2006-04-191-3/+3 * Provide better coverage for the maildir patch by adding both mydougb2006-03-221-2/+5 * Update the checksum of the maildir patch to a newer version whichdougb2006-03-221-3/+3 * Allow build to complete in WITHOUT_OPENSSL casedougb2006-01-251-4/+14 * In my last commit I accidentally deleted the maildir patch,dougb2005-11-241-0/+3 * Add SHA256 checksums to my portsdougb2005-11-241-2/+1 * Fix a problem with read-only files in the build directory.dougb2005-11-021-0/+3 * For the ports that I maintain, do the following as appropriate:dougb2005-10-291-1/+2 * Update the checksum info for the maildir patch. I had an old versiondougb2005-10-141-2/+2 * Add checksums for the maildir patches as welldougb2005-10-121-0/+2 * Update Pine and Pico to 4.64, the latest from UW. This version containsdougb2005-10-1210-165/+59 * Upgrade to the latest version, 4.63.dougb2005-06-262-6/+11 * Add maildir support, prompted by the PR but with a different solution.dougb2005-03-143-12/+14 * Update to PINE sources 4.62, the latest from UW. It contains manydougb2005-01-232-3/+3 * Revert 1.15, the fix has been included in PINE's sourcesdougb2005-01-231-9/+0 * Add a hunk to address the IP=6 compile problemdougb2004-08-231-2/+11 * This patch allows Pine to display color in a cons25 terminal withoutdougb2004-08-121-0/+15 * Update for version 4.61, a bugfix release.dougb2004-08-092-3/+3 * Regenerate for Pine 4.61dougb2004-08-091-8/+9 * This patch is no longer necessary for Pine 4.61dougb2004-08-091-29/+0 * Add an option to build with IPv6 capability.dougb2004-06-091-1/+5 * Add a patch to fix 8-bit character set conversions that were brokendougb2004-06-091-0/+29 * Add an LDAP_PREFIX line to fix the LDAP'ified build.dougb2004-05-251-0/+1 * Update to version 4.60, the latest from UW. Several new features and manydougb2004-05-234-15/+18 * Convert to USE_OPENLDAP. I have no idea if this will work, since I don'tdougb2004-05-231-4/+1 * Now that the SIZE thing has stabilized, add it to the ports I maintain.dougb2004-03-141-0/+1 * Per request of the "dynamic everything" folks, remove the -static fromdougb2004-02-081-8/+6 * Upgrade to 4.58, a security and bugfix release which addresses the following:dougb2003-09-1110-52/+52 * Upgrade to 4.56, the latest from UW. Several bug fixes and new features.dougb2003-06-022-2/+2 * Upgrade to 4.55, the latest from our friends at UW. Many improvements anddougb2003-04-192-3/+2 * * Don't do patch + sed for PREFIX-related changes, just use sed in one passdougb2003-03-058-249/+54 * Add copyright and readme files to portdocsdougb2003-03-051-0/+2 * Switch to Makefile COMMENTdougb2003-03-051-1/+0 * Properly use this file so that the message shows up for package users too.dougb2003-03-051-0/+5 * * Update descriptive text to latest stuff from the brochuredougb2003-03-051-13/+12 * This patch is against a file no longer used by FreeBSD.dougb2003-03-051-17/+0 * This download site answers, but the mirror hasn't updated to the latest version.dougb2003-02-281-1/+0 * Point dependencies on net/openldap to net/openldap12edwin2003-02-241-1/+1 * Update mirror sites, and remove a pointless variabledougb2003-01-231-2/+10 * Argh. Actually stop trying to install and package the pgp scripts.dougb2003-01-232-13/+6 * Upgrade to 4.53, the latest version from our friends at UW. Severaldougb2003-01-2215-330/+62 * This patch was necessary when committed, but I've been working with thedougb2003-01-221-19/+0 * These files have suffered from a lot of bitrot, and either don't work, ordougb2003-01-224-89/+0 * Upgrade to 4.51, mostly a bugfix release, but containing a few new features,dougb2002-12-184-25/+33 * Upgrade to 4.50, the latest from UW; which includes better threading support,dougb2002-11-266-98/+107 * When checking for PACKAGE_BUILDING, also check for BATCH.olgeni2002-02-271-1/+1 * Update 4.43 -> 4.44nectar2002-01-112-2/+2 * Upgrade to 4.43 which contains mostly bug fixes for the less oftendougb2001-12-094-81/+67 * I've already had 4 e-mails about this, so add a warning about keepingdougb2001-10-112-0/+8 * * Update to version 4.40, the latest and greatest from our friendsdougb2001-10-0520-216/+259 * portlint fixes, unbreak (optional) ldap support.dougb2001-06-09