diff --git a/en/cgi/cvsweb.cgi b/en/cgi/cvsweb.cgi index cd607d4842..b1c3cce8a4 100755 --- a/en/cgi/cvsweb.cgi +++ b/en/cgi/cvsweb.cgi @@ -1,3639 +1,3639 @@ #!/usr/bin/perl -wT # # cvsweb - a CGI interface to CVS trees. # # Written in their spare time by # Bill Fenner (original work) # extended by Henner Zeller , # Henrik Nordstrom # Ken Coar # Dick Balaska # Akinori MUSHA # Jens-Uwe Mager # # Based on: # * Bill Fenners cvsweb.cgi revision 1.28 available from: -# http://www.FreeBSD.org/cgi/cvsweb.cgi/www/en/cgi/cvsweb.cgi +# http://cvsweb.FreeBSD.org/www/en/cgi/cvsweb.cgi # # Copyright (c) 1996-1998 Bill Fenner # (c) 1998-1999 Henner Zeller # (c) 1999 Henrik Nordstrom # (c) 2000-2001 Akinori MUSHA # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $Id: cvsweb.cgi,v 1.76 2001-09-19 15:18:41 fenner Exp $ +# $Id: cvsweb.cgi,v 1.77 2001-11-07 16:32:11 sobomax Exp $ # $Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.82 2001/08/01 09:54:52 knu Exp $ -# $FreeBSD: www/en/cgi/cvsweb.cgi,v 1.75 2001/08/01 10:41:47 knu Exp $ +# $FreeBSD$ # ### require 5.000; use strict; use vars qw ( $cvsweb_revision $mydir $uname $config $allow_version_select $verbose @CVSrepositories @CVSROOT %CVSROOT %CVSROOTdescr %MIRRORS %DEFAULTVALUE %ICONS %MTYPES @DIFFTYPES %DIFFTYPES @LOGSORTKEYS %LOGSORTKEYS %alltags @tabcolors %fileinfo %tags @branchnames %nameprinted %symrev %revsym @allrevisions %date %author @revdisplayorder @revisions %state %difflines %log %branchpoint @revorder $prcgi @prcategories $re_prcategories $prkeyword $re_prkeyword $mancgi $checkoutMagic $doCheckout $scriptname $scriptwhere $where $pathinfo $Browser $nofilelinks $maycompress @stickyvars %funcline_regexp $is_mod_perl $is_links $is_lynx $is_w3m $is_msie $is_mozilla3 $is_textbased %input $query $barequery $sortby $bydate $byrev $byauthor $bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot $mimetype $charset $defaultTextPlain $defaultViewable $command_path %CMD $allow_compress $backicon $diricon $fileicon $fullname $newname $cvstreedefault $body_tag $body_tag_for_src $logo $defaulttitle $address $long_intro $short_instruction $shortLogLen $show_author $dirtable $tablepadding $columnHeaderColorDefault $columnHeaderColorSorted $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst $diffcolorHeading $diffcolorEmpty $diffcolorRemove $diffcolorChange $diffcolorAdd $diffcolorDarkChange $difffontface $difffontsize $inputTextSize $mime_types $allow_annotate $allow_markup $use_java_script $open_extern_window $extern_window_width $extern_window_height $edit_option_form $show_subdir_lastmod $show_log_in_markup $preformat_in_markup $v $navigationHeaderColor $tableBorderColor $markupLogColor $tabstop $state $annTable $sel $curbranch @HideModules @ForbiddenFiles $module $use_descriptions %descriptions @mytz $dwhere $moddate $use_moddate $has_zlib $gzip_open $allow_tar @tar_options @gzip_options @zip_options @cvs_options $LOG_FILESEPARATOR $LOG_REVSEPARATOR $tmpdir ); sub printDiffSelect($); sub printDiffLinks($$); sub printLogSortSelect($); sub findLastModifiedSubdirs(@); sub htmlify_sub(&$); sub htmlify($;$); sub spacedHtmlText($;$); sub link($$); sub revcmp($$); sub fatal($$); sub redirect($); sub safeglob($); sub search_path($); sub getMimeTypeFromSuffix($); sub head($;$); sub scan_directives(@); sub doAnnotate($$); sub doCheckout($$); sub cvswebMarkup($$$); sub viewable($); sub doDiff($$$$$$); sub getDirLogs($$@); sub readLog($;$); sub printLog($;$); sub doLog($); sub flush_diff_rows($$$$); sub human_readable_diff($); sub navigateHeader($$$$$); sub plural_write($$); sub readableTime($$); sub clickablePath($$); sub chooseCVSRoot(); sub chooseMirror(); sub fileSortCmp(); sub download_url($$;$); sub download_link($$$;$); sub toggleQuery($$); sub urlencode($); sub htmlquote($); sub htmlunquote($); sub hrefquote($); sub http_header(;$); sub html_header($); sub html_footer(); sub link_tags($); sub forbidden_file($); sub forbidden_module($); ##### Start of Configuration Area ######## delete $ENV{PATH}; $cvsweb_revision = '1.112' . '.' . ( split (/ /, q$Idaemons: /home/cvs/cvsweb/cvsweb.cgi,v 1.82 2001/08/01 09:54:52 knu Exp $ ))[2]; use File::Basename; ($mydir) = (dirname($0) =~ /(.*)/); # untaint # == EDIT this == # Locations to search for user configuration, in order: for ("$mydir/cvsweb.conf", '/usr/local/etc/cvsweb/cvsweb.conf') { if (defined($_) && -r $_) { $config = $_; last; } } # == Configuration defaults == # Defaults for configuration variables that shouldn't need # to be configured.. $allow_version_select = 1; ##### End of Configuration Area ######## ######## Configuration variables ######### # These are defined to allow checking with perl -cw @CVSrepositories = @CVSROOT = %CVSROOT = %MIRRORS = %DEFAULTVALUE = %ICONS = %MTYPES = %tags = %alltags = @tabcolors = %fileinfo = (); $cvstreedefault = $body_tag = $body_tag_for_src = $logo = $defaulttitle = $address = $long_intro = $short_instruction = $shortLogLen = $show_author = $dirtable = $tablepadding = $columnHeaderColorDefault = $columnHeaderColorSorted = $hr_breakable = $showfunc = $hr_ignwhite = $hr_ignkeysubst = $diffcolorHeading = $diffcolorEmpty = $diffcolorRemove = $diffcolorChange = $diffcolorAdd = $diffcolorDarkChange = $difffontface = $difffontsize = $inputTextSize = $mime_types = $allow_annotate = $allow_markup = $use_java_script = $open_extern_window = $extern_window_width = $extern_window_height = $edit_option_form = $show_subdir_lastmod = $show_log_in_markup = $v = $navigationHeaderColor = $tableBorderColor = $markupLogColor = $tabstop = $use_moddate = $moddate = $gzip_open = undef; $tmpdir = defined($ENV{TMPDIR}) ? $ENV{TMPDIR} : "/var/tmp"; $LOG_FILESEPARATOR = q/^={77}$/; $LOG_REVSEPARATOR = q/^-{28}$/; @DIFFTYPES = qw(h H u c s); @DIFFTYPES{@DIFFTYPES} = ( { 'descr' => 'colored', 'opts' => ['-u'], 'colored' => 1, }, { 'descr' => 'long colored', 'opts' => ['--unified=15'], 'colored' => 1, }, { 'descr' => 'unified', 'opts' => ['-u'], 'colored' => 0, }, { 'descr' => 'context', 'opts' => ['-c'], 'colored' => 0, }, { 'descr' => 'side by side', 'opts' => ['--side-by-side', '--width=164'], 'colored' => 0, }, ); @LOGSORTKEYS = qw(cvs date rev); @LOGSORTKEYS{@LOGSORTKEYS} = ( { 'descr' => 'Not sorted', }, { 'descr' => 'Commit date', }, { 'descr' => 'Revision', }, ); ##### End of configuration variables ##### $cgi_style::hsty_base = 'http://www.FreeBSD.org'; -$_ = q$FreeBSD: www/en/cgi/cvsweb.cgi,v 1.75 2001/08/01 10:41:47 knu Exp $; +$_ = q$FreeBSD$; @_ = split; $cgi_style::hsty_date = "@_[3,4]"; # warningproof 0 if $cgi_style::hsty_base ne $cgi_style::hsty_date; package cgi_style; require "$main::mydir/cgi-style.pl"; package main; ##### End of configuration variables ##### use Time::Local; use IPC::Open2; # Check if the zlib C library interface is installed, and if yes # we can avoid using the extra gzip process. eval { require Compress::Zlib; }; $has_zlib = !$@; $verbose = $v; $checkoutMagic = "~checkout~"; $pathinfo = defined($ENV{PATH_INFO}) ? $ENV{PATH_INFO} : ''; $where = $pathinfo; $doCheckout = ($where =~ m|^/$checkoutMagic/|); $where =~ s|^/$checkoutMagic/|/|; $where =~ s|^/||; $scriptname = defined($ENV{SCRIPT_NAME}) ? $ENV{SCRIPT_NAME} : ''; $scriptname =~ s|^/*|/|; # Let's workaround thttpd's stupidity.. if ($scriptname =~ m|/$|) { $pathinfo .= '/'; my $re = quotemeta $pathinfo; $scriptname =~ s/$re$//; } $scriptwhere = $scriptname; $scriptwhere .= '/' . urlencode($where); $where = '/' if ($where eq ''); $is_mod_perl = defined($ENV{MOD_PERL}); # in lynx, it it very annoying to have two links # per file, so disable the link at the icon # in this case: $Browser = $ENV{HTTP_USER_AGENT} || ''; $is_links = ($Browser =~ m`^Links `); $is_lynx = ($Browser =~ m`^Lynx/`i); $is_w3m = ($Browser =~ m`^w3m/`i); $is_msie = ($Browser =~ m`MSIE`); $is_mozilla3 = ($Browser =~ m`^Mozilla/[3-9]`); $is_textbased = ($is_links || $is_lynx || $is_w3m); $nofilelinks = $is_textbased; # newer browsers accept gzip content encoding # and state this in a header # (netscape did always but didn't state it) # It has been reported that these # braindamaged MS-Internet Exploders claim that they # accept gzip .. but don't in fact and # display garbage then :-/ # Turn off gzip if running under mod_perl and no zlib is available, # piping does not work as expected inside the server. $maycompress = (((defined($ENV{HTTP_ACCEPT_ENCODING}) && $ENV{HTTP_ACCEPT_ENCODING} =~ m`gzip`) || $is_mozilla3) && !$is_msie && !($is_mod_perl && !$has_zlib)); # put here the variables we need in order # to hold our state - they will be added (with # their current value) to any link/query string # you construct @stickyvars = qw(cvsroot hideattic sortby logsort f only_with_tag); if (-f $config) { require $config || &fatal( "500 Internal Error", sprintf( 'Error in loading configuration file: %s

%s
', $config, &htmlify($@) ) ); } else { &fatal("500 Internal Error", 'Configuration not found. Set the variable $config ' . 'in cvsweb.cgi to your cvsweb.conf configuration file first.' ); } undef %input; $query = $ENV{QUERY_STRING}; if (defined($query) && $query ne '') { foreach (split (/&/, $query)) { y/+/ /; s/%(..)/sprintf("%c", hex($1))/ge; # unquote %-quoted if (/(\S+)=(.*)/) { $input{$1} = $2 if ($2 ne ""); } else { $input{$_}++; } } } # For backwards compability, set only_with_tag to only_on_branch if set. $input{only_with_tag} = $input{only_on_branch} if (defined($input{only_on_branch})); $DEFAULTVALUE{'cvsroot'} = $cvstreedefault; foreach (keys %DEFAULTVALUE) { # replace not given parameters with the default parameters if (!defined($input{$_}) || $input{$_} eq "") { # Empty Checkboxes in forms return -- nothing. So we define a helper # variable in these forms (copt) which indicates that we just set # parameters with a checkbox if (!defined($input{"copt"})) { # 'copt' isn't defined --> empty input is not the result # of empty input checkbox --> set default $input{$_} = $DEFAULTVALUE{$_} if (defined($DEFAULTVALUE{$_})); } else { # 'copt' is defined -> the result of empty input checkbox # -> set to zero (disable) if default is a boolean (0|1). $input{$_} = 0 if (defined($DEFAULTVALUE{$_}) && ($DEFAULTVALUE{$_} eq "0" || $DEFAULTVALUE{$_} eq "1")); } } } $barequery = ""; my @barequery; foreach (@stickyvars) { # construct a query string with the sticky non default parameters set if (defined($input{$_}) && $input{$_} ne '' && !(defined($DEFAULTVALUE{$_}) && $input{$_} eq $DEFAULTVALUE{$_})) { push @barequery, join ('=', urlencode($_), urlencode($input{$_})); } } # is there any query ? if (@barequery) { $barequery = join ('&', @barequery); $query = "?$barequery"; $barequery = "&$barequery"; } else { $query = ""; } undef @barequery; if (defined($input{path})) { redirect("$scriptname/$input{path}$query"); } # get actual parameters $sortby = $input{"sortby"}; $bydate = 0; $byrev = 0; $byauthor = 0; $bylog = 0; $byfile = 0; if ($sortby eq "date") { $bydate = 1; } elsif ($sortby eq "rev") { $byrev = 1; } elsif ($sortby eq "author") { $byauthor = 1; } elsif ($sortby eq "log") { $bylog = 1; } else { $byfile = 1; } $defaultDiffType = $input{'f'}; $logsort = $input{'logsort'}; my @tmp = @CVSrepositories; my @pair; while (@pair = splice(@tmp, 0, 2)) { my ($key, $val) = @pair; my ($descr, $cvsroot) = @$val; next if !-d $cvsroot; $CVSROOTdescr{$key} = $descr; $CVSROOT{$key} = $cvsroot; push @CVSROOT, $key; } undef @tmp; undef @pair; ## Default CVS-Tree if (!defined($CVSROOT{$cvstreedefault})) { &fatal("500 Internal Error", "\$cvstreedefault points to a repository ($cvstreedefault) " . "not defined in %CVSROOT " . "(edit your configuration file $config)"); } # alternate CVS-Tree, configured in cvsweb.conf if ($input{'cvsroot'} && $CVSROOT{$input{'cvsroot'}}) { $cvstree = $input{'cvsroot'}; } else { $cvstree = $cvstreedefault; } $cvsroot = $CVSROOT{$cvstree}; # create icons out of description my $k; foreach $k (keys %ICONS) { no strict 'refs'; my ($itxt, $ipath, $iwidth, $iheight) = @{$ICONS{$k}}; if ($ipath) { ${"${k}icon"} = sprintf( '%s', hrefquote($ipath), htmlquote($itxt), $iwidth, $iheight) } else { ${"${k}icon"} = $itxt; } } undef $k; my $config_cvstree = "$config-$cvstree"; # Do some special configuration for cvstrees if (-f $config_cvstree) { require $config_cvstree || &fatal( "500 Internal Error", sprintf( 'Error in loading configuration file: %s

%s
', $config_cvstree, &htmlify($@) ) ); } undef $config_cvstree; $re_prcategories = '(?:' . join ('|', @prcategories) . ')' if @prcategories; $re_prkeyword = quotemeta($prkeyword) if defined($prkeyword); $prcgi .= '%s' if defined($prcgi) && $prcgi !~ /%s/; $fullname = "$cvsroot/$where"; $mimetype = &getMimeTypeFromSuffix($fullname); $defaultTextPlain = ($mimetype eq "text/plain"); $defaultViewable = $allow_markup && viewable($mimetype); my $rewrite = 0; if ($pathinfo =~ m|//|) { $pathinfo =~ y|/|/|s; $rewrite = 1; } if (-d $fullname && $pathinfo !~ m|/$|) { $pathinfo .= '/'; $rewrite = 1; } if (!-d $fullname && $pathinfo =~ m|/$|) { chop $pathinfo; $rewrite = 1; } if ($rewrite) { redirect($scriptname . urlencode($pathinfo) . $query); } undef $rewrite; if (!-d $cvsroot) { &fatal("500 Internal Error", '$CVSROOT not found!

The server on which the CVS tree lives is probably down. Please try again in a few minutes.' ); } # # See if the module is in our forbidden list. # $where =~ m:([^/]*):; $module = $1; if ($module && &forbidden_module($module)) { &fatal("403 Forbidden", "Access to $where forbidden."); } # # Handle tarball downloads before any headers are output. # if ($input{tarball}) { &fatal("403 Forbidden", "Downloading tarballs is prohibited.") unless $allow_tar; my ($module) = ($where =~ m,^/?(.*),); # untaint $module =~ s,/([^/]*)$,,; my ($ext) = ($1 =~ /(\.tar\.gz|\.zip)$/); my ($basedir) = ($module =~ m,([^/]+)$,); if ($basedir eq '' || $module eq '') { &fatal("500 Internal Error", "You cannot download the top level directory."); } my $tmpdir = "/tmp/.cvsweb.$$." . int(time); mkdir($tmpdir, 0700) or &fatal("500 Internal Error", "Unable to make temporary directory: $!"); my @fatal; my $tag = (exists $input{only_with_tag} && length $input{only_with_tag}) ? $input{only_with_tag} : "HEAD"; if (system $CMD{cvs}, @cvs_options, '-Qd', $cvsroot, 'export', '-r', $tag, '-d', "$tmpdir/$basedir", $module) { @fatal = ("500 Internal Error", "cvs co failure: $!: $module"); } else { $| = 1; # Essential to get the buffering right. if ($ext eq '.tar.gz') { print "Content-type: application/x-gzip\r\n\r\n"; system "$CMD{tar} @tar_options -cf - -C $tmpdir $basedir | $CMD{gzip} @gzip_options -c" and @fatal = ("500 Internal Error", "tar zc failure: $!: $basedir"); } elsif ($ext eq '.zip' && $CMD{zip}) { print "Content-type: application/zip\r\n\r\n"; system "cd $tmpdir && $CMD{zip} @zip_options -r - $basedir" and @fatal = ("500 Internal Error", "zip failure: $!: $basedir"); } else { @fatal = ("500 Internal Error", "unsupported file type"); } } system $CMD{rm}, '-rf', $tmpdir if -d $tmpdir; &fatal(@fatal) if @fatal; exit; } ############################## # View a directory ############################### if (-d $fullname) { my $dh = do { local (*DH); }; opendir($dh, $fullname) || &fatal("404 Not Found", "$where: $!"); my @dir = readdir($dh); closedir($dh); my @subLevelFiles = findLastModifiedSubdirs(@dir) if ($show_subdir_lastmod); getDirLogs($cvsroot, $where, @subLevelFiles); if ($where eq '/') { html_header($defaulttitle); $long_intro =~ s/!!CVSROOTdescr!!/$CVSROOTdescr{$cvstree}/g; print $long_intro; } else { html_header($where); print $short_instruction; } my $descriptions; if (($use_descriptions) && open(DESC, "<$cvsroot/CVSROOT/descriptions")) { while () { chomp; my ($dir, $description) = /(\S+)\s+(.*)/; $descriptions{$dir} = $description; } } print "

\n"; # give direct access to dirs if ($where eq '/') { chooseMirror (); chooseCVSRoot (); } else { print "

Current directory: ", &clickablePath($where, 0), "\n"; print "

Current tag: ", $input{only_with_tag}, "\n" if $input{only_with_tag}; } print "


\n"; # Using in this manner violates the HTML2.0 spec but # provides the results that I want in most browsers. Another # case of layout spooging up HTML. my $infocols = 0; if ($dirtable) { if (defined($tableBorderColor)) { # Can't this be done by defining the border for the inner table? print "
"; } print "\n"; $infocols++; printf '"; # do not display the other column-headers, if we do not have any files # with revision information: if (scalar(%fileinfo)) { $infocols++; printf '"; $infocols++; printf '"; if ($show_author) { $infocols++; printf '"; } $infocols++; printf '"; } elsif ($use_descriptions) { printf '\n"; } else { print "\n"; } my $dirrow = 0; my $i; lookingforattic: for ($i = 0 ; $i <= $#dir ; $i++) { if ($dir[$i] eq "Attic") { last lookingforattic; } } if (!$input{'hideattic'} && ($i <= $#dir) && opendir($dh, $fullname . "/Attic")) { splice(@dir, $i, 1, grep((s|^|Attic/|, !m|/\.|), readdir($dh))); closedir($dh); } my $hideAtticToggleLink = $input{'hideattic'} ? '' : &link('[Hide]', sprintf('./%s#dirlist', &toggleQuery("hideattic"))); # Sort without the Attic/ pathname. # place directories first my $attic; my $url; my $fileurl; my $filesexists; my $filesfound; foreach (sort { &fileSortCmp } @dir) { if ($_ eq '.') { next; } # ignore CVS lock and stale NFS files next if (/^#cvs\.|^,|^\.nfs/); # Check whether to show the CVSROOT path next if ($input{'hidecvsroot'} && ($_ eq 'CVSROOT')); # Check whether the module is in the restricted list next if ($_ && &forbidden_module($_)); # Ignore non-readable files next if ($input{'hidenonreadable'} && !(-r "$fullname/$_")); if (s|^Attic/||) { $attic = " (in the Attic) " . $hideAtticToggleLink; } else { $attic = ""; } if ($_ eq '..' || -d "$fullname/$_") { next if ($_ eq '..' && $where eq '/'); my ($rev, $date, $log, $author, $filename); ($rev, $date, $log, $author, $filename) = @{$fileinfo{$_}} if (defined($fileinfo{$_})); printf '\n"; } else { print "
\n"; } $dirrow++; } elsif (s/,v$//) { $fileurl = ($attic ? "Attic/" : "") . urlencode($_); $url = './' . $fileurl . $query; my $rev = ''; my $date = ''; my $log = ''; my $author = ''; $filesexists++; next if (!defined($fileinfo{$_})); ($rev, $date, $log, $author) = @{$fileinfo{$_}}; $filesfound++; printf '" if ($dirtable); print(($dirtable) ? "" : "
"); $dirrow++; } print "\n"; } if ($dirtable && defined($tableBorderColor)) { print "
', $byfile ? $columnHeaderColorSorted : $columnHeaderColorDefault; if ($byfile) { print 'File'; } else { print &link( 'File', sprintf( './%s#dirlist', &toggleQuery("sortby", "file") ) ); } print "', $byrev ? $columnHeaderColorSorted : $columnHeaderColorDefault; if ($byrev) { print 'Rev.'; } else { print &link( 'Rev.', sprintf( './%s#dirlist', &toggleQuery("sortby", "rev") ) ); } print "', $bydate ? $columnHeaderColorSorted : $columnHeaderColorDefault; if ($bydate) { print 'Age'; } else { print &link( 'Age', sprintf( './%s#dirlist', &toggleQuery("sortby", "date") ) ); } print "', $byauthor ? $columnHeaderColorSorted : $columnHeaderColorDefault; if ($byauthor) { print 'Author'; } else { print &link( 'Author', sprintf( './%s#dirlist', &toggleQuery( "sortby", "author" ) ) ); } print "', $bylog ? $columnHeaderColorSorted : $columnHeaderColorDefault; if ($bylog) { print 'Last log entry'; } else { print &link( 'Last log entry', sprintf( './%s#dirlist', &toggleQuery("sortby", "log") ) ); } print "', $columnHeaderColorDefault; print "Description"; $infocols++; } print "
', $tabcolors[$dirrow % 2] if $dirtable; if ($_ eq '..') { $url = "../$query"; if ($nofilelinks) { print $backicon; } else { print &link($backicon, $url); } print " ", &link("Parent Directory", $url); } else { $url = './' . urlencode($_) . "/$query"; print ""; if ($nofilelinks) { print $diricon; } else { print &link($diricon, $url); } print " ", &link("$_/", $url), $attic; if ($_ eq "Attic") { print "  "; print &link( "[Don't hide]", sprintf( './%s#dirlist', &toggleQuery( "hideattic") ) ); } } # Show last change in dir if ($filename) { print "  " if ($dirtable); if ($date) { print " ", readableTime(time() - $date, 0), ""; } if ($show_author) { print " " if ($dirtable); print $author; } print " " if ($dirtable); $filename =~ s%^[^/]+/%%; print "$filename/$rev"; print "
" if ($dirtable); if ($log) { print " ", &htmlify( substr($log, 0, $shortLogLen)); if (length $log > 80) { print "..."; } print ""; } } else { my ($dwhere) = ($where ne "/" ? $where : "") . $_; if ($use_descriptions && defined $descriptions{$dwhere}) { print "
 " if $dirtable; print $descriptions{$dwhere}; } elsif ($dirtable && $infocols > 1) { # close the row with the appropriate number of # columns, so that the vertical seperators are visible my ($cols) = $infocols; while ($cols > 1) { print " "; $cols--; } } } if ($dirtable) { print "
', $tabcolors[$dirrow % 2] if $dirtable; print ""; if ($nofilelinks) { print $fileicon; } else { print &link($fileicon, $url); } print " ", &link($_, $url), $attic; print " " if ($dirtable); download_link($fileurl, $rev, $rev, $defaultViewable ? "text/x-cvsweb-markup" : undef); print " " if ($dirtable); if ($date) { print " ", readableTime(time() - $date, 0), ""; } if ($show_author) { print " " if ($dirtable); print $author; } print " " if ($dirtable); if ($log) { print " ", &htmlify(substr($log, 0, $shortLogLen)); if (length $log > 80) { print "..."; } print ""; } print "
"; } print($dirtable == 1 ? "
\n" : "
\n"); if ($filesexists && !$filesfound) { print "

NOTE: There are $filesexists files, but none matches the current tag ($input{only_with_tag})\n"; } if ($input{only_with_tag} && (!%tags || !$tags{$input{only_with_tag}})) { %tags = %alltags } if (scalar %tags || $input{only_with_tag} || $edit_option_form || defined($input{"options"})) { print "


"; } if (scalar %tags || $input{only_with_tag}) { print "
\n"; foreach my $var (@stickyvars) { print "\n" if (defined($input{$var}) && (!defined($DEFAULTVALUE{$var}) || $input{$var} ne $DEFAULTVALUE{$var}) && $input{$var} ne "" && $var ne "only_with_tag"); } print "Show only files with tag:\n"; print "\n"; print " Module path or alias:\n"; printf "\n", htmlquote($where); print "\n"; print "
\n"; } if ($allow_tar) { my ($basefile) = ($where =~ m,(?:.*/)?([^/]+),); if (defined($basefile) && $basefile ne '') { print "
\n", "
Download this directory in "; # Mangle the filename so browsers show a reasonable # filename to download. print &link("tarball", "./$basefile.tar.gz$query" . ($query ? "&" : "?") . "tarball=1"); if ($CMD{zip}) { print " or ", &link("zip archive", "./$basefile.zip$query" . ($query ? "&" : "?") . "tarball=1"); } print "
"; } } my $formwhere = $scriptwhere; $formwhere =~ s|Attic/?$|| if ($input{'hideattic'}); if ($edit_option_form || defined($input{"options"})) { print "
\n"; print "\n"; if ($cvstree ne $cvstreedefault) { print "\n"; } print "
"; print ""; print ""; print ""; print ""; print "\n"; print "
Preferences
Sort files by Sort log by: "; printLogSortSelect(0); print "
Diff format: "; printDiffSelect(0); print "Show Attic files: "; print "
"; print "
\n"; } print &html_footer; print "\n"; } ############################### # View Files ############################### elsif (-f $fullname . ',v') { if (defined($input{'rev'}) || $doCheckout) { &doCheckout($fullname, $input{'rev'}); gzipclose(); exit; } if (defined($input{'annotate'}) && $allow_annotate) { &doAnnotate($input{'annotate'}); gzipclose(); exit; } if (defined($input{'r1'}) && defined($input{'r2'})) { &doDiff( $fullname, $input{'r1'}, $input{'tr1'}, $input{'r2'}, $input{'tr2'}, $input{'f'} ); gzipclose(); exit; } print("going to dolog($fullname)\n") if ($verbose); &doLog($fullname); ############################## # View Diff ############################## } elsif ($fullname =~ s/\.diff$// && -f $fullname . ",v" && $input{'r1'} && $input{'r2'}) { # $where-diff-removal if 'cvs rdiff' is used # .. but 'cvs rdiff'doesn't support some options # rcsdiff does (-w and -p), so it is disabled # $where =~ s/\.diff$//; # Allow diffs using the ".diff" extension # so that browsers that default to the URL # for a save filename don't save diff's as # e.g. foo.c &doDiff( $fullname, $input{'r1'}, $input{'tr1'}, $input{'r2'}, $input{'tr2'}, $input{'f'} ); gzipclose(); exit; } elsif (($newname = $fullname) =~ s|/([^/]+)$|/Attic/$1| && -f $newname . ",v") { # The file has been removed and is in the Attic. # Send a redirect pointing to the file in the Attic. (my $newplace = $scriptwhere) =~ s|/([^/]+)$|/Attic/$1|; if ($ENV{QUERY_STRING} ne "") { redirect("${newplace}?$ENV{QUERY_STRING}"); } else { redirect($newplace); } exit; } elsif (0 && (my @files = &safeglob($fullname . ",v"))) { http_header("text/plain"); print "You matched the following files:\n"; print join ("\n", @files); # Find the tags from each file # Display a form offering diffs between said tags } else { my $fh = do { local (*FH); }; my ($xtra, $module); # Assume it's a module name with a potential path following it. $xtra = (($module = $where) =~ s|/.*||) ? $& : ''; # Is there an indexed version of modules? if (open($fh, "< $cvsroot/CVSROOT/modules")) { while (<$fh>) { if (/^(\S+)\s+(\S+)/o && $module eq $1 && -d "$cvsroot/$2" && $module ne $2) { redirect("$scriptname/$2$xtra$query"); } } } &fatal("404 Not Found", "$where: no such file or directory"); } gzipclose(); ## End MAIN sub printDiffSelect($) { my ($use_java_script) = @_; my $f = $input{'f'}; print '"; } sub printLogSortSelect($) { my ($use_java_script) = @_; print '"; } sub findLastModifiedSubdirs(@) { my (@dirs) = @_; my ($dirname, @files); foreach $dirname (@dirs) { next if ($dirname eq "."); next if ($dirname eq ".."); my ($dir) = "$fullname/$dirname"; next if (!-d $dir); my ($lastmod) = undef; my ($lastmodtime) = undef; my $dh = do { local (*DH); }; opendir($dh, $dir) || next; my (@filenames) = readdir($dh); closedir($dh); foreach my $filename (@filenames) { $filename = "$dirname/$filename"; my ($file) = "$fullname/$filename"; next if ($filename !~ /,v$/ || !-f $file); $filename =~ s/,v$//; my $modtime = -M $file; if (!defined($lastmod) || $modtime < $lastmodtime) { $lastmod = $filename; $lastmodtime = $modtime; } } push (@files, $lastmod) if (defined($lastmod)); } return @files; } sub htmlify_sub(&$) { (my $proc, local $_) = @_; my @a = split (m`(]+>[^<]*)`i); my $linked; my $result = ''; while (($_, $linked) = splice(@a, 0, 2)) { &$proc(); $result .= $_ if defined($_); $result .= $linked if defined($linked); } $result; } sub htmlify($;$) { (local $_, my $extra) = @_; $_ = htmlquote($_); # get URL's as link s{ (http|ftp|https)://\S+ }{ &link($&, htmlunquote($&)) }egx; # get e-mails as link $_ = htmlify_sub { s< [\w+=\-.!]+@[\w\-]+(\.[\w\-]+)+ >< &link($&, "mailto:$&") >egix; } $_; if ($extra) { # get PR #'s as link: "PR#nnnn" "PR: nnnn, ..." "PR nnnn, ..." "bin/nnnn" if (defined($prcgi) && defined($re_prcategories) && defined($re_prkeyword)) { my $prev; do { $prev = $_; $_ = htmlify_sub { s{ (\b$re_prkeyword[:\#]?\s* (?: \#? \d+[,\s]\s* )* \#?) (\d+)\b }{ $1 . &link($2, sprintf($prcgi, $2)) }egix; } $_; } while ($_ ne $prev); $_ = htmlify_sub { s{ (\b$re_prcategories/(\d+)\b) }{ &link($1, sprintf($prcgi, $2)) }egox; } $_; } # get manpage specs as link: "foo.1" "foo(1)" if (defined($mancgi)) { $_ = htmlify_sub { s{ (\b([a-zA-Z][\w.]+) (?: \( ([0-9n]) \)\B | \.([0-9n])\b ) ) }{ &link($1, sprintf($mancgi, defined($3) ? $3 : $4, $2)) }egx; } $_; } } $_; } sub spacedHtmlText($;$) { local $_ = $_[0]; my $ts = $_[1] || $tabstop; # Cut trailing spaces and tabs s/[ \t]+$//; if (defined($ts)) { # Expand tabs 1 while s/\t+/' ' x (length($&) * $ts - length($`) % $ts)/e } # replace and (\001 is to protect us from htmlify) # gzip can make excellent use of this repeating pattern :-) if ($hr_breakable) { # make every other space 'breakable' s/ / \001nbsp;/g; # 2 * # leave single space as it is } else { s/ /\001nbsp;/g; } $_ = htmlify($_); # unescape y/\001/&/; return $_; } sub link($$) { my ($name, $url) = @_; $url =~ s/:/sprintf("%%%02x", ord($&))/eg if $url =~ /^[^a-z]/; # relative sprintf '%s', hrefquote($url), $name; } sub revcmp($$) { my ($rev1, $rev2) = @_; # make no comparison for a tag or a branch return 0 if $rev1 =~ /[^\d.]/ || $rev2 =~ /[^\d.]/; my (@r1) = split (/\./, $rev1); my (@r2) = split (/\./, $rev2); my ($a, $b); while (($a = shift (@r1)) && ($b = shift (@r2))) { if ($a != $b) { return $a <=> $b; } } if (@r1) { return 1; } if (@r2) { return -1; } return 0; } sub fatal($$) { my ($errcode, $errmsg) = @_; if ($is_mod_perl) { Apache->request->status((split (/ /, $errcode))[0]); } else { print "Status: $errcode\r\n"; } html_header("Error"); print "Error: $errmsg\n"; print &html_footer; exit(1); } sub redirect($) { my ($url) = @_; if ($is_mod_perl) { Apache->request->status(301); Apache->request->header_out(Location => $url); } else { print "Status: 301 Moved\r\n"; print "Location: $url\r\n"; } html_header("Moved"); print "This document is located ", &link('here', $url), "\n"; print &html_footer; exit(1); } sub safeglob($) { my ($filename) = @_; my ($dirname); my (@results); my $dh = do { local (*DH); }; ($dirname = $filename) =~ s|/[^/]+$||; $filename =~ s|.*/||; if (opendir($dh, $dirname)) { my $glob = $filename; my $t; # transform filename from glob to regex. Deal with: # [, {, ?, * as glob chars # make sure to escape all other regex chars $glob =~ s/([\.\(\)\|\+])/\\$1/g; $glob =~ s/\*/.*/g; $glob =~ s/\?/./g; $glob =~ s/{([^}]+)}/($t = $1) =~ s-,-|-g; "($t)"/eg; foreach (readdir($dh)) { if (/^${glob}$/) { push (@results, "$dirname/" . $_); } } closedir($dh); } @results; } sub search_path($) { my ($command) = @_; my $d; for $d (split (/:/, $command_path)) { return "$d/$command" if -x "$d/$command"; } ''; } sub getMimeTypeFromSuffix($) { my ($fullname) = @_; my ($mimetype, $suffix); my $fh = do { local (*FH); }; ($suffix = $fullname) =~ s/^.*\.([^.]*)$/$1/; $mimetype = $MTYPES{$suffix}; $mimetype = $MTYPES{'*'} if (!$mimetype); if (!$mimetype && -f $mime_types) { # okey, this is something special - search the # mime.types database open($fh, "<$mime_types"); while (<$fh>) { if ($_ =~ /^\s*(\S+\/\S+).*\b$suffix\b/) { $mimetype = $1; last; } } close($fh); } # okey, didn't find anything useful .. if (!($mimetype =~ /\S\/\S/)) { $mimetype = "text/plain"; } return $mimetype; } ############################### # read first lines like head(1) ############################### sub head($;$) { my $fh = $_[0]; my $linecount = $_[1] || 10; my @buf; if ($linecount > 0) { my $i; for ($i = 0 ; !eof($fh) && $i < $linecount ; $i++) { push @buf, scalar <$fh>; } } else { @buf = <$fh>; } @buf; } ############################### # scan vim and Emacs directives ############################### sub scan_directives(@) { my $ts = undef; for (@_) { $ts = $1 if /\b(?:ts|tabstop|tab-width)[:=]\s*([1-9]\d*)\b/; } ('tabstop' => $ts); } ############################### # show Annotation ############################### sub doAnnotate($$) { my ($rev) = @_; my ($pid); my ($pathname, $filename); my $reader = do { local (*FH); }; my $writer = do { local (*FH); }; # make sure the revisions are wellformed, for security # reasons .. if ($rev =~ /[^\w.]/) { &fatal("404 Not Found", "Malformed query \"$ENV{QUERY_STRING}\""); } if (&forbidden_file($fullname)) { &fatal("403 Forbidden", "Access forbidden. This file is mentioned in \@ForbiddenFiles" ); return; } ($pathname = $where) =~ s/(Attic\/)?[^\/]*$//; ($filename = $where) =~ s/^.*\///; # this seems to be necessary $| = 1; $| = 0; # Flush # this annotate version is based on the # cvs annotate-demo Perl script by Cyclic Software # It was written by Cyclic Software, http://www.cyclic.com/, and is in # the public domain. # we could abandon the use of rlog, rcsdiff and co using # the cvsserver in a similiar way one day (..after rewrite) $pid = open2($reader, $writer, $CMD{cvs}, @cvs_options, "server") || fatal("500 Internal Error", "Fatal Error - unable to open cvs for annotation"); # OK, first send the request to the server. A simplified example is: # Root /home/kingdon/zwork/cvsroot # Argument foo/xx # Directory foo # /home/kingdon/zwork/cvsroot/foo # Directory . # /home/kingdon/zwork/cvsroot # annotate # although as you can see there are a few more details. print $writer "Root $cvsroot\n"; print $writer "Valid-responses ok error Valid-requests Checked-in Updated Merged Removed M E\n"; # Don't worry about sending valid-requests, the server just needs to # support "annotate" and if it doesn't, there isn't anything to be done. print $writer "UseUnchanged\n"; print $writer "Argument -r\n"; print $writer "Argument $rev\n"; print $writer "Argument $where\n"; # The protocol requires us to fully fake a working directory (at # least to the point of including the directories down to the one # containing the file in question). # So if $where is "dir/sdir/file", then @dirs will be ("dir","sdir","file") my @dirs = split ('/', $where); my $path = ""; foreach (@dirs) { if ($path eq "") { # In our example, $_ is "dir". $path = $_; } else { print $writer "Directory $path\n"; print $writer "$cvsroot/$path\n"; # In our example, $_ is "sdir" and $path becomes "dir/sdir" # And the next time, "file" and "dir/sdir/file" (which then gets # ignored, because we don't need to send Directory for the file). $path .= "/$_"; } } # And the last "Directory" before "annotate" is the top level. print $writer "Directory .\n"; print $writer "$cvsroot\n"; print $writer "annotate\n"; # OK, we've sent our command to the server. Thing to do is to # close the writer side and get all the responses. If "cvs server" # were nicer about buffering, then we could just leave it open, I think. close($writer) || die "cannot close: $!"; http_header(); navigateHeader($scriptwhere, $pathname, $filename, $rev, "annotate"); print "

Annotation of $pathname$filename, Revision $rev

\n"; # Ready to get the responses from the server. # For example: # E Annotations for foo/xx # E *************** # M 1.3 (kingdon 06-Sep-97): hello # ok my ($lineNr) = 0; my ($oldLrev, $oldLusr) = ("", ""); my ($revprint, $usrprint); if ($annTable) { print "\n"; } else { print "
";
 	}
 
 	# prefetch several lines
 	my @buf = head($reader);
 
 	my %d = scan_directives(@buf);
 
 	while (@buf || !eof($reader)) {
 		$_ = @buf ? shift @buf : <$reader>;
 
 		my @words = split;
 
 		# Adding one is for the (single) space which follows $words[0].
 		my $rest = substr($_, length($words[0]) + 1);
 		if ($words[0] eq "E") {
 			next;
 		} elsif ($words[0] eq "M") {
 			$lineNr++;
 			(my $lrev = substr($_, 2,  13)) =~ y/ //d;
 			(my $lusr = substr($_, 16, 9))  =~ y/ //d;
 			my $line = substr($_, 36);
 			my $isCurrentRev = ($rev eq $lrev);
 
 			# we should parse the date here ..
 			if ($lrev eq $oldLrev) {
 				$revprint = sprintf('%-8s', '');
 			} else {
 				$revprint = sprintf('%-8s', $lrev);
 				$revprint =~
 				    s`\S+`&link($&, "$scriptwhere$query#rev$&")`e
 				    ;    # `
 				$oldLusr = '';
 			}
 
 			if ($lusr eq $oldLusr) {
 				$usrprint = '';
 			} else {
 				$usrprint = $lusr;
 			}
 			$oldLrev = $lrev;
 			$oldLusr = $lusr;
 
 			# Set bold for text-based browsers only - graphical
 			# browsers show bold fonts a bit wider than regular fonts,
 			# so it looks irregular.
 			print "" if ($isCurrentRev && $is_textbased);
 
 			printf "%s%s %-8s %4d:", $revprint,
 			    $isCurrentRev ? '!' : ' ', $usrprint, $lineNr;
 			print spacedHtmlText($line, $d{'tabstop'});
 
 			print "" if ($isCurrentRev && $is_textbased);
 		} elsif ($words[0] eq "ok") {
 
 			# We could complain about any text received after this, like the
 			# CVS command line client.  But for simplicity, we don't.
 		} elsif ($words[0] eq "error") {
 			fatal("500 Internal Error",
 				"Error occured during annotate: $_");
 		}
 	}
 
 	if ($annTable) {
 		print "
"; } else { print ""; } close($reader) || warn "cannot close: $!"; wait; } ############################### # make Checkout ############################### sub doCheckout($$) { my ($fullname, $rev) = @_; my ($mimetype, $revopt); my $fh = do { local (*FH); }; if ($rev eq 'HEAD' || $rev eq '.') { $rev = undef; } # make sure the revisions a wellformed, for security # reasons .. if (defined($rev) && $rev =~ /[^\w.]/) { &fatal("404 Not Found", "Malformed query \"$ENV{QUERY_STRING}\""); } if (&forbidden_file($fullname)) { &fatal("403 Forbidden", "Access forbidden. This file is mentioned in \@ForbiddenFiles" ); return; } # get mimetype if (defined($input{"content-type"}) && ($input{"content-type"} =~ /\S\/\S/)) { $mimetype = $input{"content-type"} } else { $mimetype = &getMimeTypeFromSuffix($fullname); } if (defined($rev)) { $revopt = "-r$rev"; if ($use_moddate) { readLog($fullname, $rev); $moddate = $date{$rev}; } } else { $revopt = "-rHEAD"; if ($use_moddate) { readLog($fullname); $moddate = $date{$symrev{HEAD}}; } } ### just for the record: ### 'cvs co' seems to have a bug regarding single checkout of ### directories/files having spaces in it; ### this is an issue that should be resolved on cvs's side # # Safely for a child process to read from. if (!open($fh, "-|")) { # child # chdir to $tmpdir before to avoid non-readable cgi-bin directories chdir($tmpdir); open(STDERR, ">&STDOUT"); # Redirect stderr to stdout exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where); } if (eof($fh)) { &fatal("404 Not Found", "$where is not (any longer) pertinent"); } #=================================================================== #Checking out squid/src/ftp.c #RCS: /usr/src/CVS/squid/src/ftp.c,v #VERS: 1.1.1.28.6.2 #*************** # Parse CVS header my ($revision, $filename, $cvsheader); $filename = ""; while (<$fh>) { last if (/^\*\*\*\*/); $revision = $1 if (/^VERS: (.*)$/); if (/^Checking out (.*)$/) { $filename = $1; $filename =~ s/^\.\/*//; } $cvsheader .= $_; } if ($filename ne $where) { &fatal("500 Internal Error", "Unexpected output from cvs co: $cvsheader"); } $| = 1; if ($mimetype eq "text/x-cvsweb-markup") { &cvswebMarkup($fh, $fullname, $revision); } else { http_header($mimetype); print <$fh>; } close($fh); } sub cvswebMarkup($$$) { my ($filehandle, $fullname, $revision) = @_; my ($pathname, $filename); ($pathname = $where) =~ s/(Attic\/)?[^\/]*$//; ($filename = $where) =~ s/^.*\///; my ($fileurl) = urlencode($filename); http_header(); navigateHeader($scriptwhere, $pathname, $filename, $revision, "view"); print "
"; print "
"; print "File: ", &clickablePath($where, 1); print " ("; &download_link($fileurl, $revision, "download"); print ")"; if (!$defaultTextPlain) { print " ("; &download_link($fileurl, $revision, "as text", "text/plain"); print ")"; } print "
\n"; if ($show_log_in_markup) { readLog($fullname); #,$revision); printLog($revision, 0); } else { print "Version: $revision
\n"; print "Tag: ", $input{only_with_tag}, "
\n" if $input{only_with_tag}; } print "
"; my $url = download_url($fileurl, $revision, $mimetype); print "
"; if ($mimetype =~ /^image/) { printf '
', hrefquote("$url$barequery"); } elsif ($mimetype =~ m%^application/pdf%) { printf '
', hrefquote("$url$barequery"); } elsif ($preformat_in_markup) { print "
";
 
 		# prefetch several lines
 		my @buf = head($filehandle);
 
 		my %d = scan_directives(@buf);
 
 		while (@buf || !eof($filehandle)) {
 			$_ = @buf ? shift @buf : <$filehandle>;
 
 			print spacedHtmlText($_, $d{'tabstop'});
 		}
 		print "
"; } else { print "
";
 
 		while (<$filehandle>) {
 			print htmlquote($_);
 		}
 		print "
"; } } sub viewable($) { my ($mimetype) = @_; $mimetype =~ m%^((text|image)/|application/pdf)%; } ############################### # Show Colored Diff ############################### sub doDiff($$$$$$) { my ($fullname, $r1, $tr1, $r2, $tr2, $f) = @_; my $fh = do { local (*FH); }; my ($rev1, $rev2, $sym1, $sym2, $f1, $f2); if (&forbidden_file($fullname)) { &fatal("403 Forbidden", "Access forbidden. This file is mentioned in \@ForbiddenFiles" ); return; } if ($r1 =~ /([^:]+)(:(.+))?/) { $rev1 = $1; $sym1 = $3; } if ($r1 eq 'text') { $rev1 = $tr1; $sym1 = ""; } if ($r2 =~ /([^:]+)(:(.+))?/) { $rev2 = $1; $sym2 = $3; } if ($r2 eq 'text') { $rev2 = $tr2; $sym2 = ""; } # make sure the revisions a wellformed, for security # reasons .. if ($rev1 =~ /[^\w.]/ || $rev2 =~ /[^\w.]/) { &fatal("404 Not Found", "Malformed query \"$ENV{QUERY_STRING}\""); } # # rev1 and rev2 are now both numeric revisions. # Thus we do a DWIM here and swap them if rev1 is after rev2. # XXX should we warn about the fact that we do this? if (&revcmp($rev1, $rev2) > 0) { my ($tmp1, $tmp2) = ($rev1, $sym1); ($rev1, $sym1) = ($rev2, $sym2); ($rev2, $sym2) = ($tmp1, $tmp2); } my $difftype = $DIFFTYPES{$f}; if (!$difftype) { fatal("400 Bad arguments", "Diff format $f not understood"); } my @difftype = @{$difftype->{'opts'}}; my $human_readable = $difftype->{'colored'}; # apply special options if ($showfunc) { push @difftype, '-p' if $f ne 's'; my ($re1, $re2); while (($re1, $re2) = each %funcline_regexp) { if ($fullname =~ /$re1/) { push @difftype, '-F', $re2; last; } } } if ($human_readable) { if ($hr_ignwhite) { push @difftype, '-w'; } if ($hr_ignkeysubst) { push @difftype, '-kk'; } } if (!open($fh, "-|")) { # child open(STDERR, ">&STDOUT"); # Redirect stderr to stdout exec($CMD{rcsdiff}, @difftype, "-r$rev1", "-r$rev2", $fullname); } if ($human_readable) { http_header(); &human_readable_diff($fh, $rev2); gzipclose(); exit; } else { http_header("text/plain"); } # #=================================================================== #RCS file: /home/ncvs/src/sys/netinet/tcp_output.c,v #retrieving revision 1.16 #retrieving revision 1.17 #diff -c -r1.16 -r1.17 #*** /home/ncvs/src/sys/netinet/tcp_output.c 1995/11/03 22:08:08 1.16 #--- /home/ncvs/src/sys/netinet/tcp_output.c 1995/12/05 17:46:35 1.17 # # Ideas: # - nuke the stderr output if it's what we expect it to be # - Add "no differences found" if the diff command supplied no output. # #*** src/sys/netinet/tcp_output.c 1995/11/03 22:08:08 1.16 #--- src/sys/netinet/tcp_output.c 1995/12/05 17:46:35 1.17 RELENG_2_1_0 # (bogus example, but...) # if (grep { $_ eq '-u' } @difftype) { $f1 = '---'; $f2 = '\+\+\+'; } else { $f1 = '\*\*\*'; $f2 = '---'; } while (<$fh>) { if (m|^$f1 $cvsroot|o) { s|$cvsroot/||o; if ($sym1) { chop; $_ .= " $sym1\n"; } } elsif (m|^$f2 $cvsroot|o) { s|$cvsroot/||o; if ($sym2) { chop; $_ .= " $sym2\n"; } } print $_; } close($fh); } ############################### # Show Logs .. ############################### sub getDirLogs($$@) { my ($cvsroot, $dirname, @otherFiles) = @_; my ($state, $otherFiles, $tag, $file, $date, $branchpoint, $branch, $log); my ($rev, $revision, $revwanted, $filename, $head, $author); $tag = $input{only_with_tag}; my ($DirName) = "$cvsroot/$where"; my (@files, @filetags); my $fh = do { local (*FH); }; push (@files, &safeglob("$DirName/*,v")); push (@files, &safeglob("$DirName/Attic/*,v")) if (!$input{'hideattic'}); foreach $file (@otherFiles) { push (@files, "$DirName/$file"); } # just execute rlog if there are any files if ($#files < 0) { return; } if (defined($tag)) { #can't use -r as - is allowed in tagnames, but misinterpreated by rlog.. if (!open($fh, "-|")) { open(STDERR, '>/dev/null'); # rlog may complain; ignore. exec($CMD{rlog}, @files); } } else { if (!open($fh, "-|")) { open(STDERR, '>/dev/null'); # rlog may complain; ignore. exec($CMD{rlog}, '-r', @files); } } $state = "start"; while (<$fh>) { if ($state eq "start") { #Next file. Initialize file variables $rev = ''; $revwanted = ''; $branch = ''; $branchpoint = ''; $filename = ''; $log = ''; $revision = ''; %symrev = (); @filetags = (); #jump to head state $state = "head"; } print "$state:$_" if ($verbose); again: if ($state eq "head") { #$rcsfile = $1 if (/^RCS file: (.+)$/); #not used (yet) if (/^Working file: (.+)$/) { $filename = $1; } elsif (/^head: (.+)$/) { $head = $1; } elsif (/^branch: (.+)$/) { $branch = $1 } elsif (/^symbolic names:/) { $state = "tags"; ($branch = $head) =~ s/\.\d+$// if $branch eq ''; $branch =~ s/(\d+)$/0.$1/; $symrev{MAIN} = $branch; $symrev{HEAD} = $branch; $alltags{MAIN} = 1; $alltags{HEAD} = 1; push (@filetags, "MAIN", "HEAD"); } elsif (/$LOG_REVSEPARATOR/o) { $state = "log"; $rev = ''; $date = ''; $log = ''; # Try to reconstruct the relative filename if RCS spits out a full path $filename =~ s%^\Q$DirName\E/%%; } next; } if ($state eq "tags") { if (/^\s+(.+):\s+([\d\.]+)\s+$/) { push (@filetags, $1); $symrev{$1} = $2; $alltags{$1} = 1; next; } elsif (/^\S/) { if (defined($tag)) { if (defined($symrev{$tag}) || $tag eq "HEAD") { $revwanted = $symrev{$tag eq "HEAD" ? "MAIN" : $tag}; ($branch = $revwanted) =~ s/\b0\.//; ($branchpoint = $branch) =~ s/\.?\d+$//; $revwanted = '' if ($revwanted ne $branch); } elsif ($tag ne "HEAD") { print "Tag not found, skip this file" if ($verbose); $state = "skip"; next; } } foreach my $tagfound (@filetags) { $tags{$tagfound} = 1; } $state = "head"; goto again; } } if ($state eq "log") { if (/$LOG_REVSEPARATOR/o || /$LOG_FILESEPARATOR/o) { # End of a log entry. my $revbranch = $rev; $revbranch =~ s/\.\d+$//; print "$filename $rev Wanted: $revwanted ", "Revbranch: $revbranch Branch: $branch ", "Branchpoint: $branchpoint\n" if ($verbose); if ($revwanted eq '' && $branch ne '' && $branch eq $revbranch || !defined($tag)) { print "File revision $rev found for branch $branch\n" if ($verbose); $revwanted = $rev; } if ($revwanted ne '' ? $rev eq $revwanted : $branchpoint ne '' ? $rev eq $branchpoint : 0 && ($rev eq $head)) { # Don't think head is needed here.. print "File info $rev found for $filename\n" if ($verbose); my @finfo = ($rev, $date, $log, $author, $filename); my ($name); ($name = $filename) =~ s%/.*%%; $fileinfo{$name} = [@finfo]; $state = "done" if ($rev eq $revwanted); } $rev = ''; $date = ''; $log = ''; } elsif ($date eq '' && m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);| ) { my $yr = $1; # damn 2-digit year routines :-) if ($yr > 100) { $yr -= 1900; } $date = &Time::Local::timegm($6, $5, $4, $3, $2 - 1, $yr); ($author) = /author: ([^;]+)/; $state = "log"; $log = ''; next; } elsif ($rev eq '' && /^revision (.*)$/) { $rev = $1; next; } else { $log .= $_; } } if (/$LOG_FILESEPARATOR/o) { $state = "start"; next; } } if ($. == 0) { fatal("500 Internal Error", "Failed to spawn GNU rlog on '" . join (", ", @files) . "'

Did you set the \$command_path in your configuration file correctly ? (Currently '$command_path'" ); } close($fh); } sub readLog($;$) { my ($fullname, $revision) = @_; my ($symnames, $head, $rev, $br, $brp, $branch, $branchrev); my $fh = do { local (*FH); }; if (defined($revision)) { $revision = "-r$revision"; } else { $revision = ""; } undef %symrev; undef %revsym; undef @allrevisions; undef %date; undef %author; undef %state; undef %difflines; undef %log; print("Going to rlog '$fullname'\n") if ($verbose); if (!open($fh, "-|")) { # child if ($revision ne '') { exec($CMD{rlog}, $revision, $fullname); } else { exec($CMD{rlog}, $fullname); } } while (<$fh>) { print if ($verbose); if ($symnames) { if (/^\s+([^:]+):\s+([\d\.]+)/) { $symrev{$1} = $2; } else { $symnames = 0; } } elsif (/^head:\s+([\d\.]+)/) { $head = $1; } elsif (/^branch:\s+([\d\.]+)/) { $curbranch = $1; } elsif (/^symbolic names/) { $symnames = 1; } elsif (/^-----/) { last; } } ($curbranch = $head) =~ s/\.\d+$// if (!defined($curbranch)); # each log entry is of the form: # ---------------------------- # revision 3.7.1.1 # date: 1995/11/29 22:15:52; author: fenner; state: Exp; lines: +5 -3 # log info # ---------------------------- logentry: while (!/$LOG_FILESEPARATOR/o) { $_ = <$fh>; last logentry if (!defined($_)); # EOF print "R:", $_ if ($verbose); if (/^revision ([\d\.]+)/) { $rev = $1; unshift (@allrevisions, $rev); } elsif (/$LOG_FILESEPARATOR/o || /$LOG_REVSEPARATOR/o) { next logentry; } else { # The rlog output is syntactically ambiguous. We must # have guessed wrong about where the end of the last log # message was. # Since this is likely to happen when people put rlog output # in their commit messages, don't even bother keeping # these lines since we don't know what revision they go with # any more. next logentry; # &fatal("500 Internal Error","Error parsing RCS output: $_"); } $_ = <$fh>; print "D:", $_ if ($verbose); if ( m|^date:\s+(\d+)/(\d+)/(\d+)\s+(\d+):(\d+):(\d+);\s+author:\s+(\S+);\s+state:\s+(\S+);\s+(lines:\s+([0-9\s+-]+))?| ) { my $yr = $1; # damn 2-digit year routines :-) if ($yr > 100) { $yr -= 1900; } $date{$rev} = &Time::Local::timegm($6, $5, $4, $3, $2 - 1, $yr); $author{$rev} = $7; $state{$rev} = $8; $difflines{$rev} = $10; } else { &fatal("500 Internal Error", "Error parsing RCS output: $_"); } line: while (<$fh>) { print "L:", $_ if ($verbose); next line if (/^branches:\s/); last line if (/$LOG_FILESEPARATOR/o || /$LOG_REVSEPARATOR/o); $log{$rev} .= $_; } print "E:", $_ if ($verbose); } close($fh); print "Done reading RCS file\n" if ($verbose); @revorder = reverse sort { revcmp($a, $b) } @allrevisions; print "Done sorting revisions", join (" ", @revorder), "\n" if ($verbose); # # HEAD is an artificial tag which is simply the highest tag number on the main # branch, unless there is a branch tag in the RCS file in which case it's the # highest revision on that branch. Find it by looking through @revorder; it # is the first commit listed on the appropriate branch. # This is not neccesary the same revision as marked as head in the RCS file. my $headrev = $curbranch || "1"; ($symrev{"MAIN"} = $headrev) =~ s/(\d+)$/0.$1/; foreach $rev (@revorder) { if ($rev =~ /^(\S*)\.\d+$/ && $headrev eq $1) { $symrev{"HEAD"} = $rev; last; } } ($symrev{"HEAD"} = $headrev) =~ s/\.\d+$// if (!defined($symrev{"HEAD"})); print "Done finding HEAD\n" if ($verbose); # # Now that we know all of the revision numbers, we can associate # absolute revision numbers with all of the symbolic names, and # pass them to the form so that the same association doesn't have # to be built then. # undef @branchnames; undef %branchpoint; undef $sel; foreach (reverse sort keys %symrev) { $rev = $symrev{$_}; if ($rev =~ /^((.*)\.)?\b0\.(\d+)$/) { push (@branchnames, $_); # # A revision number of A.B.0.D really translates into # "the highest current revision on branch A.B.D". # # If there is no branch A.B.D, then it translates into # the head A.B . # # This reasoning also applies to the main branch A.B, # with the branch number 0.A, with the exception that # it has no head to translate to if there is nothing on # the branch, but I guess this can never happen? # # (the code below gracefully forgets about the branch # if it should happen) # $head = defined($2) ? $2 : ""; $branch = $3; $branchrev = $head . ($head ne "" ? "." : "") . $branch; my $regex; $regex = quotemeta $branchrev; $rev = $head; foreach my $r (@revorder) { if ($r =~ /^${regex}\b/) { $rev = $branchrev; last; } } next if ($rev eq ""); if ($rev ne $head && $head ne "") { $branchpoint{$head} .= ", " if ($branchpoint{$head}); $branchpoint{$head} .= $_; } } $revsym{$rev} .= ", " if ($revsym{$rev}); $revsym{$rev} .= $_; $sel .= "

\n";
 	print &htmlify($log{$_}, 1);
 	print "
\n"; } sub doLog($) { my ($fullname) = @_; my ($diffrev, $upwhere, $filename, $backurl); readLog($fullname); html_header("CVS log for $where"); ($upwhere = $where) =~ s|(Attic/)?[^/]+$||; ($filename = $where) =~ s|^.*/||; $backurl = $scriptname . "/" . urlencode($upwhere) . $query; print &link($backicon, "$backurl#$filename"), " Up to ", &clickablePath($upwhere, 1), "

\n"; print &link('Request diff between arbitrary revisions', '#diff'); print '


'; if ($curbranch) { print "Default branch: ", ($revsym{$curbranch} || $curbranch); } else { print "No default branch"; } print "
\n"; if ($input{only_with_tag}) { print "Current tag: $input{only_with_tag}
\n"; } undef %nameprinted; for (my $i = 0 ; $i <= $#revdisplayorder ; $i++) { print "
"; printLog($revdisplayorder[$i]); } print "
"; print "\n"; print "This form allows you to request diff's between any two\n"; print "revisions of a file. You may select a symbolic revision\n"; print "name using the selection box or you may type in a numeric\n"; print "name using the type-in text box.\n"; print "

\n"; print "

\n"; foreach (@stickyvars) { printf('', $_, $input{$_}) if (defined($input{$_}) && ((!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}) && $input{$_} ne "")); } print "\n"; print ""; print "\n"; print ""; print "\n"; print "\n"; print "
Diffs between \n"; print "\n"; $diffrev = $revdisplayorder[$#revdisplayorder]; $diffrev = $input{"r1"} if (defined($input{"r1"})); print "
and \n"; print "\n"; $diffrev = $revdisplayorder[0]; $diffrev = $input{"r2"} if (defined($input{"r2"})); print "
\n"; print "
\n"; print ""; print "\n"; print ""; print "\n"; if (@branchnames) { print ""; print "\n"; } foreach (@stickyvars) { next if ($_ eq "f"); next if ($_ eq "only_with_tag"); next if ($_ eq "logsort"); print "\n" if (defined($input{$_}) && (!defined($DEFAULTVALUE{$_}) || $input{$_} ne $DEFAULTVALUE{$_}) && $input{$_} ne ""); } print ""; print ""; print ""; print "\n"; print "
Preferred Diff type:"; printDiffSelect($use_java_script); print "
View only Branch:"; print "\n"; print "
"; print "\n"; print "Sort log by:"; printLogSortSelect($use_java_script); print "
"; print &html_footer; print "\n"; } sub flush_diff_rows($$$$) { my $j; my ($leftColRef, $rightColRef, $leftRow, $rightRow) = @_; if (!defined($state)) { return; } if ($state eq "PreChangeRemove") { # we just got remove-lines before for ($j = 0 ; $j < $leftRow ; $j++) { print "@$leftColRef[$j]"; print " \n"; } } elsif ($state eq "PreChange") { # state eq "PreChange" # we got removes with subsequent adds for ($j = 0 ; $j < $leftRow || $j < $rightRow ; $j++) { # dump out both cols print ""; if ($j < $leftRow) { print "@$leftColRef[$j]"; } else { print " "; } if ($j < $rightRow) { print "@$rightColRef[$j]"; } else { print " "; } print "\n"; } } } ## # Function to generate Human readable diff-files # human_readable_diff(String revision_to_return_to); ## sub human_readable_diff($) { my ($difftxt, $where_nd, $filename, $pathname, $scriptwhere_nd); my ($fh, $rev) = @_; my ($date1, $date2, $r1d, $r2d, $r1r, $r2r, $rev1, $rev2, $sym1, $sym2); my (@rightCol, @leftCol); ($where_nd = $where) =~ s/.diff$//; ($filename = $where_nd) =~ s/^.*\///; ($pathname = $where_nd) =~ s/(Attic\/)?[^\/]*$//; ($scriptwhere_nd = $scriptwhere) =~ s/.diff$//; navigateHeader($scriptwhere_nd, $pathname, $filename, $rev, "diff"); # Read header to pick up read revision and date, if possible while (<$fh>) { ($r1d, $r1r) = /\t(.*)\t(.*)$/ if (/^--- /); ($r2d, $r2r) = /\t(.*)\t(.*)$/ if (/^\+\+\+ /); last if (/^\+\+\+ /); } if (defined($r1r) && $r1r =~ /^(\d+\.)+\d+$/) { $rev1 = $r1r; $date1 = $r1d; } if (defined($r2r) && $r2r =~ /^(\d+\.)+\d+$/) { $rev2 = $r2r; $date2 = $r2d; } print "

Diff for /$where_nd between version $rev1 and $rev2

\n", "\n", "\n", "\n", "\n"; my $fs = ""; my $fe = ""; my $leftRow = 0; my $rightRow = 0; my ($oldline, $newline, $funname, $diffcode, $rest); # Process diff text # The diffrows are could make excellent use of # cascading style sheets because we've to set the # font and color for each row. anyone ...? #### # prefetch several lines my @buf = head($fh); my %d = scan_directives(@buf); while (@buf || !eof($fh)) { $difftxt = @buf ? shift @buf : <$fh>; if ($difftxt =~ /^@@/) { ($oldline, $newline, $funname) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/; $funname = htmlquote($funname); print "\n"; $state = "dump"; $leftRow = 0; $rightRow = 0; } else { ($diffcode, $rest) = $difftxt =~ /^([-+ ])(.*)/; $_ = spacedHtmlText($rest, $d{'tabstop'}); # Add fontface, size $_ = "$fs $_$fe"; ######### # little state machine to parse unified-diff output (Hen, zeller@think.de) # in order to get some nice 'ediff'-mode output # states: # "dump" - just dump the value # "PreChangeRemove" - we began with '-' .. so this could be the start of a 'change' area or just remove # "PreChange" - okey, we got several '-' lines and moved to '+' lines -> this is a change block ########## if ($diffcode eq '+') { if ($state eq "dump") { # 'change' never begins with '+': just dump out value print "\n"; } else { # we got minus before $state = "PreChange"; $rightCol[$rightRow++] = $_; } } elsif ($diffcode eq '-') { $state = "PreChangeRemove"; $leftCol[$leftRow++] = $_; } else { # empty diffcode flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; print "\n"; $state = "dump"; $leftRow = 0; $rightRow = 0; } } } flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; # state is empty if we didn't have any change if (!$state) { print ""; print ""; print ""; } print "
", "version $rev1"; print ", $date1" if (defined($date1)); print "
Tag: $sym1\n" if ($sym1); print "
", "version $rev2"; print ", $date2" if (defined($date2)); print "
Tag: $sym2\n" if ($sym1); print "
"; print "
Line $oldline"; print " $funname
"; print "
"; print "
Line $newline"; print " $funname
"; print "
 $_
$_$_
 
- No viewable Change -
"; close($fh); print "

\n"; print ""; print ""; print "
"; # print legend print "
"; print "Legend:
\n"; print ""; print ""; print ""; print "
Removed from v.$rev1 
changed lines
 Added in v.$rev2
\n"; print "
"; # Print format selector print "
\n"; foreach my $var (keys %input) { next if ($var eq "f"); next if (defined($DEFAULTVALUE{$var}) && $DEFAULTVALUE{$var} eq $input{$var}); print "\n"; } printDiffSelect($use_java_script); print "\n"; print "
\n"; print "
"; } sub navigateHeader($$$$$) { my ($swhere, $path, $filename, $rev, $title) = @_; $swhere = "" if ($swhere eq $scriptwhere); $swhere = './' . urlencode($filename) if ($swhere eq ""); print < $path$filename - $title - $rev $body_tag_for_src "; print ""; print "
EOF print &link($backicon, "$swhere$query#rev$rev"); print "Return to ", &link($filename, "$swhere$query#rev$rev"), " CVS log"; print " $fileicon$diricon Up to ", &clickablePath($path, 1), "
"; } sub plural_write($$) { my ($num, $text) = @_; if ($num != 1) { $text .= "s"; } if ($num > 0) { return join (' ', $num, $text); } else { return ""; } } ## # print readable timestamp in terms of # '..time ago' # H. Zeller ## sub readableTime($$) { my ($i, $break, $retval); my ($secs, $long) = @_; # this function works correct for time >= 2 seconds if ($secs < 2) { return "very little time"; } my %desc = ( 1, 'second', 60, 'minute', 3600, 'hour', 86400, 'day', 604800, 'week', 2628000, 'month', 31536000, 'year' ); my @breaks = sort { $a <=> $b } keys %desc; $i = 0; while ($i <= $#breaks && $secs >= 2 * $breaks[$i]) { $i++; } $i--; $break = $breaks[$i]; $retval = plural_write(int($secs / $break), $desc{$break}); if ($long == 1 && $i > 0) { my $rest = $secs % $break; $i--; $break = $breaks[$i]; my $resttime = plural_write(int($rest / $break), $desc{$break}); if ($resttime) { $retval .= ", $resttime"; } } return $retval; } ## # clickablePath(String pathname, boolean last_item_clickable) # # returns a html-ified path whereas each directory is a link for # faster navigation. last_item_clickable controls whether the # basename (last directory/file) is a link as well ## sub clickablePath($$) { my ($pathname, $clickLast) = @_; my $retval = ''; if ($pathname eq '/') { # this should never happen - chooseCVSRoot() is # intended to do this $retval = "[$cvstree]"; } else { $retval .= ' ' . &link("[$cvstree]", sprintf('%s/%s#dirlist', $scriptname, $query)); my $wherepath = ''; my ($lastslash) = $pathname =~ m|/$|; foreach (split (/\//, $pathname)) { $retval .= " / "; $wherepath .= "/$_"; my ($last) = "$wherepath/" eq "/$pathname" || $wherepath eq "/$pathname"; if ($clickLast || !$last) { $retval .= &link($_, join ('', $scriptname, urlencode($wherepath), (!$last || $lastslash ? '/' : ''), $query, (!$last || $lastslash ? "#dirlist" : "") )); } else { # do not make a link to the current dir $retval .= $_; } } } return $retval; } sub chooseCVSRoot() { if (2 <= @CVSROOT) { my ($k); print "
\n"; foreach $k (keys %input) { print "\n" if ($input{$k}) && ($k ne "cvsroot"); } # Form-Elements look wierd in Netscape if the background # isn't gray and the form elements are not placed # within a table ... print ""; print ""; print ""; print "
CVS Root:\n\n"; } else { # no choice -- but we need the form to select module/path, at least for Netscape print "\n"; print "CVS Root: [$cvstree]"; } print " Module path or alias:\n"; print "\n"; print ""; if (2 <= @CVSROOT) { print "
"; } print "
"; } sub chooseMirror() { my ($mirror, $moremirrors); $moremirrors = 0; # This code comes from the original BSD-cvsweb # and may not be useful for your site; If you don't # set %MIRRORS this won't show up, anyway # # Should perhaps exlude the current site somehow.. if (keys %MIRRORS) { print "\nThis cvsweb is mirrored in:\n"; foreach $mirror (keys %MIRRORS) { print ", " if ($moremirrors); print &link(htmlquote($mirror), $MIRRORS{$mirror}); $moremirrors = 1; } print "

\n"; } } sub fileSortCmp() { my ($comp) = 0; my ($c, $d, $af, $bf); ($af = $a) =~ s/,v$//; ($bf = $b) =~ s/,v$//; my ($rev1, $date1, $log1, $author1, $filename1) = @{$fileinfo{$af}} if (defined($fileinfo{$af})); my ($rev2, $date2, $log2, $author2, $filename2) = @{$fileinfo{$bf}} if (defined($fileinfo{$bf})); if (defined($filename1) && defined($filename2) && $af eq $filename1 && $bf eq $filename2) { # Two files $comp = -revcmp($rev1, $rev2) if ($byrev && $rev1 && $rev2); $comp = ($date2 <=> $date1) if ($bydate && $date1 && $date2); $comp = ($log1 cmp $log2) if ($bylog && $log1 && $log2); $comp = ($author1 cmp $author2) if ($byauthor && $author1 && $author2); } if ($comp == 0) { # Directories first, then sorted on name if no other sort critera # available. my $ad = ((-d "$fullname/$a") ? "D" : "F"); my $bd = ((-d "$fullname/$b") ? "D" : "F"); ($c = $a) =~ s|.*/||; ($d = $b) =~ s|.*/||; $comp = ("$ad$c" cmp "$bd$d"); } return $comp; } # make A url for downloading sub download_url($$;$) { my ($url, $revision, $mimetype) = @_; $revision =~ s/\b0\.//; if (defined($checkoutMagic) && (!defined($mimetype) || $mimetype ne "text/x-cvsweb-markup")) { my $path = $where; $path =~ s|/[^/]*$|/|; $url = "$scriptname/$checkoutMagic/${path}$url"; } $url .= "?rev=$revision"; $url .= '&content-type=' . urlencode($mimetype) if (defined($mimetype)); $url; } # Presents a link to download the # selected revision sub download_link($$$;$) { my ($url, $revision, $textlink, $mimetype) = @_; my ($fullurl) = download_url($url, $revision, $mimetype); $fullurl =~ s/:/sprintf("%%%02x", ord($&))/eg; printf '$textlink"; } # Returns a Query string with the # specified parameter toggled sub toggleQuery($$) { my ($toggle, $value) = @_; my ($newquery, $var); my (%vars); %vars = %input; if (defined($value)) { $vars{$toggle} = $value; } else { $vars{$toggle} = $vars{$toggle} ? 0 : 1; } # Build a new query of non-default paramenters $newquery = ""; foreach $var (@stickyvars) { my ($value) = defined($vars{$var}) ? $vars{$var} : ""; my ($default) = defined($DEFAULTVALUE{$var}) ? $DEFAULTVALUE{$var} : ""; if ($value ne $default) { $newquery .= "&" if ($newquery ne ""); $newquery .= urlencode($var) . "=" . urlencode($value); } } if ($newquery) { return '?' . $newquery; } return ""; } sub urlencode($) { local ($_) = @_; s/[\000-+{-\377]/sprintf("%%%02x", ord($&))/ge; $_; } sub htmlquote($) { local ($_) = @_; # Special Characters; RFC 1866 s/&/&/g; s/\"/"/g; s//>/g; $_; } sub htmlunquote($) { local ($_) = @_; # Special Characters; RFC 1866 s/"/\"/g; s/<//g; s/&/&/g; $_; } sub hrefquote($) { local ($_) = @_; y/ /+/; htmlquote($_) } sub http_header(;$) { my $content_type = shift || "text/html"; $content_type .= "; charset=$charset" if $content_type =~ m,^text/, && defined($charset) && $charset; if (defined($moddate)) { if ($is_mod_perl) { Apache->request->header_out( "Last-Modified" => scalar gmtime($moddate) . " GMT"); } else { print "Last-Modified: ", scalar gmtime($moddate), " GMT\r\n"; } } if ($is_mod_perl) { Apache->request->content_type($content_type); } else { print "Content-type: $content_type\r\n"; } if ($allow_compress && $maycompress) { if ($has_zlib || (defined($CMD{gzip}) && open(GZIP, "| $CMD{gzip} -1 -c")) ) { if ($is_mod_perl) { Apache->request->content_encoding("x-gzip"); Apache->request->header_out( Vary => "Accept-Encoding"); Apache->request->send_http_header; } else { print "Content-encoding: x-gzip\r\n"; print "Vary: Accept-Encoding\r\n" ; #RFC 2068, 14.43 print "\r\n"; # Close headers } $| = 1; $| = 0; # Flush header output if ($has_zlib) { tie *GZIP, __PACKAGE__, \*STDOUT; } select(GZIP); $gzip_open = 1; # print "" if ($content_type =~ m|^text/html\b|); } else { if ($is_mod_perl) { Apache->request->send_http_header; } else { print "\r\n"; # Close headers } print "Unable to find gzip binary in the \$command_path ($command_path) to compress output
"; } } else { if ($is_mod_perl) { Apache->request->send_http_header; } else { print "\r\n"; # Close headers } } } sub html_header($) { my ($title) = @_; http_header("text/html"); (my $header = &cgi_style::html_header) =~ s/^.*\n\n//; # remove HTTP response header print < $header EOH } sub html_footer() { return &cgi_style::html_footer; } sub link_tags($) { my ($tags) = @_; my ($ret) = ""; my ($fileurl, $filename); ($filename = $where) =~ s/^.*\///; $fileurl = './' . urlencode($filename); foreach my $sym (split (", ", $tags)) { $ret .= ",\n" if ($ret ne ""); $ret .= &link($sym, $fileurl . toggleQuery('only_with_tag', $sym)); } return "$ret\n"; } # # See if a module is listed in the config file's @HideModules list. # sub forbidden_module($) { my ($module) = @_; local $_; for (@HideModules) { return 1 if $module =~ $_; } return 0; } sub forbidden_file($) { my ($path) = @_; $path = substr($path, length($cvsroot) + 1); local $_; for (@ForbiddenFiles) { return 1 if $path =~ $_; } return 0; } # Close the GZIP handle remove the tie. sub gzipclose { if ($gzip_open) { select(STDOUT); close(GZIP); untie *GZIP; $gzip_open = 0; } } # implement a gzipped file handle via the Compress:Zlib compression # library. sub MAGIC1() { 0x1f } sub MAGIC2() { 0x8b } sub OSCODE() { 3 } sub TIEHANDLE { my ($class, $out) = @_; my ($d) = Compress::Zlib::deflateInit( -Level => Compress::Zlib::Z_BEST_COMPRESSION(), -WindowBits => -Compress::Zlib::MAX_WBITS() ) or return undef; my ($o) = { handle => $out, dh => $d, crc => 0, len => 0, }; my ($header) = pack("c10", MAGIC1, MAGIC2, Compress::Zlib::Z_DEFLATED(), 0, 0, 0, 0, 0, 0, OSCODE); print {$o->{handle}} $header; return bless($o, $class); } sub PRINT { my ($o) = shift; my ($buf) = join (defined $, ? $, : "", @_); my ($len) = length($buf); my ($compressed, $status) = $o->{dh}->deflate($buf); print {$o->{handle}} $compressed if defined($compressed); $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc}); $o->{len} += $len; return $len; } sub PRINTF { my ($o) = shift; my ($fmt) = shift; my ($buf) = sprintf($fmt, @_); my ($len) = length($buf); my ($compressed, $status) = $o->{dh}->deflate($buf); print {$o->{handle}} $compressed if defined($compressed); $o->{crc} = Compress::Zlib::crc32($buf, $o->{crc}); $o->{len} += $len; return $len; } sub WRITE { my ($o, $buf, $len, $off) = @_; my ($compressed, $status) = $o->{dh}->deflate(substr($buf, 0, $len)); print {$o->{handle}} $compressed if defined($compressed); $o->{crc} = Compress::Zlib::crc32(substr($buf, 0, $len), $o->{crc}); $o->{len} += $len; return $len; } sub CLOSE { my ($o) = @_; return if !defined($o->{dh}); my ($buf) = $o->{dh}->flush(); $buf .= pack("V V", $o->{crc}, $o->{len}); print {$o->{handle}} $buf; undef $o->{dh}; } sub DESTROY { my ($o) = @_; CLOSE($o); } diff --git a/en/cgi/cvsweb.conf b/en/cgi/cvsweb.conf index 0a171b8eda..7c894846b7 100644 --- a/en/cgi/cvsweb.conf +++ b/en/cgi/cvsweb.conf @@ -1,512 +1,512 @@ # -*-perl-*- # Configuration of cvsweb.cgi, the # CGI interface to CVS Repositories. # # (c) 1998-1999 H. Zeller # 1999 H. Nordstrom # 2000-2001 A. MUSHA # based on work by Bill Fenner -# $Id: cvsweb.conf,v 1.22 2001-08-01 10:41:47 knu Exp $ +# $Id: cvsweb.conf,v 1.23 2001-11-07 16:32:11 sobomax Exp $ # $Idaemons: /home/cvs/cvsweb/cvsweb.conf,v 1.27 2001/08/01 09:48:39 knu Exp $ -# $FreeBSD: www/en/cgi/cvsweb.conf,v 1.21 2001/07/06 09:58:17 knu Exp $ +# $FreeBSD$ # ### # 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 = ( 'freebsd' => ['FreeBSD', '/c/ncvs'], 'openbsd' => ['OpenBSD', '/usr/local/www/cvsroot/OpenBSD'], 'netbsd' => ['NetBSD', '/usr/local/www/cvsroot/NetBSD'], '44bsdlite' => ['4.4BSD-Lite', '/e/4.4BSD-Lite/4.4BSD-Lite-CVS'], 'learn' => ['Learn', '/c/learncvs'], ); # This tree is enabled by default when # you enter the page $cvstreedefault = $CVSrepositories[2 * 0]; # The first one ############## # Mirror Sites ############## %MIRRORS = ( 'Germany' => 'http://www.de.FreeBSD.org/cgi/cvsweb.cgi', 'Portugal' => 'http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi', 'Russia' => 'http://www.FreeBSD.org.ua/cgi/cvsweb.cgi?cvsroot=freebsd', 'Spain' => 'http://www.es.FreeBSD.org/cgi/cvsweb.cgi', - 'USA, California' => 'http://www.FreeBSD.org/cgi/cvsweb.cgi', + 'USA, California' => 'http://cvsweb.FreeBSD.org/', 'Japan' => 'http://www.jp.FreeBSD.org/cgi/cvsweb.cgi', ); ############## # 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 "hidecvsroot" => "0", # 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 = ''; # The body-tag for diffs and annotations $body_tag_for_src = ''; # Wanna have a logo on the page ? $logo = ''; # The title of the Page on startup $defaulttitle = "CVS Repository"; # The address is shown on the footer $address = "CVSweb by <knu\@FreeBSD.org>"; # color of navigation Header for # diffs and annotations $navigationHeaderColor = '#9999ee'; $long_intro = < This is a WWW interface to the !!CVSROOTdescr!! CVS tree. You can browse the file hierarchy by picking directories (which have slashes after them, e.g., src/). 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.

This script has been written by Bill Fenner <fenner\@FreeBSD.org> and improved by Henner Zeller <zeller\@think.de>, Henrik Nordström <hno\@hem.passagen.se>, and Ken Coar <Ken.Coar\@Golux.Com>, then Akinori MUSHA <knu\@FreeBSD.org> brought it back to FreeBSD community and made further improvements; it is covered by the BSD-Licence.

If you would like to use this CGI script on your own web server and CVS tree, download the latest version here, and also check out Zeller's CVSweb distribution site. Bill's original script can be found here.

Please send any suggestions, comments, etc. to Bill Fenner or, regarding the modifications, to Akinori MUSHA, Henner Zeller, Henrik Nordström, or Ken Coar.

EOT $short_instruction = < 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.

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 = "/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)], ); 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. @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 # # 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 # # 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'; ############## # 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; # 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 = 1; # 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 = ''; # 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). @cvs_options = qw(-l); push @cvs_options, '-R' if ($uname eq 'FreeBSD' || $uname eq 'OpenBSD'); # Only FreeBSD's and OpenBSD's cvs(1) supports -R (read only access # mode) option, which considerably speeds up checkouts over NFS. 1; #EOF diff --git a/en/cgi/getmsg.cgi b/en/cgi/getmsg.cgi index 7a5e8270ba..2fc34e5357 100755 --- a/en/cgi/getmsg.cgi +++ b/en/cgi/getmsg.cgi @@ -1,228 +1,228 @@ #!/usr/bin/perl -T # # Given a filename, start offset and end offset of a mail message, # read the message and format it nicely using HTML. # # by John Fieber # February 26, 1998 # -# $FreeBSD: www/en/cgi/getmsg.cgi,v 1.29 2000/11/29 22:10:24 wosch Exp $ +# $FreeBSD$ # require "./cgi-lib.pl"; require "./cgi-style.pl"; use POSIX qw(strftime); # # Files MUST be fully qualified and MUST start with this path. # $messagepath = "/usr/local/www/db/text/"; $messagepathcurrent = "/usr/local/www/mid/archive/"; $ftparchive = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/mailing-lists/archive'; &ReadParse(*formdata); &Fetch($formdata{'fetch'}); exit 0; sub Fetch { my ($docid) = @_; my ($start, $end, $file, $type) = split(/ /, $docid); my ($message, @finfo); # # Check to ensure that (a) the specified file starts # with an approved pathname and (b) that it contains no # relative components (eg ..). This is so that arbitrary # files cannot be accessed. # $file =~ s/\.\.//g; $file =~ s|/+|/|; $file =~ s|^archive/|$messagepath/|; # read the full archive if ($type eq 'archive') { # from the FreeBSD ftp server if ($file =~ s%^$messagepath%%o) { print "Location: $ftparchive/$file.gz\n"; print "Content-type: text/plain\n\n"; exit(0); } # from the local mail archive for current mails elsif ($file =~ m%^current/(cvs|freebsd)-[a-z0-9-]+$% && open(DATA, "$messagepathcurrent$file")) { print "Content-type: text/plain\n\n"; while() { print; } close(DATA); exit(0); } } if (($file =~ /^$messagepath/ && -f $file && open(DATA, $file)) || ($file =~ m%^current/(cvs|freebsd)-[a-z0-9-]+$% && open(DATA, "$messagepathcurrent$file"))) { @finfo = stat DATA; seek DATA, $start, 0; if ($end > $start && $start >= 0) { read DATA, $message, $end - $start; } else { # Unknown length, guess the end of the E-Mail my($newline) = 0; while() { last if ($newline && /^From .* \d{4}/); if (/^$/) { $newline = 1 } else { $newline = 0; } $message .= $_; } } close(DATA); print "last-modified: " . POSIX::strftime("%a, %d %b %Y %T GMT", gmtime($finfo[9])) . "\n"; # print E-Mail as plain ascii text if ($type eq 'raw') { print "Content-type: text/plain\n\n"; print $message; return; } $message = &MessageToHTML($message, $file); } else { $message = "

The specified message cannot be accessed.

\n"; } print &short_html_header("FreeBSD Mail Archives"); print $message; print &html_footer; print "\n"; } sub EscapeHTML { my ($text) = @_; $text =~ s/&/&/g; $text =~ s//>/g; return $text; } sub MessageToHTML { my ($doc, $file) = @_; my ($header, $body) = split(/\n\n/, $doc, 2); my ($i, %hdr, $field, $data, $message); my ($mid) = 'mid.cgi'; my ($tmid,$tirt,$tref); $body = &AddAnchors(&EscapeHTML($body)); $header = &EscapeHTML($header); $header =~ s/\n[ \t]+/ /g; foreach $i (split(/\n/, $header)) { ($field, $data) = split(/ /, $i, 2); $field =~ y/A-Z/a-z/; $hdr{$field} = $data; } $message = "
\n";
     if (length($hdr{'date:'}) > 0) {
     	$message .= "Date:      $hdr{'date:'}\n";
     }
     if (length($hdr{'from:'}) > 0) {
     	$message .= "From:      $hdr{'from:'}\n";
     }
     if (length($hdr{'to:'}) > 0) {
     	$message .= "To:        $hdr{'to:'}\n";
     }
     if (length($hdr{'cc:'}) > 0) {
     	$message .= "Cc:        $hdr{'cc:'}\n";
     }
 #    if (length($hdr{'sender:'}) > 0) {
 #    	$message .= "Sender:    $hdr{'sender:'}\n";
 #    }
     if (length($hdr{'subject:'}) > 0) {
     	$message .= "Subject:   $hdr{'subject:'}\n";
     }
 
     if ($hdr{'message-id:'}) {
 	$tmid = $hdr{'message-id:'}; 
 	$hdr{'message-id:'} =~ 
 	    s%;([^&]+)&%;$1&%oi;
 	$message .= "Message-ID:  $hdr{'message-id:'}\n";
     }
 
     if ($hdr{'resent-message-id:'}) {
 	$hdr{'resent-message-id:'} =~ 
 	    s%;([^&]+)&%;$1&%oi;
 	$message .= "Resent-Message-ID: $hdr{'resent-message-id:'}\n";
     }
 
     if ($hdr{'in-reply-to:'}) {
 	$tirt = $hdr{'in-reply-to:'};
 	$hdr{'in-reply-to:'} =~
 	    s%;([^&]+)&%;$1&%oi;
 	$message .= "In-Reply-To: $hdr{'in-reply-to:'}\n";
     }
 
     if ($hdr{'references:'}) {
 	$tref = $hdr{'references:'};
 	$hdr{'references:'} =~
 	    s%;([^&\s]+)&%;$1&%goi;
 	$message .= "References:  $hdr{'references:'}\n";
     }
 
 
     $message .= "
\n"; $message .= "
\n"; if ($tmid =~ m%;([^&]+)&%) { $message .= qq{Next in thread\n}; } if ($tirt =~ m%;([^&]+)&% || $tref =~ m%;([^&]+)&%) { $message .= qq{| Previous in thread\n}; } $message .= qq{| Raw E-Mail\n}; my $file2 = $file; if ($file2 =~ s%^$messagepath%archive/%oi || $file2 =~ /^current/) { $message .= qq{| Index\n}; } $message .= qq{| Archive\n}; $message .= qq{| Help\n}; $message .= "
\n"; $message .= "

\n$body\n
\n"; return $message; } sub AddAnchors { my ($text) = @_; - my $cvsweb = 'http://www.freebsd.org/cgi/cvsweb.cgi'; + my $cvsweb = 'http://cvsweb.FreeBSD.org/'; $text =~ s/(http|https|ftp|gopher|mailto|news|file)(:[^\s]*?\/?)(\W?\s)/$1$2<\/a>$3/goi; if ($text =~ /Revision\s+Changes\s+Path/) { # match revsion and file name # 1.10 +2 -2 ports/audio/xmradio/Makefile # -> # cvsweb.cgi/ports/audio/xmradio/Makefile.diff?r1=1.9&r2=r.10 # $text =~ s#([\d.]+\.)(\d+)(\s+[+-]\d+\s+[+-]\d+\s+)([a-zA-Z\d_:.+/-]+)#sprintf("%s%s%s%s", $1, $2, $3, $4, $1, $2 - 1, $1, $2, $4)#ge; } return $text; } diff --git a/en/cgi/ports.cgi b/en/cgi/ports.cgi index bae23ecd88..c023cf2e69 100755 --- a/en/cgi/ports.cgi +++ b/en/cgi/ports.cgi @@ -1,723 +1,723 @@ #!/usr/bin/perl -T # # Copyright (c) 1996-2001 Wolfram Schneider , Berlin. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: www/en/cgi/ports.cgi,v 1.57 2001/08/26 18:27:45 wosch Exp $ +# $FreeBSD$ # # ports.cgi - search engine for FreeBSD ports # o search for a port by name or description # o search for new or updated ports # # # If you want use this script on your own host this line must # work for you: $ cvs rdiff -D'last week' ports/INDEX sub init_variables { $cvsroot = '/home/ncvs'; # $CVSROOT $localPrefix = '/usr/ports'; # ports prefix $ports_database = 'ports/INDEX'; # unset $ENV{'CVSROOT'}; @cvscmd = ('cvs', '-Q', '-R', '-d', $cvsroot); # URL of ports tree for browsing $remotePrefixFtp = 'ports'; # 'ftp://ftp.FreeBSD.org/pub/FreeBSD/branches/-current/ports'; # URL of ports tree for download $remotePrefixFtpDownload = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/branches/-current/ports'; # where to get -current packages local($p) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386'; local($palpha) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha'; $remotePrefixFtpPackagesDefault = '4.4-STABLE/i386'; %remotePrefixFtpPackages = ( '5.0-CURRENT/i386', "$p/packages-current/All", '4.4-RELEASE/i386', "$p/packages-4.4-release/All", '4.3-RELEASE/i386', "$p/packages-4.3-release/All", '4.4-STABLE/i386', " $p/packages-4.4-stable/All", '3.5-STABLE/i386', "$p/packages-3-stable/All", '3.5-RELEASE/i386', "$p/packages-3.4-release/All", '5.0-CURRENT/alpha', "$palpha/packages-current/All", '4.4-RELEASE/alpha', "$palpha/packages-4.4-release/All", '4.3-RELEASE/alpha', "$palpha/packages-4.3-release/All", '4.4-STABLE/alpha', "$palpha/packages-4-stable/All", ); %relDate = ( '5.0-CURRENT/i386', 'today', '4.4-STABLE/i386', 'today', '4.3-RELEASE/i386', '2001-04-18 21:37:31 UTC', '4.4-RELEASE/i386', '2001-09.16 01:02:45 UTC', '3.5-STABLE/i386', 'today', '3.5-RELEASE/i386', '2000-06-16 22:56:18 UTC', '5.0-CURRENT/alpha', 'today', '4.4-STABLE/alpha', 'today', '4.4-RELEASE/alpha', '2001-09.16 01:02:45 UTC', ); $remotePrefixHtml = '../ports'; # CVS Web interface $remotePrefixCvs = - 'http://www.FreeBSD.org/cgi/cvsweb.cgi/ports'; + 'http://cvsweb.FreeBSD.org/ports'; # Ports documentation $portsDesc = '../ports/'; # location of the tiny BSD daemon $daemonGif = ''; # visible E-Mail address, plain text $mailto = 'www@FreeBSD.org'; # Mailinglist for FreeBSD Ports $mailtoList = 'ports@FreeBSD.org'; # use mailto:email?subject $mailtoAdvanced = 'yes'; # the URL if you click at the E-Mail address (see below) $mailtoURL = 'http://www.FreeBSD.org/ports/'; $mailtoURL = "mailto:$mailto" if !$mailtoURL; # security $ENV{'PATH'} = '/bin:/usr/bin'; # ports download sources script $pds = 'pds.cgi'; # make plain text URLs clickable cgi script $url = 'url.cgi'; local($packageDB) = '../ports/packages.exists'; &packages_exist($packageDB, *packages) if -f $packageDB; } sub packages_exist { local($file, *p) = @_; open(P, $file) || do { warn "open $file: $!\n"; warn "Cannot create packages links\n"; return 1; }; while(

) { chop; $p{$_} = 1; } close P; return 0; } # return the date of the last ports database update sub last_update { local($file) = "$cvsroot/$ports_database,v"; local($date) = 'unknown'; open(DB, $file) || do { &warn("$file: $!\n"); &exit; }; local($head); while() { $head = $1 if (/^head\s+([0-9.]+);?\s*$/); if (/^date/ && /^date\s+([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+);\s+/) { $date = ($1 < 100 ? $1 + 1900 : $1) . qq{-$2-$3 $4:$5:$6 UTC}; last; } } close DB; return $date . "; based on revision " . $head; } sub last_update_message { return "

Last database update: " . &last_update . "
\n"; } sub dec { local($_) = @_; s/\+/ /g; # '+' -> space s/%(..)/pack("c",hex($1))/ge; # '%ab' -> char ab return($_); } sub header { print "Content-type: text/html\n"; print "\n"; } # $indent is a bit of optional data processing I put in for # formatting the data nicely when you are emailing it. # This is derived from code by Denis Howe # and Thomas A Fine sub decode_form { local($form, *data, $indent, $key, $_) = @_; foreach $_ (split(/&/, $form)) { ($key, $_) = split(/=/, $_, 2); $_ =~ s/\+/ /g; # + -> space $key =~ s/\+/ /g; # + -> space $_ =~ s/%([\da-f]{1,2})/pack(C,hex($1))/eig; # undo % escapes $key =~ s/%([\da-f]{1,2})/pack(C,hex($1))/eig; # undo % escapes $_ =~ s/[\r\n]+/\n\t/g if defined($indent); # indent data after \n $data{$key} = $_; } } # encode unknown data for use in a URL sub encode_url { local($_) = @_; s/([\000-\032\;\/\?\:\@\&\=\%\'\"\`\<\>\177-\377 ])/sprintf('%%%02x',ord($1))/eg; # s/%20/+/g; $_; } sub warn { print "$_[0]" } sub env { defined($ENV{$_[0]}) ? $ENV{$_[0]} : undef; } sub exit { exit 0 }; sub readindex { local($date, *var, *msec) = @_; local(@co) = ('co', '-p'); if ($date =~ /^rev([1-9]+\.[0-9]+)$/) { # diff by revision push(@co, ('-r', $1)); } else { # diff by date push(@co, ('-D', $date)); } push(@co, $ports_database); local(@tmp, @s); open(C, "-|") || exec (@cvscmd, @co); while() { chop; @tmp = split(/\|/); $var{"$tmp[4]"} = $_; @s = split(/\s+/, $tmp[6]); foreach (@s) { $msec{"$tmp[4],$_"} = 1; } } close C; } # extract sub collections sub readcoll { local(@co) = ('co', '-p', 'ports/INDEX'); local(@a, @b, %key); local($file) = '../ports/categories'; if (-r $file && open(C, $file)) { while() { chop; if (/^\s*\"([^\"]+)\"\s*,/) { #" @b = split(/\s+/, $1); foreach (@b) { if (!defined($key{$_})) { $key{$_} = 1; } } } } } else { open(C, "-|") || exec (@cvscmd, @co); while() { chop; @a = split('\|'); @b = split(/\s+/, $a[6]); foreach (@b) { if (!defined($key{$_})) { $key{$_} = 1; } } } } close C; @a = (); foreach (sort keys %key) { push(@a, $_); } return @a; } # basic function for HTML output sub out { local($line, $old) = @_; local($version, $path, $local, $comment, $descfile, $email, $sections, $bdepends, $rdepends, @rest) = split(/\|/, $line); if ($path =~ m%^$localPrefix/([^/]+)%o) { if (!$out_sec || $1 ne $out_sec) { print "\n" if $counter > 0; print qq{\n

} . qq{Category $1} . "

\n
\n"; $out_sec = $1; } } $counter++; $pathDownload = $path; $pathB= $path; $pathB =~ s/^$localPrefix/ports/o; $path =~ s/^$localPrefix/$remotePrefixFtp/o; $pathDownload =~ s/^$localPrefix/$remotePrefixFtpDownload/o; $descfile =~ s/^$localPrefix/$remotePrefixFtp/o; print qq{
$version\n}; print qq{
$comment
\n}; if ($old) { local($l) = $descfile; $l =~ s%^$remotePrefixFtp%$remotePrefixCvs%o; $l =~ s%/([^/]+)$%/Attic/$1%; print qq{Was Maintained by: $email
} . qq{Removed why
}; } else { local($l) = $path; $l =~ s%^$remotePrefixFtp%$remotePrefixCvs%o; #$l .= '/Makefile'; print qq{Maintained by: $email
}; local(@s) = split(/\s+/, $sections); if ($#s > 0) { print qq{Also listed in: }; foreach (@s) { print qq{$_ } if $_ ne $out_sec; } print "
\n"; } if ($bdepends || $rdepends) { local($flag) = 0; local($last) = ''; print qq{Requires: }; foreach (sort split(/\s+/, "$bdepends $rdepends")) { # delete double entries next if $_ eq $last; $last = $_; print ", " if $flag; $flag++; print qq{$_}; } print "
\n"; } print qq[Description : Sources :\n]; if (($release eq $remotePrefixFtpPackagesDefault && $packages{"$version.tgz"}) || $release ne $remotePrefixFtpPackagesDefault ) { print qq[Package :\n]; } print qq[Changes : Download

]; }; }; # new/updated/removed ports output sub out_ports { if ($type eq "new") { foreach $key (sort keys %today) { if (!$past{$key}) { if ($section eq "all" || $msec{"$key,$section"}) { &out($today{$key}, 0); } } } } elsif ($type eq "removed") { foreach $key (sort keys %past) { if (!$today{$key}) { if ($section eq "all" || $msec{"$key,$section"}) { &out($past{$key}, 1); } } } } else { # changed foreach $key (sort keys %today) { if ($past{$key} && $past{$key} ne $today{$key}) { @a = split(/\|/, $today{$key}); @b = split(/\|/, $past{$key}); next if $a[0] eq $b[0]; if ($section eq "all" || $msec{"$key,$section"}) { &out($today{$key}, 0); } } } } } # search and output sub search_ports { local(@a) = (); local($key, $name, $text); foreach $key (sort keys %today) { next if $today{$key} !~ /$query/oi; @a = split(/\|/, $today{$key}); $name = $a[0]; #$name =~ s/(\W)/\\$1/g; $text = $a[3]; #$text =~ s/(\W)/\\$1/g; #warn "$stype:$query: $name $text\n"; if ($stype eq "name" && $name =~ /$query/o) { &out($today{$key}, 0); } elsif ($stype eq "text" && $text =~ /$query/oi) { &out($today{$key}, 0); } elsif ($stype eq "all" && ($text =~ /$query/oi || $name =~ /$query/io)) { &out($today{$key}, 0); } elsif ($stype eq 'maintainer' && $a[5] =~ /$query/io) { &out($today{$key}, 0); } elsif ($stype eq 'requires' && ($a[7] =~ /$query/io || $a[8] =~ /$query/io)) { &out($today{$key}, 0); } } } sub forms { print qq{ FreeBSD Ports Changes

FreeBSD Ports Changes $daemonGif

FreeBSD Ports [short description followed ...] FAQ

}; print qq{ "Package Name" search for the name of port or distribution. "Description" search case-insensitive in a short comment about the port. "All" search case-insensitive for the package name and in the description about the port.

Search for:
}; print qq{

"New" print ports which are new in the ports collection or moved from an other ports section. "Changed" print updated ports. "Removed" print ports which are deleted from ports collections or moved to an other ports section.

\n\n

}; } sub footer { print qq{ © 1996-2001 by Wolfram Schneider. All rights reserved.
}; - #print q{$FreeBSD: www/en/cgi/ports.cgi,v 1.57 2001/08/26 18:27:45 wosch Exp $} . "
\n"; + #print q{$FreeBSD$} . "
\n"; print qq{Please direct questions about this service to $mailto
\n}; print qq{General questions about FreeBSD ports should be sent to } . qq{} . qq{$mailtoList
\n}; print &last_update_message; print "
\n

\n"; } sub footer2 { print "\n\n\n"; } sub check_input { if ($query) { $stype = "all" if !$stype; if (!($stype eq "name" || $stype eq "text" || $stype eq "maintainer" || $stype eq "requires" || $stype eq "all")) { &warn("unknown search type ``$type'', use `all', `text', `name', 'requires', or `maintainer'\n"); &exit(0); } else { return; } } if (!($type eq "new" || $type eq "changed" || $type eq "removed")) { &warn("unknown type `$type', use `new', `changed', or `removed'\n"); &exit(0); } if ($time !~ /^[1-9][0-9]*\s+(month|week)\s+ago$/ && # support diff by revision too $time !~ /^rev[1-9]+\.[0-9]+$/ ) { &warn("unkwnon date: `$time'\n"); &exit(0); } } sub faq { print qq{\nFAQ\n

FreeBSD Ports Changed FAQ

Keywords

Description
A more detailed description.
Download
Download the ports directory.
Package
Download the pre-compiled software package.
Changes
Read the latest changes.
Sources
Links to all source files.

Misc

All links point to the FreeBSD-stable version and not to the latest releases.

The script ports.cgi use the file FreeBSD-CVS/ports/INDEX,v as database for all operation. INDEX,v will be updated by hand by the portsmeister.

You may also search the ports manual pages.

Get the Source of this script.

Back to the search engine


}; } # # Main # &init_variables; $query_string = &env('QUERY_STRING'); $path_info = &env('PATH_INFO'); &decode_form($query_string, *form); $type = $form{'type'}; $time = $form{'time'}; $section = $form{'sektion'}; $query = $form{'query'}; $stype = $form{'stype'}; $release = $form{'release'}; $release = $remotePrefixFtpPackagesDefault if !$release || !defined($remotePrefixFtpPackages{$release}); $script_name = &env('SCRIPT_NAME'); if ($path_info eq "/source") { print "Content-type: text/plain\n\n"; open(R, $0) || do { print "ick!\n"; &exit; }; while() { print } close R; &exit; } # Full text search in ports//port>/pkg-descr if ($stype eq 'pkgdescr') { local($url) = 'http://www.FreeBSD.org/cgi/search.cgi?source=pkgdescr&max=25'; $query =~ s/\s+/+/g; print "Location: $url&words=$query\n"; print "Content-type: text/plain\n\n"; &exit; } &header; if ($path_info eq "/faq.html") { &faq; &footer; &footer2; &exit(0); } # allow `/ports.cgi?netscape' where 'netscape' is the query port to search # this make links to this script shorter if (!$query && !$type && $query_string =~ /^([^=&]+)$/) { $query = $1; } # automatically read collections, need only 0.2 sec on a pentium @sec = &readcoll; &forms; $query =~ s/^\s+//; $query =~ s/\s+$//; if ($query_string eq "" || (!$query && !$type)) { &footer; &footer2; &exit(0); } #warn "type: $type time: $time section: $section stype: $stype query: $query"; &check_input; $counter = 0; # search if ($query) { &readindex($relDate{$release}, *today, *msec); $query =~ s/([^\w\^])/\\$1/g; &search_ports; } # ports changes else { &readindex('today', *today, *msec); &readindex($time, *past, *msec); &out_ports; } if (!$counter) { print "Sorry, nothing found.\n"; print qq{You may look for other } . qq{FreeBSD Search Services.\n}; } else { print "
\n"; } print "
\n"; &footer; &footer2; diff --git a/en/cgi/query-pr.cgi b/en/cgi/query-pr.cgi index 0be0399b54..6a0d94b34c 100755 --- a/en/cgi/query-pr.cgi +++ b/en/cgi/query-pr.cgi @@ -1,224 +1,224 @@ #!/usr/bin/perl -T -# $FreeBSD: www/en/cgi/query-pr.cgi,v 1.25 2000/12/29 12:43:12 wosch Exp $ +# $FreeBSD$ $ENV{'PATH'} = "/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin"; %mons = ('Jan', '01', 'Feb', '02', 'Mar', '03', 'Apr', '04', 'May', '05', 'Jun', '06', 'Jul', '07', 'Aug', '08', 'Sep', '09', 'Oct', '10', 'Nov', '11', 'Dec', '12'); require "./cgi-lib.pl"; require "./cgi-style.pl"; require "getopts.pl"; &Getopts('p:'); if ($opt_p) { $input{'pr'} = $opt_p; } else { if (! &ReadParse(*input)) { print &html_header("PR Query Interface"); print "

Please enter the PR number you wish to query:

\n"; ($scriptname = $ENV{'SCRIPT_NAME'}) =~ s|^/?|/|; $scriptname =~ s|/$||; ($summary = $scriptname) =~ s/query-pr/query-pr-summary/; print "
\n"; print "
\n"; print "

See also the PR summary

\n"; print &html_footer; exit 0; } } # allow query-pr.cgi? queries if (!($pr = $input{'pr'}) && &MethGet) { $pr = $ENV{'QUERY_STRING'}; } # be tolerant to / queries $pr =~ s%^.+/%%; # remove / part if ($pr =~ /(\d+)/) { $pr = $1; } else { $pr = 0; } $pr = int($pr); # numeralize: "0123" -> 123 if ($pr < 1 || $pr > 99999) { print &html_header("FreeBSD Problem Report"); print "

Invalid problem report number: $pr

\n"; print &html_footer; exit 0; } unless (open(Q, "query-pr --restricted -F $pr 2>&1 |")) { print &html_header("Server error"); print "

Unable to open PR database.

\n"; print &html_footer; die "Unable to query PR's"; } if ($input{'f'} eq 'raw') { print "Content-Type: text/plain\r\n\r\n"; print ; close(Q); exit 0; } $inhdr = 1; $multiline = 0; $from = ""; $replyto = ""; while() { chop; $html_fixup = 1; if (/^query-pr: /) { print &html_header("FreeBSD problem report"); if ($_ ne "query-pr: no PRs matched") { print "

query-pr said:\n"; print "

$_\n";
 	    print ;
 	    print "
\n"; } elsif (($* = 1) && `query-pr $pr 2>&1` =~ /^>Confidential:\s+yes/) { print "

Sorry, PR $pr exists but is confidential\n"; } else { print "

No PR found matching $pr\n"; } print &html_footer; exit; } # In e-mail header if ($inhdr && /^From:\s*(.*)$/i) { $from = $1; $from =~ s/.*<(.*)>.*/$1/; $from =~ s/\s*\(.*\)\s*//; } if ($inhdr && /^Reply-to:\s*(.*)$/i) { $replyto = $1; $replyto =~ s/.*<(.*)>.*/$1/; $replyto =~ s/\s*\(.*\)\s*//; } # End of e-mail header if ($inhdr && /^$/) { $from = $replyto if ($replyto); $email = $from; $email .= '@FreeBSD.org' unless ($email =~ /@/); $inhdr = 0; } if (/^>Responsible:/) { $_ = &getline($_); s/\(.*\)//; # remove personal name s/\s+//g; $_ = $_ . '@FreeBSD.org' if !/@/; $_ = '>Responsible:' . $_ . ''; $html_fixup = 0; } s/^>Last-Modified:\s*$/>Last-Modified: never/; if (/^>Number:/) { $number = &getline($_); } elsif (/^>Category:/) { $cat = &getline($_); } elsif (/^>Synopsis:/) { $syn = &getline($_); $syn =~ s/[\t]+/ /g; $origsyn = $syn; $syn = &fixline($syn); print &short_html_header("Problem Report $cat/$number: $syn"); print "

Problem Report $cat/$number

\n"; print "$syn

\n

\n"; } else { next if $inhdr; if (/^>(\S+):\s*(.*)/) { print $trailer . "\n" unless ($blank); $trailer = "
$1
\n"; if ($html_fixup) { $trailer .= &fixline($2); } else { $trailer .= $2; } if ($1 eq "Originator" && $from ne "") { # add email address $trailer .= " <" . &fixline($from) . ">"; } $blank = !($2); $multiline = 0; } else { unless ($multiline) { next if /^\s*$/; print $trailer . "\n
\n";
 	    }
 	    $multiline = 1;
 	    $blank = 0;
 	    print $html_fixup ? &fixline($_) : $_ , "\n";
 	    $trailer = "
"; } } } close(Q); print "$trailer\n" unless ($blank); print "
"; $origsyn =~ s/[^a-zA-Z+.@-]/"%" . sprintf("%02X", unpack("C", $&))/eg; $email =~ s/[^a-zA-Z+.@-]/"%" . sprintf("%02X", unpack("C", $&))/eg; print qq`Submit Followup | Raw PR\n`; print &html_footer; exit 0; sub getline { local($_) = @_; ($tag,$remainder) = split(/[ \t]+/, $_, 2); return $remainder; } sub cvsweb { local($file) = shift; $file =~ s/[,.;]$//; - return 'http://www.FreeBSD.org/cgi/cvsweb.cgi/' . $file; + return 'http://cvsweb.FreeBSD.org/' . $file; } sub srcref { local($_) = shift; local($rev) = '(rev\.?|revision):?\s+[0-9]\.[0-9.]+(\s+of)?'; local($src) = '((src|www|doc|ports)/[^\s]+)'; if (m%$rev\s*$src%oi || m%$src\s*$rev%) { s#$src#sprintf("%s", 34, &cvsweb($1), 34, $1)#ge; } return $_; } sub fixline { local($line) = shift; $line =~ s/&/&/g; $line =~ s//>/g; $line =~ s%((http|ftp)://[^\s"\)\>,;]+)%$1%gi; $line =~ s%(\WPR[:s# \t]+)([a-z386]+\/)?([0-9]+)%$1$2$3%ig; return &srcref($line); } diff --git a/en/conspectus/stable/2000/05/29.sgml b/en/conspectus/stable/2000/05/29.sgml index 861cb4df7c..3195acd088 100644 --- a/en/conspectus/stable/2000/05/29.sgml +++ b/en/conspectus/stable/2000/05/29.sgml @@ -1,490 +1,490 @@ - + %includes;]> &header;
Dates # Posts Subject
May 23 - May 27 20 Re: ad0 drivers revisited
May 25 - 29 May 19 Problems compiling FreeBSD stable
May 24 - May 26 10 4-stable won't boot
May 23 - May 23 1 solved Re: spontaneous reboots
May 26 - May 27 5 making 4.0 DOS resistant
May 23 - May 23 2 Problems with NFS on FreeBSD 4.0
May 27 - May 29 3 Strange message
May 24 - May 27 5 Transparent proxies and fetch
May 23 - May 23 6 tun0: Warning: CHAP 0x81 not supported
May 23 - May 23 4 Re: -CURRENT Mylex on stable?
May 24 - May 25 7 ntpdate could not sync time from any server
May 25 - May 26 4 3DNow! binutils & Mesa for -STABLE

May 23 - May 27 (20 posts): Re: ad0 drivers revisited

Last week's thought-provoking debate continued this week; the discussion focused on a few possible workarounds for circumventing the well-known ad driver bug early in the booting process. It seems that an effective solution has not still been implemented. However, a number of interesting suggestions were offered.

The point is that, in order to prevent any HD damage, PIO mode should be set by default very early at boot time. Albeit the bug only manifests itself in the worst form in a very limited number of cases -- ie rather special combinations of hardware components -- when it does, it does ...


May 25 - May 29 (19 posts): Problems compiling FreeBSD stable

On May 25, 2000, [Graham Wheeler] met a number of errors in the make world process while compiling gcc. After some experimentation, he got rid of them by using the "i" option for make. He seems to be the only person in the forum to have found these errors; probably, they were caused by an incorrect updating procedure.

Although the problems were soon easily solved, several fine points were hinted at in this thread: in particular, such a secondary specific procedure as "make includes", which is (usually) relevant to -CURRENT.


May 24 - May 26 (10 posts):═ 4-stable won't boot

The boot problem in question turned out to be trivial: the ata device was commented out (!) in the kernel configuration file.

The correspondents, subsequently, went on to describe their experience with such dangerous options as AUTO_EOI_1 and AUTO_EOI_2.


May 23 - May 23 (1 posts):═solved Re: spontaneous reboots

On May 23, 2000, [Fritz Heinrichmeyer] announced that he had solved his spontaneous reboot problem by upgrading to -STABLE -- the SMP cleanups seemed to require a recompilation.

Incidentally, I have read about spontaneous reboots a good number of times in the FreeBSD mailing lists. The most common cause is bad hardware; sometimes, as in the present situation, the cause is of software nature. Upgrading to -STABLE, as is very often the case, is the solution to that vexed question.

On May, 29, however, Fritz wrote again. Other spontaneous reboots, in fact, occurred a few days later. Also, [MI] reported on the same matter -- MI, too, has been running SMP boards. This anomalous behavio(ur) seems to be specifically related to the SMP code, and is currently under investigation.


May 26 - May 27 (5 posts):═making 4.0 DOS resistant

[Sameer R.Manek] was seeking information about FreeBSD strategies for handling DOS attacks.

[Bill Fumerola] pointed out that such options as ICMP_BANDLIM, TCP_DROP_SYNFIN, and TCP_RESTRICT_RST, albeit useful in fighting DOS attacks (e.g. attacks on IRC servers), cannot cope with spoofed ip syn floods. In particular, Bill is going to publish some (on-line) material about DOS attacks at large:

stay tuned... though I'll probably post my findings/suggestions on -security when I finally write them up.


May 23 - May 23 (2 posts):═Problems with NFS on FreeBSD 4.0

[Paul A. Howes] , answering a letter of [Zherdev Anatoly]'s, suggested a procedure for installing ports over a network:

What I usually do is perform the first-time build and install on the server. Then, when I need one of the applications in /usr/ports on a different system, I NFS-mount /usr/ports and perform a "make reinstall" to get the application installed, but not built from scratch, on the client.

I do it this way, because I had been alerted to permission problems in the building of various components. It's just simpler to do all of the builds on a server, and only do the installs on the client. Besides, my server is a faster machine than the clients I have, so builds go MUCH faster on it.


May 27 - May 29 (3 posts):═Strange message

[Derek Tattersall] wrote:

I am getting a message shortly after boot-up finishes which puzzles me. The message follows:

   lorne /kernel: arplookup 0.0.0.0 failed: host is not on local network.

[Lucas Ertl] replied:

I had almost the same message here, but it was host 13.10.15.10 instead of 0.0.0.0. The problem was a program called "LanGuard", installed on the Win2k box of one of my co-workers, that continously sent out arp requests but spoofed the MAC address of the machines NIC.

You could try:

   tcpdump -n -e -p arp

and then hunt down the MAC address.


May 24 - May 27 (5 posts):═Transparent proxies and fetch

[Joe Shevland] found this error:

      Attempting to fetch from http://people.FreeBSD.org/~andreas/download/.
       fetch: empty reply from people.FreeBSD.org

Both the stable forum and the c.u.b.f.m. newsgroup provided him with the long sought-after answer:

Try

      "make FETCH_BEFORE_ARGS=-tb"

or add

      "FETCH_BEFORE_ARGS=-tb"

to

      /etc/make.conf.

May 23 - May 23 (6 posts):═ tun0: Warning: CHAP 0x81 not supported

After setting up a pptp vpn (using pptp client from ports), [Michael Lucas] read these messages while trying to connect:

      May 23 10:02:24 proxybox (unknown)[2067]: log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:531]: 
       Client connection established.
       May 23 10:02:25 proxybox (unknown)[2067]: log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:637]:
       Outgoing call established.
       May 23 10:02:28 proxybox ppp[2065]: tun0: Warning: CHAP 0x81 not supported

[Brian Somers] responded:

This (CHAP 0x81) is M$CHAPv2. An implementation will be committed to -current RSN. The work has been done by [Nathan Binkert]


May 22 - May 23 (4 posts):═Re: -CURRENT Mylex on stable?

[Shawn Barnhart] asked for the diffs making Mylex work under -STABLE.

[Mike Smith] rejoined:

1) Get the diffs.

You will need a CVS repository, or use the cvsweb interface - at http://www.freebsd.org/cgi/cvsweb.cgi to extract the diffs. + at http://cvsweb.FreeBSD.org/ to extract the diffs. Note that mlx.c, mlx_disk.c, mlx_pci.c and mlxvar.h all changed in this fix.

2) Apply the diffs.

Shawn Barnhart:

I'm missing where the end result of diff/patch differs from the files themselves. It's a nice exercise, but kind of a PITA when you're not a CVS user.

Mike Smith:

The goal is to extract the changes I made to portions of the driver that are largely common between the two versions.


May 24 - May 25 (7 posts):═ntpdate could not sync time from any server

[Lev Serebryakov] could not syncronize time on his homebox via ntpdate over a V.90 connection.

On the same wavelenght, complaining about ntpdate not syncing over a DSL line, [Glen Gross] added:

I have had the same experience, with a DSL line. I don't know if ntpdate requires the time to be within a certain threshold before it will sync or not.
Does anyone know the answer to this?

[Ian Smith] replied:

Yes, it does; -t sets the time ntpdate will wait for a valid response. Still get one of these logged once every few days when upstream PPP link is extra heavily used, but used to get it much more often before using:

      ntpdate -t 2.4 -s ntp.ml.csiro.au ntp.cs.mu.oz.au judge.lis.net.au

That's 2.4 seconds. man ntpdate isn't exactly clear re the unit format, but it does say that the default of 1 second is suitable for a LAN.


May 25 - May 26 (4 posts):═3DNow! binutils & Mesa for -STABLE

[Randall Hopper] posted the following message:

Thanks to David O'Brien for upgrading -current's binutils. This new version supports AMD 3DNow! for the K6-2, K6-III, and Athelon folks.

Wanting 3DNow support in gas, I pulled a copy from CVS and built it for 3.4-RELEASE (w/ gdb commented out). Now Mesa and friends detect and build in 3DNow support for Mesa on -stable.

For other -stable folks that want to give it a shot, just fetch copies of src/contrib/binutils and src/gnu/usr.bin/binutils modules from the latest CVS

   ("cvs checkout <module>").

Also, I'll be happy to send binutils exec binaries to anyone running 3.4.

[Wilko Bulte] asked:

Do thinks like fxtv use 3dnow to their advantage (I guess not)? But I assume the various mpeg* things might?

[Randall Hopper] remarked:

No fxtv doesn't, and I think you're right. As I recall MMX adds SIMD integer ops which is where the boost would be for things like pixel repacking. 3DNow's primary add was parallel floating/fixed point I believe.

Rather than reinvent the wheel, I'll likely stack fxtv on the hermes port one of these days if there isn't a big turn-out for an alternative video API.


  • The present Conspectus expresses my strictly personal understanding of what occurred on the FreeBSD-stable mailing list during the specified week.

  • I may have made errors and/or mistakes as well as typos. If you feel that this is indeed the case, and/or that I have omitted some significant thread or part of a thread, feel free to contact me via email. Constructive criticism is more than welcome.

Salvo Bartolotta

&footer; diff --git a/en/news/1996/index.sgml b/en/news/1996/index.sgml index 9574e1ffda..91bfc58405 100644 --- a/en/news/1996/index.sgml +++ b/en/news/1996/index.sgml @@ -1,54 +1,54 @@ - + %includes; News Home'> %newsincludes; ]> &header;

December 1996

  • 24-Dec-1996 FreeBSD 2.2-BETA has been released. Please see the Release Notes for more information.

  • 13-Dec-1996 FreeBSD 2.2-RELEASE will not support installation on machines with less than 5MB of RAM or 1.2MB floppy drives. Please see the original announcement for more information.

November 1996

  • 15-Nov-1996 FreeBSD 2.1.6-RELEASE is out. Please see the release notes for more information.

  • 4-Nov-1996 The FreeBSD CVS development + href="http://cvsweb.FreeBSD.org/">CVS development tree has branched again. See here for more information.

&newshome; &footer; diff --git a/en/news/1998/index.sgml b/en/news/1998/index.sgml index 921e23c642..cb35c7a46d 100644 --- a/en/news/1998/index.sgml +++ b/en/news/1998/index.sgml @@ -1,242 +1,242 @@ - + %includes; News Home'> %newsincludes; ]> &header;

December 1998

  • 28-Dec-98 Unless circumstances dictate otherwise, FreeBSD 3.0 will depart the -CURRENT branch late in the day on 15 January 1999. The 3.1 release will follow 30 days later, on 15 February 1999. Developers should consider this as ADVANCE NOTICE of these events.

  • 13-Dec-98 Walnut Creek CDROM has opened the FreeBSD Mall, a site devoted to the commercial aspects of FreeBSD, including add-ons, hardware, and commercial tech-support. To advertise or sell your products or services at the FreeBSD Mall, contact BSDi.

November 1998

  • 30-Nov-98 FreeBSD 2.2.8 has been released. Please see the Release Information page for more details. Also be sure to check the release errata after installation for any late-breaking issues with 2.2.8 that you might need to be aware of.

  • 26-Nov-98 FreeBSD Rocks is an initiative designed to provide the FreeBSD community with the latest FreeBSD news, software and resources. All areas include search facilities, making keyword searching of historical posts a breeze. The pages are updated daily and everyone is invited to sign up an post an article. If it happened today, you'll see it on FreeBSDRocks.

October 1998

  • 15-Oct-98 FreeBSD 3.0 has been released. See the Release Information page for details. Also be sure to check the release errata after installation for any late-breaking issues with 3.0 that you might need to be aware of.

September 1998

  • 15-Sep-98 September 15th is the scheduled date for entering BETA with the 3.0-CURRENT tree. As all of you already (should) know, 3.0 is scheduled for release on October 15th so this gives us a nice 30 day BETA period. During this time, I don't expect anyone to drop in significant new work or otherwise perturb the 3.0-CURRENT tree in such a way that violates the general idea of a BETA (you're supposed to test what you have, not move the goalposts every couple of days :).

  • 13-Sep-98 After more than a year of development, the Common Access Method SCSI layer for FreeBSD will be integrated into 3.0-CURRENT on Sunday, September 13th. The CAM development team is currently busy ensuring that the integration process goes as smoothly as possible, so please understand that we may be slow to respond to questions about CAM during that time.

  • 09-Sep-98 Perl5 is now imported into the 3.0-CURRENT source tree.

  • 05-Sep-98 The BSD CD Giveaway List. If somebody has a CD to give away (recipient pays for shipping) or to lend locally, they can put their email address on the list. Hardware and literature can also be given away. We encourage people to donate CDs to local libraries and put them on the list as well.

  • 01-Sep-98 First issue of Daemon News arrives day earlier. This ezine is by the BSD community for the BSD community. See http://www.daemonnews.org/

August 1998

  • 31-Aug-98 FreeBSD -CURRENT branch (the future 3.0-RELEASE) has switched to ELF from a.out format. People involved did a great job; transition went smooth. Check the freebsd-current@FreeBSD.org mail archive for more information on the transition to ELF.

  • 23-Aug-98 Suidcontrol-0.1 utility has been released. The suidcontrol is an experimental utility for managing suid/sgid policy under FreeBSD. You can get more information at http://www.watson.org/fbsd-hardening/suidcontrol.html

  • 09-Aug-98 FreeBSD Security How-To has been published. This work is currently in beta and can be found at http://www.best.com/~jkb/howto.txt

July 1998

May 1998

  • 30-May-98 FreeBSD and Apache are used in this very useful article on implementing a web farm using round-robin DNS in WEBTechniques.com.

  • 23-May-98 The second issue of the FreeBSD Newsletter is now available in Adobe PDF format (also by FTP). A help file is available to assist you in selecting and using a PDF viewer. Article submissions, advertisements, and letters to the editor should be sent to newsletter@FreeBSD.org.

  • 01-May-98 The FreeBSD Project set up Anonymous CVS for the - FreeBSD CVS + FreeBSD CVS tree. Among other things, it allows users of FreeBSD to perform, with no special privileges, read-only CVS operations against one of the FreeBSD project's official anoncvs servers.

April 1998

  • 16-Apr-98 The new 4 CD set of FreeBSD 2.2.6 is now in stock and should start shipping to subscription and back-order customers tomorrow. More information on the CD contents are available from http://www.wccdrom.com/.

  • 11-Apr-98 The new FreeBSD project FreeBSD Mozilla Group is created. The FreeBSD Mozilla Group supports and improves the free available Netscape web browser, otherwise known as Mozilla.

March 1998

  • 25-Mar-98 FreeBSD 2.2.6 has been released. See the Release Information page for details. Also be sure to check the release errata after installation for any late-breaking issues with 2.2.6 that you should know about.

February 1998

January 1998

  • 08-Jan-98 Improved support for Plug-n-Play cards has now been integrated into both 3.0-CURRENT and 2.2-STABLE branches now. This is available in source form via the CVSup utility or in binary release snapshots from current.FreeBSD.org

&newshome; &footer; diff --git a/en/projects/mozilla.sgml b/en/projects/mozilla.sgml index 0b70a6e369..e0e45e70f1 100644 --- a/en/projects/mozilla.sgml +++ b/en/projects/mozilla.sgml @@ -1,89 +1,89 @@ - + %includes; ]> &header;

Overview

Following Netscape's decision to publicly release the source code for their client product, otherwise known as Mozilla, a number of free software groups have become actively involved in supporting and improving this technology for their own uses. The FreeBSD Mozilla Group seeks to provide a focus for such work in the FreeBSD world, providing centralized resources such as a CVS repository, a mailing list and other tools for collaborative development.

Resources

CVSup
CVSup provides ongoing synchronization with the central Mozilla repository, either for the CVS bits themselves (for those wishing to keep a local repository) or for a "checked out" version, suitable for directly building or editing. Fetch the CVSup binaries from ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/ and use a supfile which looks something like this:
 *default prefix=/usr/src/mozilla base=/usr/src/mozilla host=mozilla.FreeBSD.org release=cvs delete compress use-rel-suffix tag=.
 
 ## Main Source Tree
 cvs-mozilla
       
anoncvs
Anonymous CVS allows anyone to check things out of the FreeBSD Mozilla repository using the standard cvs(1) commands. Simply set your CVSROOT environment variable to point to:
       anoncvs@mozilla.FreeBSD.org:/mozilla
       

And you can then use cvs(1) for doing read-only operations on the Mozilla CVS repository.

freebsd-mozilla
The FreeBSD-Mozilla mailing list is provided for developers and users of the FreeBSD mozilla port to discuss issues relating to building, using and managing the mozilla sources and any FreeBSD-specific changes to them. To subscribe, send mail to majordomo@FreeBSD.org and say subscribe freebsd-mozilla in the body of your message.

More information

Mozilla.org
The Mozilla.org project provides central control over Mozilla for all platforms, not just FreeBSD.
Cyclic Software
Cyclic Software has some good on-line tutorials on CVS
&footer; diff --git a/en/releases/2.2.8R/errata.sgml b/en/releases/2.2.8R/errata.sgml index 58f01a6c21..13fa67fccd 100644 --- a/en/releases/2.2.8R/errata.sgml +++ b/en/releases/2.2.8R/errata.sgml @@ -1,68 +1,68 @@ - + %includes; ]> - + &header;
 The file 
 ERRATA.TXT contains post-release ERRATA for 2.2.8 and should always
 be considered the definitive place to look *first* before reporting
 a problem with this release.  This file will also be periodically
 updated as new issues are reported so even if you've checked this
 file recently, check it again before filing a bug report.  Any
 changes to this file are also automatically emailed to:
 
 	freebsd-stable@FreeBSD.org
 
 For 2.2.8 security advisories, see:
 
 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/
 
 For the latest information.
 
 ---- Security Advisories:
 
 Current active security advisories for 2.2.8:   None
 
 ---- System Update Information:
 
 o /usr/sbin/sysctl is an invalid link and whereis(1) doesn't work.
 
 Fix: sysctl(8) has actually moved to /sbin/sysctl.  Simply create
      a symbolic link for compatability purposes as follows:
 
         ln -sf /sbin/sysctl /usr/sbin
  
      or syncronize your sources with 2.2-stable and rebuild/install
      from /usr/src/usr.bin/whereis/ and just rm /usr/sbin/sysctl  
 
 o    /usr/share/doc/FAQ is in spanish.
 
 Fix: This was a build failure which affected only the FAQ and has since
      been fixed.  If you are already cvsup/CTM'ing the doc-all tag then
      you can simply remake and install the FAQ from sources, otherwise
      grab ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/FAQ.tar.gz and unpack
      as follows:  tar --unlink -xvzf FAQ.tar.gz -C /usr/share/doc
      to get an english FAQ.
 
 o    getpwnam(3) semantics are incorrect in some cases.
  
 Fix: If passed a string longer than the maximum allowed for a user name,
      getpwnam will incorrectly return an entry for a user that matches the
      initial characters in the string up to the maximum length allowed for a
      user name.  To correct this behaviour, libc needs to be patched and
      recompiled.  The appropriate patch can be obtained from:
-     http://www.FreeBSD.org/cgi/cvsweb.cgi/src/lib/libc/gen/getpwent.c.diff?r1=1.35.2.2&r2=1.35.2.3
+     http://cvsweb.FreeBSD.org/src/lib/libc/gen/getpwent.c.diff?r1=1.35.2.2&r2=1.35.2.3
 
 

Release Home &footer; diff --git a/en/releases/3.2R/errata.sgml b/en/releases/3.2R/errata.sgml index a9e7368ace..f3becd0756 100644 --- a/en/releases/3.2R/errata.sgml +++ b/en/releases/3.2R/errata.sgml @@ -1,76 +1,76 @@ - + %includes; ]> - + &header;
 The file 
 ERRATA.TXT contains post-release ERRATA for 3.2 and should always
 be considered the definitive place to look *first* before reporting
 a problem with this release.  This file will also be periodically
 updated as new issues are reported so even if you've checked this
 file recently, check it again before filing a bug report.  Any
 changes to this file are also automatically emailed to:
 
 	freebsd-stable@FreeBSD.org
 
 For all FreeBSD security advisories, see:
 
 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/
 
 For the latest information.
 
 ---- Security Advisories:
 
 Current active security advisories for 3.2:     None
 
 ---- System Update Information:
 
 o The compat20 and compat21 distributions install themselves into
   /usr/lib/compat.  The compat20/compat21 distributions are a.out libraries,
   thus they should live in /usr/lib/compat/aout to match the
   "ldconfig_paths_aout" configuration in /etc/defaults/rc.conf.
                                                                               
 Fix: cd /usr/lib/compat
      mkdir -p aout
      mv lib*.so.*.* aout
 
 o /usr/bin/gdb crashes when debugging core files from static programs
 
 Fix: This was corrected in revision 1.3.2.2 of solib.c. Obtain the fixed
-     version via CVSup (see instructions in handbook) or apply the patch
+     version via CVSup (see instructions in handbook) or apply the patch
      from our CVSweb service.
 
 o While booting the install floppy, user sees the following message 
   and nothing seems to happen, nor can anything be entered from the keyboard:
  
      Keyboard: no
 
 Fix: Due to a lack of space, full support for old XT/AT (84-key) keyboards 
      is no longer available in the bootblocks.  Some notebook computers may
      also have this type of keyboard and if you are still using this kind of 
      hardware, you will see the above message about no keyboard being found
      when you boot from an installation CD-ROM or floppy.
   
      As soon as you see the message, hit the space bar and you will see
      the following prompt:
   
        >> FreeBSD/i386 BOOT
        Default: x:xx(x,x)/boot/loader 
        boot:
   
      Then enter `-Dh', and things should proceed normally with your keyboard
      type.  This only happens once at initial installation time and will
      not be a problem afterwards.
 
 

Release Home &footer; diff --git a/en/support.sgml b/en/support.sgml index fecaa506c2..32887d149d 100644 --- a/en/support.sgml +++ b/en/support.sgml @@ -1,938 +1,938 @@ + %includes; ]> &header;

Mailing lists

Mailing lists are the primary support channel for FreeBSD users, with numerous mailing lists covering different topic areas. When in doubt about what list to post a question to, post to freebsd-questions@FreeBSD.ORG. You can browse or search the mailing list archives at www.FreeBSD.org.

The FreeBSD Conspectus is a summary of some of the mailing lists produced each week, giving you an at-a-glance overview of recent discussions and decisions.

Several non-English mailing lists are also available:

If you create other FreeBSD mailing lists, let us know about them.

Newsgroups

There are a few FreeBSD specific newsgroups, along with numerous other newsgroups on topics of interest to FreeBSD users, though the mailing lists remain the most reliable way to get in touch with the FreeBSD developers. For miscellaneous FreeBSD discussion, see comp.unix.bsd.freebsd.misc. For important announcements, see comp.unix.bsd.freebsd.announce.

The BSD Usenet News Searcher have archives of all BSD-related Usenet newsgroups from June 1992 onwards.

IRC

While #freebsd channels exist on various IRC networks, the FreeBSD project does not control them or endorse IRC as a support medium. You may be ignored, insulted, or kicked out if you ask questions on any channel in IRC, though you may have slightly better luck in channels named #freebsdhelp where such exist. If you want to try these or any other channels on IRC, it is nonetheless at your own risk and any complaints about conduct on those channels should not be directed to the FreeBSD project. See also the FAQ entry for more information.

WEB Resources

GNATS Problem Report Database

Current FreeBSD problem reports are tracked using the GNATS database.

Problem reports may also be submitted to the development team using the send-pr(1) command on a FreeBSD system or by sending an email message to freebsd-bugs@FreeBSD.ORG. Please note that send-pr is preferred since messages sent to the mailing list are not tracked as official problem reports!

-

CVS Repository

+

CVS Repository

CVS (the Concurrent Version System) is the tool we use for keeping our sources under control. Every change (with accompanying log message explaining its purpose) from FreeBSD 2.0 to the present is stored here, and can be easily viewed from here (click on the link). To obtain a complete copy of the FreeBSD CVS repository or any of the development branches inside it, you may choose any one of following options:

  • cvsup if you are looking for on-demand, low overhead access using a custom utility (written in Modula-3 no less).
  • anoncvs if you are looking for on-demand access that has higher overhead than cvsup (in terms of wall time and bytes transferred) but is easier to use for checking out small pieces of the tree and requires nothing more than the cvs tools already bundled with FreeBSD.
  • CTM if you are looking for very low overhead, batch-mode access (basically, patches through email).
  • -
  • The web interface +
  • The web interface if you are looking to simply browse the repository in search of a specific change or file revision.
  • Finally, if you have got bandwidth to burn or you prefer / are forced to use FTP, you can simply mirror the CVS repository from ftp.FreeBSD.org.

Mirrors of the CVS Repository cgi script are available in California, California, Germany, Japan and Spain (English, Spanish).

User Groups

FreeBSD's widespread popularity has spawned a number of user groups around the world. If you know of a FreeBSD user group not listed here, let us know about it.

Australia

Europe

  • Austria. The BSD User Group Austria (BUGAT) is german-language oriented user group. Visit our server for more information.

  • The Netherlands. The Dutch FreeBSD User Group (NLFUG) has had its first meeting on oct 2, 1999. On this day 30 years before that, the second IMP was installed in Doug Englebart's lab at SRI. This, as you all know, was the start of something that grew to be the Internet (thanks to Edwin Kremer for bringing this under our attention).

  • Denmark BSD-DK. The Danish BSD user group. Promotion and support of BSD derived Operating Systems in Denmark. Mailing lists, lectures and workshops. Send mail subscription requests to bsd-dk-request@bsd-dk.dk.

  • KЖln (Cologne), Germany The CBUG (Cologne BSD Usergroup) caters to BSD users in the KЖln area. Meetings are on the fourth Friday of each month at the ``Campi'' Italian restaurant in the Richard-Wallraff-Platz.

  • Duisburg, Germany The Cosmo-Project is a user group with a difference. Instead of just meeting, they actively develop projects such as robots. Most users use FreeBSD, but it is not a specifically FreeBSD-related group.

  • France The French FreeBSD UG. Please follow the link for details.

  • Frankfurt, Germany FrankfurtBSD is a user group for the Rhein-Main area. We are currently looking for new members. As soon as we have grown larger, we would like to meet monthly and maintain minor projects.

  • Hamburg, Germany The BSDHH (BSD User Group Hamburg) meets on the first Wednesday of the month at 7.00pm in the Chinese restaurant LotosblЭte, LЖwenstraъe 22 in Hamburg-Eppendorf. Most members are FreeBSD users, although users of all BSD flavors are welcome.

  • Ireland The BUGI (BSD User Group Ireland) is currently a rather grandiose term for a mailing list and super-minimal web page. All BSD users and enthusiasts are welcome.

  • Italia The GUFI (Gruppo Utenti FreeBSD Italia) is an "italian powered" FreeBSD User Group. It is intended to help Italian FreeBSD users to find support and articles on/about FreeBSD in the Italian language. Please follow this link to know more about us.

  • Lublin, Poland The Lublin BSD Users Group. Please follow the link for details.

  • Lund, Sweden The Lund Linux User Group (LFUG) has nearly 50 members and covers FreeBSD and Solaris in addition to Linux. To join, contact Omar Dedovic

  • Mannheim, Germany The UUGRN (Unix Users Group Rhein-Neckar) provides a regional forum for users of all Unix flavors, with a stress on Linux and BSD. Meetings are held on the second Wednesday of each month at the "Eichbaum Brauhaus" in Mannheim-Käfertal and the fourth Thursday of each month at the "Vater Rhein" in Heidelberg.

  • MЭnchen (Munich), Germany The BIM (Berkeley In Munich) group caters for users of BSD-based systems in Oberbayern.

  • Regensburg, Germany The Unix and Linux User Group is a general Unix users group for anyone in Regensburg (Bavaria, Germany). We meet on every first Monday of the month in the Pub ``FilmbЭhne'' in Regensburg. Visit the web site or send a message to m.suess@2use.org.

  • Sweden The BSD Users Sweden (BUS) maintains a mailing list. To join, send mail to majordomo@stacken.kth.se with subscribe bus in the message.

  • Turkey The Turkish FreeBSD Users Group (TЭrkiye FreeBSD Kullanicilari Grubu) was founded in September 1999. TFUG is intended to help Turkish FreeBSD users to find support and articles on and about FreeBSD in the Turkish language. Contact M. Guven Mucuk for more info.

  • United Kingdom The FreeBSD UKUG (FreeBSD UK User's Group) exists for the benefit of FreeBSD users in the United Kingdom. Please follow the link for details.

North America

  • Ames, Iowa The Ames Free-Unix Group aims to promote the use of Free Unix. We meet on the campus of Iowa State University once a month and hold a presentation with an open question and answer session afterwards. You can join our mailing list by sending a blank email to aafugit-subscribe@aafugit.org.

  • Berkeley, CA The Berkeley Unix User Group is a general Unix users group for anyone in the San Francisco Bay Area. We meet on a weekly basis in downtown Berkeley. Visit the web site or send a message to buug-request@weak.org with subscribe in the body.

  • Chicago IL The Chicago FreeBSD Users Group (ChiFUG).

  • The Connecticut Free Unix user's Group (CFUG) is devoted to free Unix, but has resources for almost all Unixen. Their area of operation is Connecticut and Western Massachusetts. More information can be found at http://www.cfug.org.

  • The Houston TX Houston FreeBSD Users Group was formed March 1999. Our goal is to promote and educate Houston area computer users on FreeBSD Unix. We meet on the third Saturday of the month. The group operates a mailing list at http://www.houfug.org/mailman/listinfo/hou-freebsd Visit our website at http://www.houfug.org for more information.

  • Indianapolis IN Free Unix for Indianapolis is a non-profit organization dedicated to encouraging the use of Free Unix variants in and around Indianapolis. Essentially, we are a bunch of geeks who share a common passion: Unix. Visit the web site or send a message to info@fufin.org for additional information.

  • Kansas KULUA (Kansas Unix & Linux Users Association) is a Free Unix user group based in Lawrence, Kansas, but with users throughout eastern Kansas and western Missouri. We have about 120 members and meet biweekly. Visit the web site or email kulua@kulua.org for more information.

  • Kansas Wichita Area FreeBSD Users Group (WAFUG) is a free users group provided to anyone in the Wichita area for support with FreeBSD and other Unix and Unix-like operating systems. We meet twice a month, usually in a restaraunt where you can smoke or drink if you like. Please send us Email for more information or to find out how to get free shell account, www or ftp space on our system.

  • Las Vegas, NV The Vegas Free Unix User Group

  • Los Angeles CA The Yahoo Club group is a foundation for a Los Angeles based BSD user group.

  • New Mexico The NMLUG in Albuquerque meets once a month and supports both BSD and Linux users. To join the mailing list, send a message to majordomo@swcp.com with subscribe nmlug in the body.

  • New Orleans LA The New Orleans *BSD User Group meets twice a month. Contact Konrad Rzeszutek for more details. A web page will be posted soon.

  • New York NY D'Artagnan's FreeBSD Users Group.

  • Northern Arizona Yavapai Free Unix Users Group is now forming for *BSD/Linux, etc., users in Northern Arizona. Please contact Russell Carter ( rcarter@consys.com) for details.

  • Orlando, FL BUGO (BSD Users Group of Orlando) is a group based in Orlando, FL that aims to bring a friendly forum to all Unix users in the central Florida area, and hopefully beyond. See the BUGO web page for further details.

  • Phoenix AZ The Phoenix BSD Users group is fully open for business. Anyone from the Phoenix area please feel free to join in http://bsd.phoenix.az.us.

  • Portland, OR The Portland (Oregon) FreeBSD Users group meets on the third Thursday of each month. Mail Rick Hamell.

  • Reno NV RUUG (Reno Unix Users Group) meets monthly in Reno Nevada and discusses the use of FreeBSD and Linux. Contact Eric Blood or Todd Crenshaw for more information.

  • Research Triangle, NC The Triangle Area BSD Users Group is a users group for BSD users in the Research Triangle Park area of North Carolina, including the surrounding metropolitan areas of Raleigh, Durham, and Chapel Hill. People interested in this group may subscribe to the mailing list by sending a message to majordomo@tribug.org with subscribe tribug-members in the body.

  • Rhode Island The Rhode Island Free Unix Group supports every form of Unix that can be obtained freely. They can be contacted at: http://users.tmok.com/~rifug or by e-mail at: rifug@entropy.tmok.com

  • St. Louis, MO The St. Louis BSD User Group (STLBSD) has just formed on July 20, 2000 to promote BSD operating systems in the St. Louis area. We have strong ties to the 10 year old St. Louis Unix Users Group (SLUUG) and expect to be a positive force within our community. Our membership is open to anyone interested in learning more about BSD, several mailing lists are available through our website.

  • San Diego, California San Diego BSD Users Group for users of FreeBSD, OpenBSD and NetBSD. The meeting is first Thursday of every month at Borders Bookstore in Mission Valley Shopping Center. More information can be found here

  • North San Francisco Bay Area The BABUG (Bay Area BSD Users Group) has monthly meetings, alternating between San Francisco and Berkeley. Those interested in attending should visit the web site or send mail to the BABUG Web Master

  • Silicon Valley, CA The SVBUG (Silicon Valley BSD User Group), a forum for BSD and BSD embedded systems, meets on the First Thursday of the month. Meetings are held at the Carl's Jr. on First Street and Trimble Road in San Jose, California. For details on event or what is going on visit the website or send a message to webmaster@svbug.com.

  • East Texas The Unix Users of Deep East Texas is dedicated to all things Unix. This group is open to users of all flavors of Unix. We meet on the last Saturday of the month at the Angelina County Court House. See the web page for details, or send email to admin@uudet.org.

  • The Tampa Florida users group is now being formed. Interested parties can join the mailing list by sending mail to bsd-tug-request@bangheadhere.org with subscribe in the body.

  • Greater Toronto Area, Ontario: The GTABUG usergroup welcomes all BSD users. Monthly meetings give attendees a chance to share ideas, discussion, and information. Installathons and other events help preach the good news of BSD to the community. Come drop by for a meeting!

  • Tucson AZ TFUG: Tucson Free Unix Group, Arizona.

  • Utah SLLUG-BUG is a BSD Unix User Group affiliated with the Salt Lake Linux User Group (SLLUG). We meet in concert with SLLUG, since the BSD and Linux communities have so much in common. We meet on the third Wednesday of each month, check the web page for details.

  • Vancouver, BC The VanBUG (Vancouver BSD Users Group) is a group of volunteers who are passionate about FreeBSD, NetBSD, and OpenBSD. Their current goal is to raise awareness and also provide local assistance as much as we can.

  • Washington DC (DC Metropolitan Area) FreeBSD User Group is now forming. Please contact Richard Cramer, Sytex Access Ltd. at 703-425-2515, or preferred, email at rcramer@sytex.net to be put on a member distribution list. Initial meeting to be held in May.

  • Wichita, Kansas: A new FreeBSD users group has been created in Wichita, Ks. We are fairly new and working on our site, but we wanted to get it up as soon as we had it available. We do not currently meet. Visit our site http://wafug.dynip.com or E-mail the group organizer (ben177@yahoo.com) for more information!

  • Windsor, Ontario The Windsor Unix Users Group (Windsor, Ontario, Canada) covers BSD, Solaris, SCO, and others. This is not specifically a FreeBSD user group, but we do already have members running FreeBSD. The group operates a mailing list (wuug-list@unixpower.org). More information can be found at http://www.wuug.org/.

  • Wisconsin FreeBSD-Milwaukee Wisconsin meets occasionally and has a mailing list: freebsd-mke-l@ns.sol.net. send mail to freebsd-mke-l-request@ns.sol.net to subscribe.

Rest of the world

  • Ibaraki, Japan The Daibou East *BSD Users Group (DEBUG) is now forming for *BSD users in Tsukuba area.

  • Indonesia The Jogja FreeBSD Users' Group is based in Yogyakarta City, Indonesia. Send email to 22961476@students.ukdw.ac.id for more information.

  • Israel The Israeli BSD Users Group is an effort to promote the use of *BSD throughout the country, and to act as a center of information for all BSD users. It is currently run by FreeBSD users, but all users of bsd Variants are welcome aboard. We have a mailing list, hosted at bsd-il@osem.co.il. To subscribe, simply send mail to majordomo@osem.co.il, with the line "subscribe bsd-il" as the message body.

  • Kansai, Japan The Kansai *BSD User's Group, K*BUG (sorry for Japanese only), was established on November 13, 1999. It is expected to promote communication of any of the BSD variants' users. Some of its activities are to hold friendly parties of the members, and to hold seminars covering wide variety of topics. Please mail here ( kbug-admin@kbug.gr.jp ).

  • New Zealand The New Zealand FreeBSD User's group is located in Wellington. No meetings have been scheduled yet.

  • Sao Paulo, Brazil The FUG_SP_BR (Brazilian FreeBSD User Group) is a Portuguese language oriented user group intended to help Brazilian FreeBSD users to find support and articles on and about FreeBSD in the Portuguese language. The group meets in Sao Paulo, Brazil, every month. To join FUG_SP_BR mailing list, send a blank message to fug_sp_br-subscribe@yahoogroups.com

FreeBSD Development Projects

In addition to the mainstream development path of FreeBSD, a number of developer groups are working on the cutting edge to expand FreeBSD's range of applications in new directions.

FreeBSD Security Guide

Security resources available to FreeBSD users: PGP Key for Security Officers, advisories, patches and mailing lists.

Commercial Consulting Services

Whether you are just starting out with FreeBSD, or need to complete a large project, a consultant or two might be your answer.

General Unix Information

The X Window System

  • The XFree86 Project provides users of a variety of Intel based Unix systems, including FreeBSD, with an excellent X Window system.
  • The WINE project is working to provide the ability to run MS-Windows software on Intel based Unix systems such as FreeBSD, NetBSD and Linux.

Hardware

  • The comp.answers pc-hardware-faq is a great reference for people building their own machines.
  • Laptop users looking for PCCARD (aka PCMCIA) support not already provided in the FreeBSD base distribution should see the PAO distribution page for the latest and greatest experimental laptop support.
  • Intel Secrets -- What Intel Doesn't Want You To Know - lots of information about Intel chips.
  • Aad Offerman's Chip List - reference material on chips used in PC clones.
  • ASUS makes motherboards that work well with FreeBSD.

Related Operating System Projects

  • NetBSD is another free 4.4BSD-Lite based operating system which runs on several different architectures.
  • OpenBSD is another 4.4BSD derivative.
  • Linux is another free Unix-like system.
  • Lites is a 4.4 BSD Lite based server and emulation library that provides free Unix functionality to a Mach based system.
  • xMach is a Lites and Mach4 derivative designed to be small and efficient with extended functionality.
  • The GNU HURD project is another effort to develop a free Unix-like operating system.
&footer; diff --git a/en/usergroups.sgml b/en/usergroups.sgml index fecaa506c2..32887d149d 100644 --- a/en/usergroups.sgml +++ b/en/usergroups.sgml @@ -1,938 +1,938 @@ + %includes; ]> &header;

Mailing lists

Mailing lists are the primary support channel for FreeBSD users, with numerous mailing lists covering different topic areas. When in doubt about what list to post a question to, post to freebsd-questions@FreeBSD.ORG. You can browse or search the mailing list archives at www.FreeBSD.org.

The FreeBSD Conspectus is a summary of some of the mailing lists produced each week, giving you an at-a-glance overview of recent discussions and decisions.

Several non-English mailing lists are also available:

If you create other FreeBSD mailing lists, let us know about them.

Newsgroups

There are a few FreeBSD specific newsgroups, along with numerous other newsgroups on topics of interest to FreeBSD users, though the mailing lists remain the most reliable way to get in touch with the FreeBSD developers. For miscellaneous FreeBSD discussion, see comp.unix.bsd.freebsd.misc. For important announcements, see comp.unix.bsd.freebsd.announce.

The BSD Usenet News Searcher have archives of all BSD-related Usenet newsgroups from June 1992 onwards.

IRC

While #freebsd channels exist on various IRC networks, the FreeBSD project does not control them or endorse IRC as a support medium. You may be ignored, insulted, or kicked out if you ask questions on any channel in IRC, though you may have slightly better luck in channels named #freebsdhelp where such exist. If you want to try these or any other channels on IRC, it is nonetheless at your own risk and any complaints about conduct on those channels should not be directed to the FreeBSD project. See also the FAQ entry for more information.

WEB Resources

GNATS Problem Report Database

Current FreeBSD problem reports are tracked using the GNATS database.

Problem reports may also be submitted to the development team using the send-pr(1) command on a FreeBSD system or by sending an email message to freebsd-bugs@FreeBSD.ORG. Please note that send-pr is preferred since messages sent to the mailing list are not tracked as official problem reports!

-

CVS Repository

+

CVS Repository

CVS (the Concurrent Version System) is the tool we use for keeping our sources under control. Every change (with accompanying log message explaining its purpose) from FreeBSD 2.0 to the present is stored here, and can be easily viewed from here (click on the link). To obtain a complete copy of the FreeBSD CVS repository or any of the development branches inside it, you may choose any one of following options:

  • cvsup if you are looking for on-demand, low overhead access using a custom utility (written in Modula-3 no less).
  • anoncvs if you are looking for on-demand access that has higher overhead than cvsup (in terms of wall time and bytes transferred) but is easier to use for checking out small pieces of the tree and requires nothing more than the cvs tools already bundled with FreeBSD.
  • CTM if you are looking for very low overhead, batch-mode access (basically, patches through email).
  • -
  • The web interface +
  • The web interface if you are looking to simply browse the repository in search of a specific change or file revision.
  • Finally, if you have got bandwidth to burn or you prefer / are forced to use FTP, you can simply mirror the CVS repository from ftp.FreeBSD.org.

Mirrors of the CVS Repository cgi script are available in California, California, Germany, Japan and Spain (English, Spanish).

User Groups

FreeBSD's widespread popularity has spawned a number of user groups around the world. If you know of a FreeBSD user group not listed here, let us know about it.

Australia

Europe

  • Austria. The BSD User Group Austria (BUGAT) is german-language oriented user group. Visit our server for more information.

  • The Netherlands. The Dutch FreeBSD User Group (NLFUG) has had its first meeting on oct 2, 1999. On this day 30 years before that, the second IMP was installed in Doug Englebart's lab at SRI. This, as you all know, was the start of something that grew to be the Internet (thanks to Edwin Kremer for bringing this under our attention).

  • Denmark BSD-DK. The Danish BSD user group. Promotion and support of BSD derived Operating Systems in Denmark. Mailing lists, lectures and workshops. Send mail subscription requests to bsd-dk-request@bsd-dk.dk.

  • KЖln (Cologne), Germany The CBUG (Cologne BSD Usergroup) caters to BSD users in the KЖln area. Meetings are on the fourth Friday of each month at the ``Campi'' Italian restaurant in the Richard-Wallraff-Platz.

  • Duisburg, Germany The Cosmo-Project is a user group with a difference. Instead of just meeting, they actively develop projects such as robots. Most users use FreeBSD, but it is not a specifically FreeBSD-related group.

  • France The French FreeBSD UG. Please follow the link for details.

  • Frankfurt, Germany FrankfurtBSD is a user group for the Rhein-Main area. We are currently looking for new members. As soon as we have grown larger, we would like to meet monthly and maintain minor projects.

  • Hamburg, Germany The BSDHH (BSD User Group Hamburg) meets on the first Wednesday of the month at 7.00pm in the Chinese restaurant LotosblЭte, LЖwenstraъe 22 in Hamburg-Eppendorf. Most members are FreeBSD users, although users of all BSD flavors are welcome.

  • Ireland The BUGI (BSD User Group Ireland) is currently a rather grandiose term for a mailing list and super-minimal web page. All BSD users and enthusiasts are welcome.

  • Italia The GUFI (Gruppo Utenti FreeBSD Italia) is an "italian powered" FreeBSD User Group. It is intended to help Italian FreeBSD users to find support and articles on/about FreeBSD in the Italian language. Please follow this link to know more about us.

  • Lublin, Poland The Lublin BSD Users Group. Please follow the link for details.

  • Lund, Sweden The Lund Linux User Group (LFUG) has nearly 50 members and covers FreeBSD and Solaris in addition to Linux. To join, contact Omar Dedovic

  • Mannheim, Germany The UUGRN (Unix Users Group Rhein-Neckar) provides a regional forum for users of all Unix flavors, with a stress on Linux and BSD. Meetings are held on the second Wednesday of each month at the "Eichbaum Brauhaus" in Mannheim-Käfertal and the fourth Thursday of each month at the "Vater Rhein" in Heidelberg.

  • MЭnchen (Munich), Germany The BIM (Berkeley In Munich) group caters for users of BSD-based systems in Oberbayern.

  • Regensburg, Germany The Unix and Linux User Group is a general Unix users group for anyone in Regensburg (Bavaria, Germany). We meet on every first Monday of the month in the Pub ``FilmbЭhne'' in Regensburg. Visit the web site or send a message to m.suess@2use.org.

  • Sweden The BSD Users Sweden (BUS) maintains a mailing list. To join, send mail to majordomo@stacken.kth.se with subscribe bus in the message.

  • Turkey The Turkish FreeBSD Users Group (TЭrkiye FreeBSD Kullanicilari Grubu) was founded in September 1999. TFUG is intended to help Turkish FreeBSD users to find support and articles on and about FreeBSD in the Turkish language. Contact M. Guven Mucuk for more info.

  • United Kingdom The FreeBSD UKUG (FreeBSD UK User's Group) exists for the benefit of FreeBSD users in the United Kingdom. Please follow the link for details.

North America

  • Ames, Iowa The Ames Free-Unix Group aims to promote the use of Free Unix. We meet on the campus of Iowa State University once a month and hold a presentation with an open question and answer session afterwards. You can join our mailing list by sending a blank email to aafugit-subscribe@aafugit.org.

  • Berkeley, CA The Berkeley Unix User Group is a general Unix users group for anyone in the San Francisco Bay Area. We meet on a weekly basis in downtown Berkeley. Visit the web site or send a message to buug-request@weak.org with subscribe in the body.

  • Chicago IL The Chicago FreeBSD Users Group (ChiFUG).

  • The Connecticut Free Unix user's Group (CFUG) is devoted to free Unix, but has resources for almost all Unixen. Their area of operation is Connecticut and Western Massachusetts. More information can be found at http://www.cfug.org.

  • The Houston TX Houston FreeBSD Users Group was formed March 1999. Our goal is to promote and educate Houston area computer users on FreeBSD Unix. We meet on the third Saturday of the month. The group operates a mailing list at http://www.houfug.org/mailman/listinfo/hou-freebsd Visit our website at http://www.houfug.org for more information.

  • Indianapolis IN Free Unix for Indianapolis is a non-profit organization dedicated to encouraging the use of Free Unix variants in and around Indianapolis. Essentially, we are a bunch of geeks who share a common passion: Unix. Visit the web site or send a message to info@fufin.org for additional information.

  • Kansas KULUA (Kansas Unix & Linux Users Association) is a Free Unix user group based in Lawrence, Kansas, but with users throughout eastern Kansas and western Missouri. We have about 120 members and meet biweekly. Visit the web site or email kulua@kulua.org for more information.

  • Kansas Wichita Area FreeBSD Users Group (WAFUG) is a free users group provided to anyone in the Wichita area for support with FreeBSD and other Unix and Unix-like operating systems. We meet twice a month, usually in a restaraunt where you can smoke or drink if you like. Please send us Email for more information or to find out how to get free shell account, www or ftp space on our system.

  • Las Vegas, NV The Vegas Free Unix User Group

  • Los Angeles CA The Yahoo Club group is a foundation for a Los Angeles based BSD user group.

  • New Mexico The NMLUG in Albuquerque meets once a month and supports both BSD and Linux users. To join the mailing list, send a message to majordomo@swcp.com with subscribe nmlug in the body.

  • New Orleans LA The New Orleans *BSD User Group meets twice a month. Contact Konrad Rzeszutek for more details. A web page will be posted soon.

  • New York NY D'Artagnan's FreeBSD Users Group.

  • Northern Arizona Yavapai Free Unix Users Group is now forming for *BSD/Linux, etc., users in Northern Arizona. Please contact Russell Carter ( rcarter@consys.com) for details.

  • Orlando, FL BUGO (BSD Users Group of Orlando) is a group based in Orlando, FL that aims to bring a friendly forum to all Unix users in the central Florida area, and hopefully beyond. See the BUGO web page for further details.

  • Phoenix AZ The Phoenix BSD Users group is fully open for business. Anyone from the Phoenix area please feel free to join in http://bsd.phoenix.az.us.

  • Portland, OR The Portland (Oregon) FreeBSD Users group meets on the third Thursday of each month. Mail Rick Hamell.

  • Reno NV RUUG (Reno Unix Users Group) meets monthly in Reno Nevada and discusses the use of FreeBSD and Linux. Contact Eric Blood or Todd Crenshaw for more information.

  • Research Triangle, NC The Triangle Area BSD Users Group is a users group for BSD users in the Research Triangle Park area of North Carolina, including the surrounding metropolitan areas of Raleigh, Durham, and Chapel Hill. People interested in this group may subscribe to the mailing list by sending a message to majordomo@tribug.org with subscribe tribug-members in the body.

  • Rhode Island The Rhode Island Free Unix Group supports every form of Unix that can be obtained freely. They can be contacted at: http://users.tmok.com/~rifug or by e-mail at: rifug@entropy.tmok.com

  • St. Louis, MO The St. Louis BSD User Group (STLBSD) has just formed on July 20, 2000 to promote BSD operating systems in the St. Louis area. We have strong ties to the 10 year old St. Louis Unix Users Group (SLUUG) and expect to be a positive force within our community. Our membership is open to anyone interested in learning more about BSD, several mailing lists are available through our website.

  • San Diego, California San Diego BSD Users Group for users of FreeBSD, OpenBSD and NetBSD. The meeting is first Thursday of every month at Borders Bookstore in Mission Valley Shopping Center. More information can be found here

  • North San Francisco Bay Area The BABUG (Bay Area BSD Users Group) has monthly meetings, alternating between San Francisco and Berkeley. Those interested in attending should visit the web site or send mail to the BABUG Web Master

  • Silicon Valley, CA The SVBUG (Silicon Valley BSD User Group), a forum for BSD and BSD embedded systems, meets on the First Thursday of the month. Meetings are held at the Carl's Jr. on First Street and Trimble Road in San Jose, California. For details on event or what is going on visit the website or send a message to webmaster@svbug.com.

  • East Texas The Unix Users of Deep East Texas is dedicated to all things Unix. This group is open to users of all flavors of Unix. We meet on the last Saturday of the month at the Angelina County Court House. See the web page for details, or send email to admin@uudet.org.

  • The Tampa Florida users group is now being formed. Interested parties can join the mailing list by sending mail to bsd-tug-request@bangheadhere.org with subscribe in the body.

  • Greater Toronto Area, Ontario: The GTABUG usergroup welcomes all BSD users. Monthly meetings give attendees a chance to share ideas, discussion, and information. Installathons and other events help preach the good news of BSD to the community. Come drop by for a meeting!

  • Tucson AZ TFUG: Tucson Free Unix Group, Arizona.

  • Utah SLLUG-BUG is a BSD Unix User Group affiliated with the Salt Lake Linux User Group (SLLUG). We meet in concert with SLLUG, since the BSD and Linux communities have so much in common. We meet on the third Wednesday of each month, check the web page for details.

  • Vancouver, BC The VanBUG (Vancouver BSD Users Group) is a group of volunteers who are passionate about FreeBSD, NetBSD, and OpenBSD. Their current goal is to raise awareness and also provide local assistance as much as we can.

  • Washington DC (DC Metropolitan Area) FreeBSD User Group is now forming. Please contact Richard Cramer, Sytex Access Ltd. at 703-425-2515, or preferred, email at rcramer@sytex.net to be put on a member distribution list. Initial meeting to be held in May.

  • Wichita, Kansas: A new FreeBSD users group has been created in Wichita, Ks. We are fairly new and working on our site, but we wanted to get it up as soon as we had it available. We do not currently meet. Visit our site http://wafug.dynip.com or E-mail the group organizer (ben177@yahoo.com) for more information!

  • Windsor, Ontario The Windsor Unix Users Group (Windsor, Ontario, Canada) covers BSD, Solaris, SCO, and others. This is not specifically a FreeBSD user group, but we do already have members running FreeBSD. The group operates a mailing list (wuug-list@unixpower.org). More information can be found at http://www.wuug.org/.

  • Wisconsin FreeBSD-Milwaukee Wisconsin meets occasionally and has a mailing list: freebsd-mke-l@ns.sol.net. send mail to freebsd-mke-l-request@ns.sol.net to subscribe.

Rest of the world

  • Ibaraki, Japan The Daibou East *BSD Users Group (DEBUG) is now forming for *BSD users in Tsukuba area.

  • Indonesia The Jogja FreeBSD Users' Group is based in Yogyakarta City, Indonesia. Send email to 22961476@students.ukdw.ac.id for more information.

  • Israel The Israeli BSD Users Group is an effort to promote the use of *BSD throughout the country, and to act as a center of information for all BSD users. It is currently run by FreeBSD users, but all users of bsd Variants are welcome aboard. We have a mailing list, hosted at bsd-il@osem.co.il. To subscribe, simply send mail to majordomo@osem.co.il, with the line "subscribe bsd-il" as the message body.

  • Kansai, Japan The Kansai *BSD User's Group, K*BUG (sorry for Japanese only), was established on November 13, 1999. It is expected to promote communication of any of the BSD variants' users. Some of its activities are to hold friendly parties of the members, and to hold seminars covering wide variety of topics. Please mail here ( kbug-admin@kbug.gr.jp ).

  • New Zealand The New Zealand FreeBSD User's group is located in Wellington. No meetings have been scheduled yet.

  • Sao Paulo, Brazil The FUG_SP_BR (Brazilian FreeBSD User Group) is a Portuguese language oriented user group intended to help Brazilian FreeBSD users to find support and articles on and about FreeBSD in the Portuguese language. The group meets in Sao Paulo, Brazil, every month. To join FUG_SP_BR mailing list, send a blank message to fug_sp_br-subscribe@yahoogroups.com

FreeBSD Development Projects

In addition to the mainstream development path of FreeBSD, a number of developer groups are working on the cutting edge to expand FreeBSD's range of applications in new directions.

FreeBSD Security Guide

Security resources available to FreeBSD users: PGP Key for Security Officers, advisories, patches and mailing lists.

Commercial Consulting Services

Whether you are just starting out with FreeBSD, or need to complete a large project, a consultant or two might be your answer.

General Unix Information

The X Window System

  • The XFree86 Project provides users of a variety of Intel based Unix systems, including FreeBSD, with an excellent X Window system.
  • The WINE project is working to provide the ability to run MS-Windows software on Intel based Unix systems such as FreeBSD, NetBSD and Linux.

Hardware

  • The comp.answers pc-hardware-faq is a great reference for people building their own machines.
  • Laptop users looking for PCCARD (aka PCMCIA) support not already provided in the FreeBSD base distribution should see the PAO distribution page for the latest and greatest experimental laptop support.
  • Intel Secrets -- What Intel Doesn't Want You To Know - lots of information about Intel chips.
  • Aad Offerman's Chip List - reference material on chips used in PC clones.
  • ASUS makes motherboards that work well with FreeBSD.

Related Operating System Projects

  • NetBSD is another free 4.4BSD-Lite based operating system which runs on several different architectures.
  • OpenBSD is another 4.4BSD derivative.
  • Linux is another free Unix-like system.
  • Lites is a 4.4 BSD Lite based server and emulation library that provides free Unix functionality to a Mach based system.
  • xMach is a Lites and Mach4 derivative designed to be small and efficient with extended functionality.
  • The GNU HURD project is another effort to develop a free Unix-like operating system.
&footer; diff --git a/en/y2kbug.sgml b/en/y2kbug.sgml index 41e160bee4..867859755c 100644 --- a/en/y2kbug.sgml +++ b/en/y2kbug.sgml @@ -1,253 +1,253 @@ + %includes; ]> &header;

As management understanding of the Year 2000 problem (aka, "The Millennium Bug") increases, more and more companies are demanding official statements from the vendors of their hardware and software as to how their product will handle the year 2000 date rollover.

Organizations that use Unix and Unix-like operating systems such as FreeBSD are already one step ahead of the problem. FreeBSD will properly maintain time long after year 2000 passes.

Background information

(This section based on the text from the Linux Y2K compliance page)

As with all Unix and Unix-like operating systems, time and dates in FreeBSD are represented internally as the number of seconds since the 1st of January 1970 (the Unix "epoch"). Currently, that figure is stored as a 32 bit integer, and will run out part way through 2038. By then we should (hopefully) be using a counter of 64 bits (or greater) which should be good until the end of the universe.

Note that the OS being Y2K compliant will not fix errant applications that are not Y2K compliant.

Note also that the OS expects to read the current date and time from the CMOS clock of your computer. Not all of these devices correctly handle the year 2000. You are advised to test each platform individually to ensure that your hardware clock behaves correctly when going from 1999 to 2000, and that it correctly interprets the year 2000 as a leap year.

What you can do

FreeBSD will continue to properly maintain time well into the next century. Third party applications, however, might not. Your best defense against year 2000 issues is a good offense. Listening to stories claiming the coming meltdown of the world as we know it are not the way to solve the millennium bug. Nor is waiting until the last minute. The FreeBSD Project recommends that your organization apply sound system administration principles as the millennium approaches.

FreeBSD Year 2000 Statement

"After extensive analysis and testing, we believe that FreeBSD is 100% Y2K compliant. In the unlikely event that something has been overlooked, we will do our best to fix it as soon as possible."

David Greenman
Principal Architect, The FreeBSD project

Fixed problems

The following Y2K problems have been identified and fixed in FreeBSD.

misc/1380
Several programs have a hardcoded 19%d in responses for the year. Affected programs include: yacc, ftpd, and make. [Fixed: yacc v1.2 1999/01/18; ftpd v1.7 1996/08/05; make v1.4 1996/10/06; fixes in FreeBSD-2.2 and above]
conf/1382
The sed script in /etc/rc.local that builds the host/kernel ID line for the message of the day relies on the year not going past 1999. [Fixed v1.21 1996/10/24; fixes in FreeBSD-2.2 and above]
misc/3465
The etc/namedb/make-localhost command generates the DNS serial number as YYMMDD. In the year 2000, this will be generated as 1YYMMDD. [Fixed v1.2 1997/08/11; fixes in FreeBSD-2.2.5 and above]
gnu/4930 and gnu/8321
groff tmac macros have hardcoded 19 for generating some dates. [Fixed: tmac.e v1.3 1998/12/06; doc-common v1.10 1999/01/19; fixes in FreeBSD-3.1 and above]
bin/9323
In its obsolescent form, touch doesn't treat the two digit year specification correctly. Years in the range 00-68 are treated as 1900-1968 instead of 2000-2068. [Fixed v1.7 1999/01/05; fixes in FreeBSD-3.1 and above]
xntpd/parse/util/dcfd.c
+ href="http://cvsweb.FreeBSD.org/src/usr.sbin/xntpd/parse/util/dcfd.c">xntpd/parse/util/dcfd.c
The leap year calculations for the number of days in a year, and the conversion of DCF77 time to seconds since the Epoch were wrong. These errors affected all years. [Fixed v1.6 1999/01/12; fixes in FreeBSD-3.1 and above]
tar/getdate.y
+ href="http://cvsweb.FreeBSD.org/src/gnu/usr.bin/tar/getdate.y">tar/getdate.y
Function Convert() was hard-coded for two digit years in range 70-99. Now adjusted to allow two digit years for 1970-2069. The function does not allow for century non-leap years - y2k1 alert! [Fixed v1.4 1999/01/12; fixes in FreeBSD-3.1 and above]
fetch/http.c
+ href="http://cvsweb.FreeBSD.org/src/usr.bin/fetch/http.c">fetch/http.c
The HTTP protocol includes an obsolete date format which uses a two-digit year. Previous versions of fetch would interpret all such dates in the 1900s; subsequent to this revision, the pivot described in RFC 2068 is employed, which causes two-digit years to be interpreted as always belonging to the current century unless they would be 50 or more years in the future. Since the HTTP servers which use this obsolete format are no longer widespread, this is not expected to have a significant impact. [Fixed v1.24 1999/01/15; fixes in FreeBSD-3.1 and above]
misc/9500
The `edithook' script in the CVSROOT directory uses a raw tm_year and will therefore display 01/01/100 for 2000-JAN-01. [Fixed v1.2 1999/01/17; not relevant to FreeBSD releases]
bin/9501
Several cvs contrib files are not Y2K compliant. The log.pl and sccs2rcs.csh scripts prepend `19' to the year resulting in a display of 19100 for 2000. The log_accum.pl script uses a two digit year in one place and in another place assumes that the tm_year is year within century rather than years since 1900. [Fixed: log.pl v1.2 1999/01/15; sccs2rcs.csh v1.3 1999/01/15; fixes in FreeBSD-3.1 and above]
bin/9502
The groff number register `yr' is assigned from a (struct tm).tm_year and therefore represents the number of years since 1900, not the year within the century (see definition in troff/input.cc). [Fixed, now set mod 100, troff/input.cc V1.2 1999/06/03; fixed in FreeBSD-3.3]
bin/9503
PicoBSD's simple_httpd uses a raw tm_year and will therefore display 01/01/100 for 2000-JAN-01. [Fixed v1.2 1999/01/16; fixes in FreeBSD-3.1 and above]
bin/9505
Adduser uses a raw tm_year and will therefore display 100/01/01 for 2000-JAN-01. [Fixed v1.42 1999/01/15; fixes in FreeBSD-3.1 and above]
bin/9506
Cron uses a raw tm_year and will therefore display 100 for 2000. [Fixed v1.7 1999/01/16; fixes in FreeBSD-3.1 and above]
bin/9507
tcpslice(8) uses a raw tm_year and will therefore display 100y01m01d... for 2000-JAN-01. For compatibility, use a two-digit year until 2000.[Fixed v1.8 1999/01/20; fixes in FreeBSD-3.1 and above]
bin/14472
Date command does not take thousand/hundred digits. [Fixed v1.31 1999/11/10]
misc/14511
Chpass has a problem using 00 for expiration year.
bin/15852 and gnu/16045 and bin/16207
Groff predefined \*(DT [\*(td] string has Y2K bug. [Fixed with import of version 1.15 2000/01/12]
bin/15872
at(1) has a problem with valid time specifications if tm_year is 100, reports `garbled time'.
misc/16238
KerberosIV install does not work properly because there is a hard-wired expiration date of 12/31/99 in the Kerberos source for the ticket granter. [Fixed v1.24 1999/09/19]

More information

If you have further questions about FreeBSD's year 2000 compliance, or you have discovered an application running under FreeBSD that is not Y2K compliant, please contact the project at freebsd-bugs@FreeBSD.ORG.

&footer; diff --git a/es/news/newsflash.sgml b/es/news/newsflash.sgml index e3edf103ce..8ddc1d1be6 100644 --- a/es/news/newsflash.sgml +++ b/es/news/newsflash.sgml @@ -1,706 +1,706 @@ - + %includes; %newsincludes; ]> - + &header;

FreeBSD es un sistema operativo de rápido desarrollo. Mantenerse al día en los últimos desarrollos puede ser complicado. Para ayudarte a mantenerte al día, pásate por aquí periódicamente. También te recomendamos que te subscribas a la lista freebsd-announce .

La FreeBSD Real-Quick (TM) Newsletter (RQN) es una pequeña publicación mensual (a veces quincenal) sobre desarrollos recientes en el mundo de FreeBSD. Subscríbete a freebsd-announce para recibirla vía e-mail.

Para una detallada descripción de pasado, presente, y futuro de las releases, mira en la página de Información de Releases.

Diciembre 1999

Septiembre 1999

Agosto 1999

  • 10-Ago-1999 C-Forge, ha publicado un Entorno Integrado de Desarrollo (IDE) para FreeBSD, soportando C, C++, Perl, Tcl y muchos otros lenguajes.

Junio 1999

  • 10-Jun-1999 Los CD's de FreeBSD 3.2-RELEASE están siendo enviados. Los subscriptores que no tienen ningún acuerdo o condición especial de envío, deberín recibir los cd's en muy poco tiempo. Cualquier persona que desee pedir FreeBSD 3.2-RELEASE o subscribirse, puede hacerlo a través de The FreeBSD Mall.
  • 8-Jun-1999 Un nuevo Mirror Australiano del Web de FreeBSD Gracias a ITworks Consulting por la conectividad.

Mayo 1999

  • 18-Mayo-1999 FreeBSD 3.2 disponible. Por favor, mira en la página de Información Release para más detalles. Asegúrate de visitar la página de erratas después de la instalación por si se ha detectado algún problema de última hora.

Abril 1999

Marzo 1999

  • 05-Mar-1999La USENIX Association ha anunciado la 1999 USENIX Annual Technical Conference, para los días 6 al 11 de Junio de 1999 en Monterey, California, USA. Jordan Hubbard se encarga de FREENIX, dedicado exclusivamente a los ultimos desarrollos y aplicaciones interesantes dentro del mundo del software libre.
  • 01-Mar-1999Puesta en marcha de un servidor seguro para aceptar donaciones monetarias para el proyecto FreeBSD. Para más información mira en http://www.freebsdmall.com/donate/.
  • 01-Mar-1999Ya están disponibles los CD's de FreeBSD 3.1-RELEASE. Los suscriptores recibirán muy pronto sus CD's. Pásate por http://www.cdrom.com/ para hacer los pedidos.

Febrero 1999

  • 17-Feb-1999The Gartner Group ha presentado un documento Divorcing Thin Server Software from the Hardware examinando la tendencia de usar hardware y software de diferentes proveedores.
  • 15-Feb-1999 FreeBSD 3.1 ya está disponible. Por favor, mira la Información de la Release para más detalles. Asegúrate de leer la página de erratas después de la instalación por si se ha tenido que incluir algún tipo de información sobre la 3.1-release.
  • 04-Feb-1999El Diario de FreeBSD, una colección de documentos en formato how-to para principiantes en Unix.

Enero 1999

  • 20-Ene-1999 3.0-stable ha dejado de pertenecer a la rama -current. La próxima release en esta rama será la 3.1-RELEASE a mediados de Febrero e 1999.
  • 13-Ene-99El FreeBSD ezine es una colección mensual de artículos fáciles de leer escritos por usuarios y administradores de FreeBSD como tú.
  • 10-Ene-99Una "carta abierta" de Jordan Hubbard en la que se repasa el año 1998 y se plantean las posibilidades futuras de FreeBSD.

December 1998

  • 28-Dec-98Unless circumstances dictate otherwise, FreeBSD 3.0 will depart the -current branch late in the day on 15 January 1999. The 3.0.1 release will follow 30 days later, on 15 February 1999. Developers should consider this as ADVANCE NOTICE of these events.
  • 13-Dec-98Walnut Creek CD-ROM has opened the FreeBSD Mall, a site devoted to the commercial aspects of FreeBSD, including add-ons, hardware, and commercial tech-support. To advertise or sell your products or services at the FreeBSD Mall, contact Walnut Creek CD-ROM.

November 1998

  • 30-Nov-98 FreeBSD 2.2.8 has been released. Please see the Release Information page for more details. Also be sure to check the release errata after installation for any late-breaking issues with 2.2.8 that you might need to be aware of.
  • 26-Nov-98FreeBSD Rocks is an initiative designed to provide the FreeBSD community with the latest FreeBSD news, software and resources. All areas include search facilities, making keyword searching of historical posts a breeze. The pages are updated daily and everyone is invited to sign up an post an article. If it happened today, you'll see it on FreeBSDRocks.

October 1998

September 1998

  • 15-Sep-98 September 15th is the scheduled date for entering BETA with the 3.0-current tree. As all of you already (should) know, 3.0 is scheduled for release on October 15th so this gives us a nice 30 day BETA period. During this time, I don't expect anyone to drop in significant new work or otherwise perturb the 3.0-current tree in such a way that violates the general idea of a BETA (you're supposed to test what you have, not move the goalposts every couple of days :).

  • 13-Sep-98 After more than a year of development, the Common Access Method SCSI layer for FreeBSD will be integrated into 3.0-current on Sunday, September 13th. The CAM development team is currently busy ensuring that the integration process goes as smoothly as possible, so please understand that we may be slow to respond to questions about CAM in the days.

  • 9-Sep-98 Perl5 is now imported into the 3.0-CURRENT source tree.

  • 5-Sep-98 The BSD CD Giveaway List. If somebody has a CD to give away (recipient pays for shipping) or to lend locally, they can put their email address on the list. Hardware and literature can also be given away. We encourage people to donate CDs to local libraries and put them on the list as well.

  • 1-Sep-98 First issue of Daemon News arrives day earlier. This electronic ezine is by BSD community for BSD community. See http://www.daemonnews.org

August 1998

  • 31-Aug-98 FreeBSD -CURRENT branch (the future 3.0-RELEASE) has switched to ELF from a.out format. People involved did a great job: transition went smooth. Check freebsd-current@freebsd.org mail archive for more information on the transition to ELF.

  • 23-Aug-98 Suidcontrol-0.1 utility has been released. The suidcontrol is an experimental utility for managing suid/sgid policy under FreeBSD. You can get more information at http://www.watson.org/fbsd-hardening/suidcontrol.html

  • 9-Aug-98 FreeBSD Security How-To has been published. This work is currently in beta and can be found at http://www.best.com/~jkb/howto.txt

July 1998

June 1998

  • 24-Jun-98 The FreeBSD Project is sponsoring an FreeBSD Desktop Theme Contest. Participants will design their own X11 configurations, and winners will have theirs distributed with future releases of FreeBSD.

May 1998

  • 30-May-98 FreeBSD and Apache are used in this very useful article on implementing a web farm using round-robin DNS in WEBTechniques.com

  • 23-May-98 The second issue of the FreeBSD Newsletter is now available in Adobe PDF format (also by FTP). A help file is available to assist you in selecting and using a PDF viewer. Article submissions, advertisements, and letters to the editor should be sent to newsletter@freebsd.org.

  • 1-May-98 The FreeBSD Project set up Anonymous CVS - for the FreeBSD CVS tree. + for the FreeBSD CVS tree. Among other things, it allows users of FreeBSD to perform, with no special privileges, read-only CVS operations against one of the FreeBSD project's official anoncvs servers.

April 1998

  • 16-Apr-98 The new 4 CD set of FreeBSD 2.2.6 is now in stock and should start shipping to subscription and back-order customers tomorrow. More information on the CD contents are available from http://www.cdrom.com.

  • 11-Apr-98 The new FreeBSD project FreeBSD Mozilla Group is created. The FreeBSD Mozilla Group supports and improves the free available Netscape web browser, otherwise known as Mozilla.

March 1998

  • 25-Mar-98 FreeBSD 2.2.6 has been released. See the Release Information page for details. Also be sure to check the release errata after installation for any late-breaking issues with 2.2.6 that you should know about.

February 1998

January 1998

  • 08-Jan-98 Improved support for Plug-n-Play cards has now been integrated into both 3.0-current and 2.2-stable branches now. This is available in source form via the CVSup utility or in binary release snapshots from current.FreeBSD.org

December 1997

  • 26-Dec-97 A convenient front-end tool for installing and configuring the CVSup utility is now available. To use it, simply login or su to root and run: pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupit.tgz

  • 2-Dec-97 The "FOOF" bug has now been fixed in our 3.0-current and 2.2-stable branches and can either be incorporated by using the CVSup utility, as described below for the LAND attack fix, or by applying these patches.

  • 1-Dec-97 The "LAND attack" bug in TCP/IP has now been fixed in all relevant branches and can be incorporated by using the CVSup utility to track the latest 2.2 or 3.0 sources.

  • 1-Dec-97 Team FreeBSD is a group of FreeBSD users and supporters contributing CPU idle time in an effort to crack RSA's 64-bit encryption code. For more information, visit Team FreeBSD's WWW site.

November 1997

  • 21-Nov-97 Pentium bug -- We are aware of the "F00F" Pentium halting bug and are working with Intel on a fix. When we have a fix ready for public consumption it will be announced here, on the mailing list announce@freebsd.org and to the Usenet newsgroup comp.unix.bsd.freebsd.announce. Your patience is appreciated.

  • 09-Nov-97 FreeBSD 2.2.5-RELEASE CDROMS are now in stock and shipping to customers worldwide. More information is available at http://www.cdrom.com/titles/os/fbsd25.htm.

October 1997

  • 22-Oct-97 FreeBSD 2.2.5 has been released. See the Release Information page for details. Also be sure to check the release errata after installation for any late-breaking issues with 2.2.5 that you should know about.

September 1997

  • 01-Sep-97 FreeBSD performed well in an Internet Week review of WWW server platforms.

August 1997

  • 11-Aug-97 Researchers in Duke University's Trapeze Project have developed a high-speed Myrinet driver for FreeBSD. More information about the driver, Trapeze Project, and its parent project, the Collaborative Cluster Computing Iniative, including the code for the Myrinet driver, are available from the CCCI's WWW page.

  • 03-Aug-97 Netscape Communications has released a beta version of Netscape Communicator v4.0 for FreeBSD. It can be obtained via FTP from ftp.netscape.com or its mirrors.

July 1997

June 1997

  • 17-Jun-97 FreeBSD 2.2.2-RELEASE CD-ROM discs are now in stock; subscription customers should receive them shortly.

May 1997

April 1997

March 1997

February 1997

  • 20-Feb-1997 FreeBSD 2.1.7-RELEASE is now available. Read the README.TXT file or the Release Notes for more information.

  • 10-Feb-1997 FreeBSD 3.0-970209-SNAP has been released. Read the README.TXT file for more information about this release.

  • 06-Feb-1997 A serious security problem affecting FreeBSD 2.1.6 and earlier systems was found. The problem has been corrected within the -stable, -current, and RELENG_2_2 source trees. As an additional precaution, FreeBSD 2.1.6 is no longer available from the FTP distribution sites. You can read more about the problem and solution from the FreeBSD-SA-97:01.setlocale security announcement.

  • 06-Feb-1997 The final pre-release version of FreeBSD 2.2-GAMMA, is now available. The README.TXT file has more information.

  • 02-Feb-1997 A snap-of-the-day server has been set up for the most current snapshot release of FreeBSD 2.2. Read the README.TXT file for more information.

January 1997

December 1996

  • 24-Dec-1996 FreeBSD 2.2-BETA has been released. Please see the Release Notes for more information.

  • 13-Dec-1996 FreeBSD 2.2-RELEASE will not support installation on machines with less than 5MB of RAM or 1.2MB floppy drives. Please see the original announcement for more information.

November 1996

&newshome; &footer; diff --git a/es/projects/mozilla.sgml b/es/projects/mozilla.sgml index 7eb2115080..214dd47ecd 100644 --- a/es/projects/mozilla.sgml +++ b/es/projects/mozilla.sgml @@ -1,89 +1,89 @@ %includes; ]> &header;

Overview

Following Netscape's decision to publically release the source code for their client product, otherwise known as Mozilla, a number of free software groups have become actively involved in supporting and improving this technology for their own uses. The FreeBSD Mozilla Group seeks to provide a focus for such work in the FreeBSD world, providing centralized resources such as a CVS repository, a mailing list and other tools for collaborative development.

Resources

CVSup
CVSup provides ongoing syncronization with the central Mozilla repository, either for the CVS bits themselves (for those wishing to keep a local repository) or for a "checked out" version, suitable for directly building or editing. Fetch the CVSup binaries from ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/ and use a supfile which looks something like this:
 *default prefix=/usr/src/mozilla base=/usr/src/mozilla host=mozilla.FreeBSD.org release=cvs delete compress use-rel-suffix tag=.
 
 ## Main Source Tree
 cvs-mozilla
       
anoncvs
Anonymous CVS allows anyone to check things out of the FreeBSD Mozilla repository using the standard cvs(1) commands. Simply set your CVSROOT environment variable to point to:
       anoncvs@mozilla.freebsd.org:/mozilla
       

And you can then use cvs(1) for doing read-only operations on the Mozilla CVS repository.

freebsd-mozilla
The FreeBSD-mozilla mailing list is provided for developers and users of the FreeBSD mozilla port to discuss issues relating to building, using and managing the mozilla sources and any FreeBSD-specific changes to them. To subscribe, send mail to majordomo@freebsd.org and say subscribe freebsd-mozilla in the body of your message.

More information

Mozilla.ORG
The Mozilla.org project provides central control over Mozilla for all platforms, not just FreeBSD.
Cyclic Software
Cyclic Software has some good on-line tutorials on CVS
&footer; diff --git a/es/releases/2.2.8R/errata.sgml b/es/releases/2.2.8R/errata.sgml index cb6e1b0a28..45aa258768 100644 --- a/es/releases/2.2.8R/errata.sgml +++ b/es/releases/2.2.8R/errata.sgml @@ -1,68 +1,68 @@ %includes; ]> &header;
 The file 
 ERRATA.TXT contains post-release ERRATA for 2.2.8 and should always
 be considered the definitive place to look *first* before reporting
 a problem with this release.  This file will also be periodically
 updated as new issues are reported so even if you've checked this
 file recently, check it again before filing a bug report.  Any
 changes to this file are also automatically emailed to:
 
 	freebsd-stable@freebsd.org
 
 For 2.2.8 security advisories, see:
 
 ftp://ftp.freebsd.org/pub/FreeBSD/CERT/
 
 For the latest information.
 
 ---- Security Advisories:
 
 Current active security advisories for 2.2.8:   None
 
 ---- System Update Information:
 
 o /usr/sbin/sysctl is an invalid link and whereis(1) doesn't work.
 
 Fix: sysctl(8) has actually moved to /sbin/sysctl.  Simply create
      a symbolic link for compatability purposes as follows:
 
         ln -sf /sbin/sysctl /usr/sbin
  
      or syncronize your sources with 2.2-stable and rebuild/install
      from /usr/src/usr.bin/whereis/ and just rm /usr/sbin/sysctl  
 
 o    /usr/share/doc/FAQ is in spanish.
 
 Fix: This was a build failure which affected only the FAQ and has since
      been fixed.  If you are already cvsup/CTM'ing the doc-all tag then
      you can simply remake and install the FAQ from sources, otherwise
      grab ftp://ftp.freebsd.org/pub/FreeBSD/doc/FAQ.tar.gz and unpack
      as follows:  tar --unlink -xvzf FAQ.tar.gz -C /usr/share/doc
      to get an english FAQ.
 
 o    getpwnam(3) semantics are incorrect in some cases.
  
 Fix: If passed a string longer than the maximum allowed for a user name,
      getpwnam will incorrectly return an entry for a user that matches the
      initial characters in the string up to the maximum length allowed for a
      user name.  To correct this behaviour, libc needs to be patched and
      recompiled.  The appropriate patch can be obtained from:
-     http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/getpwent.c.diff?r1=1.35.2.2&r2=1.35.2.3
+     http://cvsweb.freebsd.org/src/lib/libc/gen/getpwent.c.diff?r1=1.35.2.2&r2=1.35.2.3
 
 

Release Home &footer; diff --git a/es/releases/3.2R/errata.sgml b/es/releases/3.2R/errata.sgml index e4e1778de7..f2de52ea29 100644 --- a/es/releases/3.2R/errata.sgml +++ b/es/releases/3.2R/errata.sgml @@ -1,76 +1,76 @@ %includes; ]> &header;
 The file 
 ERRATA.TXT contains post-release ERRATA for 3.2 and should always
 be considered the definitive place to look *first* before reporting
 a problem with this release.  This file will also be periodically
 updated as new issues are reported so even if you've checked this
 file recently, check it again before filing a bug report.  Any
 changes to this file are also automatically emailed to:
 
 	freebsd-stable@freebsd.org
 
 For all FreeBSD security advisories, see:
 
 ftp://ftp.freebsd.org/pub/FreeBSD/CERT/
 
 For the latest information.
 
 ---- Security Advisories:
 
 Current active security advisories for 3.2:     None
 
 ---- System Update Information:
 
 o The compat20 and compat21 distributions install themselves into
   /usr/lib/compat.  The compat20/compat21 distributions are a.out libraries,
   thus they should live in /usr/lib/compat/aout to match the
   "ldconfig_paths_aout" configuration in /etc/defaults/rc.conf.
                                                                               
 Fix: cd /usr/lib/compat
      mkdir -p aout
      mv lib*.so.*.* aout
 
 o /usr/bin/gdb crashes when debugging core files from static programs
 
 Fix: This was corrected in revision 1.3.2.2 of solib.c. Obtain the fixed
-     version via CVSup (see instructions in handbook) or apply the patch
+     version via CVSup (see instructions in handbook) or apply the patch
      from our CVSweb service.
 
 o While booting the install floppy, user sees the following message 
   and nothing seems to happen, nor can anything be entered from the keyboard:
  
      Keyboard: no
 
 Fix: Due to a lack of space, full support for old XT/AT (84-key) keyboards 
      is no longer available in the bootblocks.  Some notebook computers may
      also have this type of keyboard and if you are still using this kind of 
      hardware, you will see the above message about no keyboard being found
      when you boot from an installation CD-ROM or floppy.
   
      As soon as you see the message, hit the space bar and you will see
      the following prompt:
   
        >> FreeBSD/i386 BOOT
        Default: x:xx(x,x)/boot/loader 
        boot:
   
      Then enter `-Dh', and things should proceed normally with your keyboard
      type.  This only happens once at initial installation time and will
      not be a problem afterwards.
 
 

Release Home &footer; diff --git a/es/support.sgml b/es/support.sgml index eb905164fb..7095f85249 100644 --- a/es/support.sgml +++ b/es/support.sgml @@ -1,570 +1,570 @@ + %includes; ]> - + &header;

Listas de distribución

Las listas de distribución son el canal principal de soporte entre usuarios, con numerosas listas cubriendo diferentes temas. Cuando tengas dudas sobre a qué lista enviar una pregunta, enviala a freebsd-questions@FreeBSD.ORG . Puedes buscar en los archivos de las listas de www.freebsd.org.

Diferentes listas no inglesas también están disponibles:

Si creas alguna lista sobre freebsd háznoslo saber.

Newsgroups

Existen diferentes newsgroups, además de otros numerosos grupos con temas de interés para los usuarios de FreeBSD. Para discusiones referentes a FreeBSD, mira en comp.unix.bsd.freebsd.misc. Para anuncios importantes, mira en comp.unix.bsd.freebsd.announce.

El BSD Usenet News Searcher tiene archivos de todos los grupos de noticias referentes a FreeBSD desde Junio de 1992.

Recursos WEB

GNATS Base de datos de informes de problemas

Los informes sobre problemas con FreeBSD son seguidos a través de la base de datos GNATS.

Los informes de problemas también deberían enviarse al equipo de desarrollo usando el comando send-pr(1) en un sistema FreeBSD, o enviado un email a freebsd-bugs@FreeBSD.ORG. Por favor, ten en cuenta que es preferible enviar los informes a través de send-pr ya que los mensajes enviador directamente a la lista no son registrados como informes oficiales de problemas!.

CVS

CVS (Concurrent Version System) es la herramienta que usamos para mantener el código fuente bajo control. Todos y cada uno de los cambios (acompañados de un mensaje de log explicando su función) desde la versión 2.0 están almacenados allí, y pueden ser facilmente revisados desde aquí (pulsa en el link). Para obtener una copia completa del CVS de FreeBSD o cualquiera de las ramas de desarrollo, hay que seleccionar alguna de las siguientes opciones:

  • cvsup Si estás buscando una utilidad tipo on-demand y de fácil acceso (escrita en Modula-3).
  • anoncvs si estás buscando una utilidad para recuperar pequeñas secciones de código, y ya incluida en tu sistema FreeBSD.
  • CTM básicamente para recoger parches a través de email, y modo de acceso batch.
  • El interface web para revisar algún fichero o buscar una modificación específica.
  • Finalmente, si tienes ancho de banda disponible o prefieres usar el FTP, puedes, simplemente, hacer un mirror del CVS desde ftp.freebsd.org.

Mirrors del script de CVSWeb están disponibles en - California, + California, Alemania, Japón y España (Inglés, Español).

Grupos de Usuarios

La popularidad de FreeBSD ha hecho aparecer diferentes grupos de usuarios por todo el mundo. Si conoces algún grupo de usuarios que no esté listado aquí, háznoslo saber.

Australia

Europa

Norte América

Resto del mundo

Proyectos de desarrollo de FreeBSD

Además de la línea principal de desarrollo de FreeBSD, un número importante de grupos de desarrolladores están trabajando para expandir el abanico de aplicaciones en nuevas direcciones.

Guía de Seguridad de FreeBSD

Recursos de seguridad disponibles para usuarios de FreeBSD: PGP Key's para los Security Officers, avisos, parches y listas.

Servicios de Consultoría Comercial

Si estás empezando con FreeBSD, o necesitas completar un importante proyecto, un consultor puede ser la solución.

Información sobre UNIX en General

The X Window System

  • El Proyecto XFree86 provee a los usuarios de sistemas Unix basados en Intel, incluyendo FreeBSD, de un excelente sistema de X Window.
  • El proyecto WINE está trabajando en la posibilidad de ejecutar software de MS-Windows en sistemas Unix basados en Intel, como FreeBSD, NetBSD y Linux.

Hardware

  • La comp.answers pc-hardware-faq es una gran referencia para personas que se construyan sus propias máquinas.
  • Los usuarios de equipos portátiles con PCCARD (PCMCIA) no soportadas todavía en la distribución base de FreeBSD, deberían mirar en la página de la distribución PAO para conocer más datos sobre los últimos e importantes avances.
  • Intel Secrets -- What Intel Doesn't Want You To Know - Mucha información sobre chips Intel.
  • Aad Offerman's Chip List - referencia de chips usados en PC's.
  • ASUS fabrica placas bases que funcionan bien con FreeBSD.
  • La guía de hardware de FreeBSD hace algunas recomendaciones especiales sobre hardware que funciona bién con FreeBSD.

Proyectos de Sistemas Operativos Relacionados

  • NetBSD es otro sistema operativo libre basado en 4.4BSD-Lite que funciona en diferentes arquitecturas de hardware.
  • OpenBSD es otro derivado de 4.4BSD.
  • Linux es otro sistema Unix libre.
  • Lites es un sistema servidor y librería de emulación basado en 4.4BSD-Lite que provee de funcionalidad Unix a sistemas Mach.
  • El proyecto GNU HURD es otro esfuerzo para desarrollar otro sistema operativo Unix libre.
&footer; diff --git a/es/y2kbug.sgml b/es/y2kbug.sgml index 5c4a211c7b..a8bae3a913 100644 --- a/es/y2kbug.sgml +++ b/es/y2kbug.sgml @@ -1,262 +1,262 @@ + %includes; ]> - + &header;

A medida que se va entendiendo el problema del año 2000, más y más compañías están demandando informes oficiales de los proveedores de hardware y software, de como sus productos responderán frente al cambio de milenio.

Las organizaciones que usan sistemas operativos unix como FreeBSD están un paso por delante del problema. FreeBSD mantendrá sin problemas las fechas posteriores al año 2000.

Más información

(Esta sección está basada en el texto de Linux Y2K compliance )

Como en todos los sistemas operativos Unix, la hora y fecha se representa internamente como el número de segundos transcurridos desde el 1 de Enero de 1970 (la "época" Unix). Actualmente, esta figura se almacena en un entero de 32 bits, desbordandose sobre el año 2038. Para entonces esperamos (seguro) usar un contador de 64 bits (o mayor) el cual no daría problemas hasta el fin del universo.

Ten en cuenta que un sistema operativo sin el problema Y2K no solucionará las aplicaciones que no sean Y2k.

De la misma manera, el sistema operativo espera leer la fecha y hora actual del reloj CMOS de tu computador. No todos estos dispositivos manejan correctamente el año 2000. Recomendamos que testees cada plataforma independientemente para asegurar que el reloj de tu hardware soporta sin problemas el paso del año 1999 al 2000, y que éste es interpretado correctamente.

Qué puedes hacer.

FreeBSD continuaráa manteniendo correctamente tanto la fecha como la hora durante el próximo siglo. Aplicaciones de terceras partes, quizás no lo hagan. Tu mejor defensa frente a los problemas del 2000 es un buen ataque. Escuchar las historias clamando el final del mundo pensamos que no es la mejor manera de hacer frente al problema. El proyecto FreeBSD te recomienda realizar comprobaciones de tus sistemas antes de la llegada del 2000.

Hay tests que puedes usar para comprobar la respuesta de tu sistema. Pon el reloj de tu computador a unos minutos antes de la media noche del nuevo año y comprueba la fecha. Tu sistema debería mostrar el año 2000 y no el 1900. Si el año mostrado es incorrecto, tendrás bastante tiempo por delante para actualizar el hardware. Operar los sistemas de información de tu organización durante unos días con la fecha adelantada, puede darte una idea real de lo que ocurrirá en el cambio del año.

Importante: No hagas esto en sistemas en producción. Puedes confundir y tener muchos problemas en aplicaciones que utilizan las fechas (sistemas de facturación, regímenes de copias, etc). Utiliza siempre para este tipo de pruebas máquinas de desarrollo las cuales no puedan afectar datos importantes.

Estado del Y2K en FreeBSD

"Después de extensos análisis y tests, creemos que FreeBSD es 100% compatible con el Y2K. En caso de que algo se nos haya pasado por alto, haremos todo lo posible para fijar el problema lo antes posible."

David Greenman
Arquitecto Principal, The FreeBSD project

Problemas solucionados

Los siguientes problemas Y2K han sido identificados y solucionados en FreeBSD.

misc/1380
Muchos programas tenían incluido de manera fija el formato 19%d para el año. Los programas afectados incluyen: yacc, ftpd, y make. [Solucionado: yacc v1.2 1999/01/18; ftpd v1.7 1996/08/05; make v1.4 1996/10/06]
conf/1382
El script sed de /etc/rc.local que crea la línea del host/kernel ID para el mensaje del día depende de que el año no sobrepase el 1999. [Solucionado: v1.21 1996/10/24]
misc/3465
El comando etc/namedb/make-localhost genera el número serial del DNS como YYMMDD. En el año 2000, éste será generado como 1YYMMDD.[Solucionado v1.2 1997/08/11]
gnu/4930 y gnu/8321
Las macros groff tenían integrado 19 para generar algunas fechas. [Solucionado: tmac.e v1.3 1998/12/06; doc-common v1.10 1999/01/19]
bin/9323
El comando touch no trata correctamente los dos digitos del año. Los años en el rango 00-68 son tratados como 1900-1968 en lugar de 2000-2068. [Solucionado: v1.7 1999/01/05]
-
xntpd/parse/util/dcfd.c
+
xntpd/parse/util/dcfd.c
El cálculo de años bisiestos para el número de días en un año, y la conversión del tiempo DFC77 a segundos desde el Epoch era incorrecta. Estos errores afectaban a todos los años. [Solucionado: v1.6 1999/01/12]
-
tar/getdate.y
+
tar/getdate.y
La función convert() tenía fijado el uso de dos dígitos en el año para el rango 70-99. Ha sido ajustada para permitir años de dos dígitos para for 1970-2069. La función no permite usar años bisiestos - alerta y2k1!. [Solucionado: v1.4 1999/01/12]
-
fetch/http.c
+
fetch/http.c
El protocolo HTTP incluye un formato de fecha obsoleto que usa un año de dos dígitos. Las versiones anteriores de fetch interpretaban todas las fechas en 1900s; con esta revisión, se usa la recomendación de la RFC 2068. [Solucionado: v1.24 1999/01/15]
misc/9500
El script `edithook' en el directorio CVSROOT usa tm_year y mostraría 01/01/100 en el 2000-JAN-01. [Solucionado: v1.2 1999/01/17]
bin/9501
Muchos de los ficheros "cvs contrib" tienen el problema del año 2000. Los scripts log.pl y sccs2rcs.csh añaden 19 al año, resultando en mostrar 19100 para el 2000. El script log_accum.pl usa un año de 2 dígitos en un lugar y en otro asume que tm_year es el año dentro del siglo en lugar de año desde 1900. [Solucionado: log.pl v1.2 1999/01/15; sccs2rcs.csh v1.3 1999/01/15]
bin/9502
El registro numérico de groff `yr' es asignado desde (struct tm).tm_year representando el número de años desde 1900, no el año dentro del siglo (mirar la definición en troff/input.cc). [Solucionado: ahora usa mod 100, input.cc V1.2 1999/06/03]
bin/9503
El programa simple_httpd de PicoBSD usa tm_year y mostrará 01/01/100 para 2000-JAN-01. [Solucionado: v1.2 1999/01/16]
bin/9505
Adduser usa tm_year y mostrará 01/01/100 para 2000-JAN-01. [Solucionado: v1.42 1999/01/15]
bin/9506
Cron usa tm_year y mostrará 01/01/100 para 2000-JAN-01. [Solucionado: v1.7 1999/01/16]
bin/9507
tcpslice(8) usa tm_year y mostraráa 100y01m01d... para 2000-JAN-01. Por compatibilidad, usa un año de dos dígitos hasta el 2000. [Solucionado: v1.8 1999/01/20]

Aplicaciones Problemáticas

ports/7681
TkDesk 1.0 tiene integrado un 19 en el fichero de lista de ventanas. Un fichero con fecha > 2000 se muestra como "191xx" donde xx son los dos últimos núros de la fecha real. Este error ha sido fijado en la versión 1.1.
ports/9295
INN 1.7.2 tiene varios problemas relacionados con Y2K. Uno ocurre cuando purgamos las news (option -f del nntpget) y otro está relacionado con la cabecera Expire con fechas relativas pasado el año 2000. [Ports INN actualizados a INN 2.2 1999/05/02]
ports/9298
Knews tiene varios problemas relacionados con Y2K. Uno ocurre durante la generación del comando NNTP NEWGROUPS. El otro ocurre por que knews no piensa que el 2000 es una año bisiesto. Ambos están solucionados en knews-1.0b.1. [Port actualizado 1999/01/07]
ports/9300
Nntp-t5 tiene un problema de Y2K durante la generación del comando NEWNEWS. [Port parcheado 1999/01/05]
ports/11144
El port tiff tiene fijado 19xx. Aunque esté en la sección contrib (para convertir el formato de SUN a TIFF), y no es instalado por defecto, debería ser solucionado. [Solucionado: 1999/04/18]
ports/11145
El port dgs tiene el mismo problema que el port tiff. [Solucionado: 1999/04/18]

Más información

Si tienes alguna pregunta sobre la compatibilidad de FreeBSD con el año 2000, o has descubierto alguna aplicación ejecutada bajo FreeBSD que no cumple con Y2K, por favor, ponte en contacto con nosotros en la dirección freebsd-bugs@FreeBSD.ORG.

&footer; diff --git a/ja/projects/mozilla.sgml b/ja/projects/mozilla.sgml index 7e173cb00a..9d67f7e3c9 100644 --- a/ja/projects/mozilla.sgml +++ b/ja/projects/mozilla.sgml @@ -1,101 +1,101 @@ - + %includes; ]> &header;

╓о╓╦╓А╓к

Netscape ╓╛, Mozilla ╓х╓╓╓╕л╬а╟╓гцн╓И╓Л╓ф╓╓╓К ╪╚╪р╓н╔╞╔И╔╓╔╒╔С╔хю╫ий╓н╔╫║╪╔╧╔Ё║╪╔и╓Р╦ЬЁ╚╓╧╓К╓х╥Х╓А╓©╓Ё╓х╓Р╪У╓╠╓ф, ╔у╔Й║╪╔╫╔у╔х╔╕╔╖╔╒╓РЁ╚х╞╓╥╓ф╓╓╓К©Тб©╓╞╓нцдбн╓╛, ╪╚й╛╓©╓а╓г╩х╓╕╓©╓А╓к╓╫╓н╣╩╫я╓Р╔╣╔щ║╪╔х╓╥╓©╓Й╡Чни╓╧╓К╓Ё╓х╓к л╢цФ╓к╓й╓ц╓ф╓╓╓ч╓╧. FreeBSD Mozilla Group ╓о FreeBSD ╓ню╓Ё╕╓г╓╫╓н╓Х╓╕╓й╩е╩Ж╓Р╓╧╓К©м╓©╓а╓нЁХф╟╓нцФ©╢╓Д CVS ╔Л╔щ╔╦╔х╔Й╓н╓Х╓╕╓й╩Я╦╩╓нцЫб╒╫Й, ╔А║╪╔Й╔С╔╟╔Й╔╧╔х, ╤╕ф╠Ё╚х╞╓н╓©╓А╓н╓╓╓М╓╓╓М╓й╔д║╪╔К╓й╓и╓РдС╤║╓╥╓Х╓╕╓х╓╥╓ф╓╓╓ч╓╧.

╩╡╧м╩Яна

CVSup
CVSup ╓Р╩х╓╗╓п, CVS ╔с╔ц╔х╪╚©х╓Р╧╧©╥╓╥╓©╓Й (╔М║╪╔╚╔К╓й╔Л╔щ╔╦╔х╔Й╓Рйщ╪И╓╥╓©╓╓©м╓н╓©╓А╓к), ╔п╔╓╔й╔Й╓Р╨Н╓ц╓©╓Й╔╫║╪╔╧╓Рйт╫╦╓╧╓К╓©╓А╓н "╔а╔╖╔ц╔╞╔╒╔╕╔х" ╔п║╪╔╦╔Г╔С╓Рфю╓©╓Й╓╧╓К╓©╓А╓к, цФ╠Ш╓к╓╒╓К Mozilla ╓н╔Л╔щ╔╦╔х╔Й╓х╓нф╠╢Э╓Р╥ябЁе╙╓к╓х╓К╓Ё╓х╓╛╓г╓╜╓ч╓╧. CVSup ╓н╔п╔╓╔й╔Й╓о ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/ ╓╚╓И╩Щ╓ц╓ф╓╜╓ф╡╪╓╣╓╓. ╓ч╓© supfile ╓о╟й╡╪╓н╓Х╓╕╓й╓Б╓н╓Р╩х╓ц╓ф╡╪╓╣╓╓:
 *default prefix=/usr/src/mozilla base=/usr/src/mozilla host=mozilla.FreeBSD.org release=cvs delete compress use-rel-suffix tag=.
 
 ## Main Source Tree
 cvs-mozilla
       
anoncvs
ф©л╬ CVS ╓Р╩х╓╕╓Ё╓х╓к╓Х╓ц╓фц╞╓г╓Би╦╫Ю╓н cvs(1) ╔Ё╔ч╔С╔и╓г FreeBSD ╓н Mozilla ╔Л╔щ╔╦╔х╔Й╓Рфю╓К╓Ё╓х╓╛╓г╓╜╓ч╓╧. ╢д╤╜йя©Т CVSROOT ╓нцм╓Р╪║╓н╓Б╓н╓к╓╥╓ф╡╪╓╣╓╓:
       anoncvs@mozilla.FreeBSD.org:/mozilla
       

╓Ё╓╕╓╧╓К╓х Mozilla CVS ╔Л╔щ╔╦╔х╔Й╬Е╓гфи╓ъ╪Х╓ЙюЛмя╓г cvs(1) ╓Р╩х╓╕╓Ё╓х╓╛╓г╓╜╓К╓Х╓╕╓к╓й╓Й╓ч╓╧.

freebsd-mozilla
FreeBSD-mozilla ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓о, FreeBSD ╓к╟э©╒╓╣╓Л╓© mozilla ╓нЁ╚х╞╪т╓Д╔Ф║╪╔╤╓╛, mozilla ╓н╔╫║╪╔╧╓н╧╫цш╓Д╩хмя, ╢имЩ╓к╓д╓╓╓ф╓н╣дою╓Р╓╥╓©╓Й, ╓╫╓Л╓И╓кбп╓╧╓К FreeBSD ╓кфц╡╫╓╥╓©йя╧╧╓к╓д╓╓╓ф╓ноц╓Р╓╧╓К╓©╓А╓кдС╤║╓╣╓Л╓ф╓╓╓ч╓╧. ╓Ё╓н╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓╧╓К╓к╓о majordomo@FreeBSD.org ╟╦╓к subscribe freebsd-mozilla ╓х╓╓╓╕кэй╦╓Р╫Я╓╓╓©╔А║╪╔К╓РаВ╓ц╓ф╡╪╓╣╓╓.

ди╣╜

Mozilla.ORG
Mozilla.org ╔в╔М╔╦╔╖╔╞╔х╓о FreeBSD ╓ю╓╠╓г╓й╓╞╓╧╓ы╓ф╓н╔в╔И╔ц╔х╔у╔╘║╪╔Ю╓кбп╓╧╓К Mozilla ╓н╢имЩ╓Р╫╦цФе╙╓к╧т╓й╓ц╓ф╓╓╓ч╓╧.
Cyclic Software
Cyclic Software ╓к╓о CVS ╓к╓д╓╓╓ф╓н м╔╓Л╓©╔╙╔С╔И╔╓╔С╔а╔Е║╪╔х╔Й╔╒╔К╓╛мя╟у╓╣╓Л╓ф╓╓╓ч╓╧.
&footer; diff --git a/ja/releases/2.2.8R/errata.sgml b/ja/releases/2.2.8R/errata.sgml index 52bf539749..19010bac05 100644 --- a/ja/releases/2.2.8R/errata.sgml +++ b/ja/releases/2.2.8R/errata.sgml @@ -1,77 +1,77 @@ - + %includes; ]> - + &header;
 ╓Ё╓н╔у╔║╔╓╔К
 
 ERRATA.TXT ╓к╓о 2.2.8 ╓н╔Й╔Й║╪╔╧╟й╧ъ╓н ERRATA (ит╤Я╧Г╓й╓и╓н╬ПйС) ╓╛
 ╓╙╓╣╓А╓И╓Л╓ф╓╓╓ч╓╧. ╓Ё╓н╔Й╔Й║╪╔╧╓к╢ь╓╧╓КлДбЙ╓РйС╧П╓╧╓К╓н╓о,
 ** ╓й╓к╓Х╓Й╓Ба╟╓к ** ╓Ё╓н╔у╔║╔╓╔К╓Рфи╓С╓г╓╚╓И╓к╓╥╓ф╓╞╓ю╓╣╓╓. ╓ч╓©,
 ╓Ё╓н╔у╔║╔╓╔К╓о©╥╓╥╓╓лДбЙ╓╛х╞╦╚╓╣╓Л╓К╓©╓с╓к╧╧©╥╓╣╓Л╓ч╓╧. ╓г╓╧╓╚╓И,
 ╓д╓╓╓Ё╓н╢ж╓Ё╓нй╦╫Я╓Р╔а╔╖╔ц╔╞╓╥╓©╓п╓╚╓Й╓г╓╒╓ц╓ф╓Б, ╔п╔╟╔Л╔щ║╪╔х╓Р
 аВ╓Ка╟╓к╓Б╓╕╟Леы╔а╔╖╔ц╔╞╓╥д╬╓╥╓ф╓╞╓ю╓╣╓╓. ╓Ё╓н╔у╔║╔╓╔К╓к╡ц╓╗╓И╓Л╓©
 йя╧╧╡у╫Й╓о, ╪╚ф╟е╙╓к
 
 	    freebsd-stable@FreeBSD.org
 
 ╓к╓Б e-mail ╓гаВ╓И╓Л╓ч╓╧.
 
 2.2.8 ╓н╔╩╔╜╔Е╔Й╔ф╔ё╓к╢ь╓╧╓К╨г©╥╓н╢╚╧П╓к╓д╓╓╓ф╓о,
 
 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/
 
 ╓Р╓╢мВ╓╞╓ю╓╣╓╓.
 
 ---- ╔╩╔╜╔Е╔Й╔ф╔ё╓к╢ь╓╧╓К╢╚╧П:
 
 2.2.8 ╓кбп╓╧╓К╦╫╨ъм╜╦З╓й╔╩╔╜╔Е╔Й╔ф╔ё╓к╢ь╓╧╓К╢╚╧П:   ╓╒╓Й╓ч╓╩╓С
 
 ---- ╔╥╔╧╔ф╔Ю╓н╧╧©╥╬ПйС:
 
 o /usr/sbin/sysctl ╓╛ю╣╓╥╓╓╟лцж╓к╓й╓╞, whereis(1) ╓╛ф╟╓╜╓ч╓╩╓С.
 
 бп╫Хк║: ╦╫╨ъ sysctl(8) ╓о /sbin/sysctl ╓к╟эф╟╓╥╓ч╓╥╓©. ╦ъ╢╧ю╜╓Рйщ╓д╓©╓А╓к,
         ц╠╓к╪║╓н╓Х╓╕╓к╔╥╔С╔э╔Й╔ц╔╞╔Й╔С╔╞╓Рд╔╓ц╓ф╓╞╓ю╓╣╓╓.
 
         ln -sf /sbin/sysctl /usr/sbin
 
         ╓Б╓╥╓╞╓о╓╒╓й╓©╓н╔╫║╪╔╧╔Ё║╪╔и╓Р 2.2-stable ╓кф╠╢Э╓╣╓╩╓ф
         /usr/src/usr.bin/whereis/ ╓г╨ф╧╫цш╓х╔╓╔С╔╧╔х║╪╔К╓Р╓╥╓ф
         /usr/sbin/sysctl ╓Р╨О╫Э╓╧╓Л╓п╓╓╓╓╓г╓╥╓Г╓╕.
 
 o    /usr/share/doc/FAQ ╓╛╔╧╔з╔╓╔С╦Л╓к╓й╓ц╓ф╓╓╓ч╓╧.
 
 бп╫Хк║: ╓Ё╓Л╓о╧╫цш╓╧╓К╓х╓╜╓к FAQ ╓ниТй╛╓ю╓╠╪╨гт╓╥╓ф╓╥╓ч╓ц╓©╓Б╓н╓г, 
         ╓╓╓ч╓о╓╧╓г╓к╫╓ю╣╓╣╓Л╓ф╓╓╓ч╓╧. cvsup ╓Д CTM ╓г doc-all ╓н╔©╔╟╓н╓Б╓н╓Р
         ╓╧╓г╓к╧╧©╥╓╥╓ф╓╓╓©╓И, ц╠╓к FAQ ╓Р╔╫║╪╔╧╓╚╓И╨Н╓Йд╬╓╥╓ф
         ╔╓╔С╔╧╔х║╪╔К╓╧╓К╓ю╓╠╓г╓╚╓ч╓╓╓ч╓╩╓С. ╓Б╓╥╓╞╓о
         ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/FAQ.tar.gz ╓Р╪Х╓ц╓ф╓╜╓ф
         ╪║╓н╓Х╓╕╓к╓╥╓фе╦Ё╚╓╥╓ф╓╞╓ю╓╣╓╓.
         tar --unlink -xvzf FAQ.tar.gz -C /usr/share/doc
         ╓Ё╓Л╓г╠я╦Лхг╓н FAQ ╓╛╪Й╓кфЧ╓Й╓ч╓╧.
 
 o    getpwnam(3) ╓н╟улё╓╛╢ж╟Ц╓ц╓ф╓╥╓ч╓╕╬Л╧Г╓╛╓╒╓Й╓ч╓╧.
 
 бп╫Хк║: ╓Б╓╥╔Ф║╪╔╤л╬╓к╣Ж╓╣╓Л╓ф╓╓╓К╨гбГ╓нд╧╓╣╓Р╠ш╓╗╓Кй╦╩ЗнС╓Р╪У╓╠╓х╓ц╓©╓х╓╜,
         getpwnam ╓ою╣╓╥╓╞╔Ф║╪╔╤╓н╔╗╔С╔х╔Й╓Рйж╓╣╓╨, ╔Ф║╪╔╤л╬╓к╣Ж╓╣╓Л╓К
         ╨гбГ╓нд╧╓╣╓нй╦╩ЗнС╓РюХф╛╓к╩Щ╓д╓Б╓н╓к╔ч╔ц╔а╓╥╓ф╓╥╓ч╓╓╓ч╓╧.
         ╓Ё╓н╣Сф╟╓Р╫╓ю╣╓╧╓К╓к╓о, libc ╓Р╫╓ю╣╓╥╓ф╔Й╔Ё╔С╔я╔╓╔К╓╧╓Ки╛мв╓╛╓╒╓Й╓ч╓╧.
         е╛юз╓й╔я╔ц╔а╓о╪║╓н╓Х╓╕╓к╓╥╓ф╪Х╓ц╓ф╓╞╓К╓Ё╓х╓╛╓г╓╜╓ч╓╧.
-        http://www.FreeBSD.org/cgi/cvsweb.cgi/src/lib/libc/gen/getpwent.c.diff?r1=1.35.2.2&r2=1.35.2.3
+        http://cvsweb.FreeBSD.org/src/lib/libc/gen/getpwent.c.diff?r1=1.35.2.2&r2=1.35.2.3
 
 

╔Й╔Й║╪╔╧╬ПйС╓н╔з║╪╔╦ &footer; diff --git a/ja/releases/3.2R/errata.sgml b/ja/releases/3.2R/errata.sgml index 832effee49..0b9d820265 100644 --- a/ja/releases/3.2R/errata.sgml +++ b/ja/releases/3.2R/errata.sgml @@ -1,88 +1,88 @@ - + %includes; ]> - + &header;
 ╓Ё╓н╔у╔║╔╓╔К ERRATA.TXT ╓к╓о 3.2 ╓н╔Й╔Й║╪╔╧╟й╧ъ╓н ERRATA (ит╤Я╧Г╓й╓и╓н╬ПйС) ╓╛
 ╓╙╓╣╓А╓И╓Л╓ф╓╓╓ч╓╧. ╓Ё╓н╔Й╔Й║╪╔╧╓к╢ь╓╧╓КлДбЙ╓РйС╧П╓╧╓К╓н╓о,
 ** ╓й╓к╓Х╓Й╓Ба╟╓к ** ╓Ё╓н╔у╔║╔╓╔К╓Рфи╓С╓г╓╚╓И╓к╓╥╓ф╓╞╓ю╓╣╓╓. ╓ч╓©,
 ╓Ё╓н╔у╔║╔╓╔К╓о©╥╓╥╓╓лДбЙ╓╛х╞╦╚╓╣╓Л╓К╓©╓с╓к╧╧©╥╓╣╓Л╓ч╓╧. ╓г╓╧╓╚╓И,
 ╓д╓╓╓Ё╓н╢ж╓Ё╓нй╦╫Я╓Р╔а╔╖╔ц╔╞╓╥╓©╓п╓╚╓Й╓г╓╒╓ц╓ф╓Б, ╔п╔╟╔Л╔щ║╪╔х╓Р
 аВ╓Ка╟╓к╓Б╓╕╟Леы╔а╔╖╔ц╔╞╓╥д╬╓╥╓ф╓╞╓ю╓╣╓╓. ╓Ё╓н╔у╔║╔╓╔К╓к╡ц╓╗╓И╓Л╓©
 йя╧╧╡у╫Й╓о, ╪╚ф╟е╙╓к
 
         freebsd-stable@FreeBSD.org
 
 ╓к╓Б e-mail ╓гаВ╓И╓Л╓ч╓╧.
 
 3.2 ╓н╔╩╔╜╔Е╔Й╔ф╔ё╓к╢ь╓╧╓К╨г©╥╓н╢╚╧П╓к╓д╓╓╓ф╓о,
 
 ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/
 
 ╓Р╓╢мВ╓╞╓ю╓╣╓╓.
 
 ---- ╔╩╔╜╔Е╔Й╔ф╔ё╓к╢ь╓╧╓К╢╚╧П:
 
 3.2 ╓кбп╓╧╓К╦╫╨ъм╜╦З╓й╔╩╔╜╔Е╔Й╔ф╔ё╓к╢ь╓╧╓К╢╚╧П:     ╓╒╓Й╓ч╓╩╓С
 
 ---- ╔╥╔╧╔ф╔Ю╓н╧╧©╥╬ПйС:
 
 
 o    compat20 ╓х compat21 ╔г╔ё╔╧╔х╔Й╔с╔Е║╪╔╥╔Г╔С ╓о /usr/lib/compat ╓к
      ╔╓╔С╔╧╔х║╪╔К╓╣╓Л╓ч╓╧.  ╓Ё╓Л╓И╓о a.out ╥а╪╟╓н╔И╔╓╔ж╔И╔Й╓й╓н╓г
      /etc/defaults/rc.conf ╓г╓н "ldconfig_paths_aout" ╓нюъдЙ╓к╧Г╓О╓╩╓К
      ╓©╓А╓к╓о /usr/lib/compat/aout ╓к╔╓╔С╔╧╔х║╪╔К╓╣╓Л╓Ки╛мв╓╛╓╒╓Й╓ч╓╧.
 
                                                                               
 бп╨Ж: cd /usr/lib/compat
       mkdir -p aout
       mv lib*.so.*.* aout
 
 
 o    ╔╧╔©╔ф╔ё╔ц╔╞╓й╔в╔М╔╟╔И╔Ю╓н core file ╓Р╔г╔п╔ц╔╟╓╧╓К╓х
      /usr/bin/gdb ╓╛╔╞╔И╔ц╔╥╔Е╓╥╓ч╓╧. 
 
 
 бп╨Ж: solib.c ╓н revision 1.3.2.2 ╓г╡Р╥Х╨я╓ъ╓г╓╧. 
       бп╨Ж╓н╩э╓╣╓Л╓©╔п║╪╔╦╔Г╔С╓Р CVSup ╥пмЁ╓╚(╔о╔С╔и╔ж╔ц╔╞╓нюБлю╓Р╦╚╓ф╓╞╓ю╓╣╓╓)
-      ╩Д╓©╓а╓н CVSweb ╔╣║╪╔с╔╧╓╚╓И╓Ё╓нthe patch╓РеЖ╓ф╓ф╓╞╓ю╓╣╓╓.
+      ╩Д╓©╓а╓н CVSweb ╔╣║╪╔с╔╧╓╚╓И╓Ё╓нthe patch╓РеЖ╓ф╓ф╓╞╓ю╓╣╓╓.
 
 
 o    ╔╓╔С╔╧╔х║╪╔К╔у╔М╔ц╔т║╪╓╚╓И╣╞ф╟╓╧╓К╢ж╓к
      ╟й╡╪╓н╔А╔ц╔╩║╪╔╦╓╛╦╫╓О╓Л╓ф╡©╓Б╣╞╓Ё╓И╓й╓╓╓Х╓╕╓к╦╚╓╗╓К╓╚,
      ╔╜║╪╔э║╪╔и╓╚╓И╡©╓БфЧно╓г╓╜╓й╓╞╓й╓Й╓ч╓╧.
 
      Keyboard: no
 
 
 бп╨Ж: ╔╧╔з║╪╔╧╓н╥Гг║╓к╓Х╓К╓Б╓н╓г╓╧.
       ╦е╓╓ XT/AT (84╔╜║╪) ╓н╔╜║╪╔э║╪╔и╓н╔ж║╪╔х╔ж╔М╔ц╔╞цФ╓н╔у╔К╔╣╔щ║╪╔х╓о
       ╧т╓О╓Л╓й╓╞╓й╓Й╓ч╓╧. ╔н║╪╔хPC╓н╢Ж╣║╪О╓╚╓о╓ч╓ю╓Ё╓н╔©╔╓╔в╓н╔╜║╪╔э║╪╔и
       ╓г╓╥╓Г╓╕. ╓╒╓й╓©╓╛╓ч╓ю╓Ё╓н╔©╔╓╔в╓н╔о║╪╔и╔╕╔╖╔╒╓Р╩х╓ц╓ф╓╓╓К╓й╓И,
       ╔╓╔С╔╧╔х║╪╔К╔у╔М╔ц╔т║╪╓Д CD-ROM ╓╚╓И╓н╣╞ф╟цФ╓к
       ╬Е╓к╓╒╓╡╓©╔╜║╪╔э║╪╔и╓╛╦╚╓д╓╚╓И╓й╓╚╓ц╓©╩щ╓н╔А╔ц╔╩║╪╔╦╓Р╦╚╓К╓г╓╥╓Г╓╕.
 
       ╓Ё╓н╔А╔ц╔╩║╪╔╦╓Р╦╚╓©╓Ид╬╓╟╓к╔╧╔з║╪╔╧╔п║╪╓Р╡║╓╥╓ф╓╞╓ю╓╣╓╓.
       ╟й╡╪╓н╔в╔М╔С╔в╔х╓╛╓╒╓И╓О╓Л╓К╓о╓╨╓г╓╧.
 
        >> FreeBSD/i386 BOOT
        Default: x:xx(x,x)/boot/loader 
        boot:
 
       ╓╫╓Ё╓г -Dh ╓хфЧно╓╥╓ф╓╞╓ю╓╣╓╓. ╔╜║╪╔э║╪╔и╔©╔╓╔в╓к╫ХмЩ╓╛
       ю╣╬О╓к╧т╓О╓Л╓К╓г╓╥╓Г╓╕. ╓Ё╓н╦╫╬щ╓о╨г╫И╓н╔╓╔С╔╧╔х║╪╔К╓н
       ╩Ч╓н╓ъх╞ю╦╓╥, ╟й╦Е╓олДбЙ╓х╓о╓й╓И╓й╓╓╓г╓╥╓Г╓╕.
 
 
&footer; diff --git a/ja/support.sgml b/ja/support.sgml index 7a71658802..1486c17501 100644 --- a/ja/support.sgml +++ b/ja/support.sgml @@ -1,979 +1,979 @@ + %includes; ]> &header;

╔А║╪╔Й╔С╔╟╔Й╔╧╔х

╔А║╪╔Й╔С╔╟ ╔Й╔╧╔х ╓о FreeBSD ╓н╔Ф║╪╔╤╓к╓х╓ц╓ф╪Гмв╓й╔╣╔щ║╪╔х╪Йцй╓г╓╒╓Й, ╟ш╓й╓К оцбЙхо╟о╓Р╔╚╔п║╪╓╧╓Кб©╓╞╓н╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓╛╓╒╓Й╓ч╓╧. ╓и╓н╔Й╔╧╔х╓к еЙ╧ф╓╧╓ы╓╜╓╚╓О╓╚╓И╓й╓╓╩Ч╓о freebsd-questions@FreeBSD.ORG ╓к (лУцМ: ╠я╦Л╓г) еЙ╧ф╓╥╓ф╓╞╓ю╓╣╓╓. ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓н╔╒║╪╔╚╔╓╔ж╓Р www.FreeBSD.org ╓к╓ф ╠эмВ╓╥╓©╓Й, ╦║╨В ╓╧╓К╓Ё╓х╓Б ╓г╓╜╓ч╓╧.

FreeBSD Conspectus ╓о ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓кеЙ╧ф╓╣╓Л╓©фБмф╓Р╟Л╫╣╢жц╠╟л╓гмвлС╓╥╓©╓Б╓н╓г╓╧. ╨г╤А╧т╓й╓О╓Л╓©╣дою╓Д╥ХдЙ╓Р, ╓р╓хлэ╓гЁнг╖╓╧╓К╓Ё╓х╓╛╓г╓╜╓ч╓╧.

╓╓╓╞╓д╓╚╓н╠я╦Л╟йЁ╟╓н╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓Б╓╒╓Й╓ч╓╧:

╓Ё╓Л╟йЁ╟╓к FreeBSD ╓н╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓Р╨Н╓ц╓©╩Ч╓о, ╡Ф║╧╓кцн╓И╓╩╓ф╓╞╓ю╓╣╓╓.

╔к╔Е║╪╔╧╔╟╔К║╪╔в

FreeBSD юЛмя╓н ╔к╔Е║╪╔╧╔╟╔К║╪╔в╓о╬╞╓╥╓╥╓╚╓╒╓Й╓ч╓╩╓С╓╛, б╬╓к FreeBSD ╓н╔Ф║╪╔╤╓╛╤╫лё╓Р╩Щ╓доцбЙ╓к╓д╓╓╓ф╓н©Тб©╓╞╓н╔к╔Е║╪╔╧╔╟╔К║╪╔в╓╛╓╒╓Й╓ч╓╧. ╓╠╓Л╓и╓Б, ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓╛ FreeBSD ╓нЁ╚х╞╪т╓кюэ©╗╓╧╓К╨г╓Б©╝мЙ╓г╓╜ ╓КйЩк║╓г╓╒╓К╓Ё╓х╓к╓ойя╓О╓Й╓╒╓Й╓ч╓╩╓С. FreeBSD ╓к╢ь╓╧╓Кмм║╧╓й╣дою╓о comp.unix.bsd.freebsd.misc╓Р╦╚╓ф╓╞╓ю╓╣╓╓. ╫емв╓й╔╒╔й╔╕╔С╔╧╓к╓д╓╓╓ф╓о comp.unix.bsd.freebsd.announce ╓Р╦╚╓ф╓╞╓ю╓╣╓╓.

The BSD Usenet News Searcher ╓о 1992 г╞ 6 ╥Н╟й╧ъ╓н╓╧╓ы╓ф╓н BSD ╢ьо╒╓н Usenet ╔к╔Е║╪╔╧╔╟╔К║╪╔в╓Р╔╒║╪╔╚╔╓╔ж╓╥╓ф╓╓╓ч╓╧.

IRC

#freebsd ╓х╓╓╓╕╔а╔Ц╔С╔м╔К╓о╓╒╓а╓Ё╓а╓н IRC ╓н╔м╔ц╔х╔О║╪╔╞╬Е╓кб╦╨ъ╓╥╓ч╓╧╓╛, FreeBSD ╔в╔М╔╦╔╖╔╞╔х╓о╓╫╓Л╓И╓Р╔Ё╔С╔х╔М║╪╔К╓╥╓ф╓╓╓ч╓╩╓С╓╥, IRC ╓Р╔╣╔щ║╪╔х╓н╓©╓А╓н╔А╔г╔ё╔╒╓х╓╥╓ф╩ы╩Щ╓╥╓ф╓╓╓К╓О╓╠╓г╓Б╓╒╓Й╓ч╓╩╓С. IRC ╓н╔а╔Ц╔С╔м╔К╓г╪алД╓╥╓ф╓Б, л╣╩К╓╣╓Л╓©╓ЙиН©╚╓╣╓Л╓©╓Й╫Ё╓Й╫п╓╣╓Л╓©╓Й╓╧╓К╓╚╓Б╓╥╓Л╓ч╓╩╓С. #freebsdhelp ╓х╓╓╓╕л╬╓н╔а╔Ц╔С╔м╔К╓╛╓╒╓Л╓п, ╓╫╓а╓И╓нйЩ╓╛╓Х╓Й╠©╓╛╓╓╓╓╓╚╓Бцн╓Л╓ч╓╩╓С. ╓Ё╓Л╓И╓н╔а╔Ц╔С╔м╔К╓Р IRC ╓г╩Н╓╥╓©╓╓╓й╓И, ╓╒╓й╓©╓нюуг╓╓г╧тф╟╓╥╓ф╓╞╓ю╓╣╓╓. ╓╫╓н╬Л╧Г, ╓╫╓Л╓И╓н╔а╔Ц╔С╔м╔К╓н╟щ╩Щ╢имЩ╓к╢ь╓╧╓К╤Л╬П╓о FreeBSD ╔в╔М╔╦╔╖╔╞╔х╓ь╩Щ╓а╧Ч╓ч╓й╓╓╓Х╓╕╓к╓╙╢Й╓╓╓╥╓ч╓╧. ╬э╨ы╓о FAQ ╓н╔╗╔С╔х╔Й ╓Р╩╡╬х╓╥╓ф╓╞╓ю╓╣╓╓.

╔╕╔╖╔ж╬Е╓н╔Й╔╫║╪╔╧

GNATS ╬ЦЁ╡йС╧П (Problem Report) ╔г║╪╔©╔ы║╪╔╧

╨г©╥╓н FreeBSD ╓н╬ЦЁ╡йС╧П╓о GNATS ╔г║╪╔©╔ы║╪╔╧╓Р мя╓╓╓фдиюв╓╣╓Л╓ф╓╓╓ч╓╧.

╬ЦЁ╡йС╧П╓о FreeBSD ╔╥╔╧╔ф╔Ю╓н send-pr(1) ╔Ё╔ч╔С╔и╓Д freebsd-bugs@FreeBSD.ORG ╓к╔А║╪╔К╓РаВ╓К╓Ё╓х╓г Ё╚х╞╔а║╪╔Ю╓кдС╫п╓╧╓К╓Ё╓х╓Б╓г╓╜╓ч╓╧. ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓о╦Ь╪╟╓й╬ЦЁ╡йС╧П╓х╓╥╓ф╓одиюв╓╣╓Л╓ф ╓╓╓й╓╓ ╓н╓г, send-pr ╓╛©Д╬╘╓╣╓Л╓ф╓╓╓К╓Ё╓х╓кцМ╟у╓╥╓ф╓╞╓ю╓╣╓╓!

-

CVS ╔Й╔щ╔╦╔х╔Й

+

CVS ╔Й╔щ╔╦╔х╔Й

CVS ( Concurrent Version System) ╓Р╡Ф║╧╓о╔╫║╪╔╧╓Р╔Ё╔С╔х╔М║╪╔К╓╧╓К ╔д║╪╔К╓х╓╥╓ф╩х╓ц╓ф╓╓╓ч╓╧. FreeBSD 2.0 ╓╚╓И╦╫╨ъ╓ч╓г╓на╢╓ф╓нйя╧╧ (╓╫╓нлэе╙╓РюБлю╓╧╓К╔М╔╟╔А╔ц╔╩║╪╔╦╓х╤╕╓к) CVS ╔Й╔щ╔╦╔х╔Й╓кфЧ╓ц╓ф ╓╙╓Й, ╓Ё╓Ё╓╚╓И╢йц╠╓к╦╚╓К╓Ё╓х╓╛╓г╓╜╓ч╓╧ (╔Й╔С╔╞╓Р╔╞╔Й╔ц╔╞╓╥╓ф╓╞╓ю ╓╣╓╓). FreeBSD ╓н CVS ╔Й╔щ╔╦╔х╔Й╓н╢╟а╢╓й╔Ё╔т║╪╓Д╓╫╓нцФ╓к╢ч╓ч╓Л╓К г╓╟у╓нЁ╚х╞╔ж╔И╔С╔а╓РфЧ╪Й╓╧╓К╓к╓о, ╟й╡╪╓н╓Х╓╕╓ййЩк║╓╛╓╒╓Й╓ч╓╧.

  • cvsup ╔╙╔С╔г╔ч╔С╔и╓г╔╒╔╞╔╩╔╧╓╧╓К╔╙║╪╔п║╪╔ь╔ц╔и╓ндЦ╓╓йЩк║╓г╓╧. юЛмя╔Ф║╪╔ф╔ё╔Й╔ф╔ё (Modula-3 ╓г╫Я╓╓╓ф╓╒╓Й╓ч╓╧) ╓Р╩хмя╓╥╓ч╓╧.
  • anoncvs ╔╙╔С╔г╔ч╔С╔и╓г╔╒╔╞╔╩╔╧╓╧╓КйЩк║╓г╓╧. cvsup ╓Х╓Й╓о (╩Ч╢ж╓хе╬аВ╓╣╓Л╓К ╔п╔╓╔хнл╓нею╓╚╓И╓ъ╓ф) ╔╙║╪╔п║╪╔ь╔ц╔и╓╛╧Б╓╓╓г╓╧╓╛, ╔╫║╪╔╧╔д╔Й║╪╓н ╓╢╓╞╟ЛиТ╓Р check out ╓╧╓К╓н╓к╩х╓╕й╛╓к╓о╓Х╓Й╢йц╠╓г╓╧╓╥, FreeBSD ╓к╢Ш╓к╔п╔С╔и╔К╓╣╓Л╓ф╓╓╓К cvs ╓н╔д║╪╔К╟йЁ╟╓ои╛мв╓х╓╥╓ч╓╩╓С.
  • CTM ╔╙║╪╔п║╪╔ь╔ц╔и╓╛хС╬О╓к дЦ╓╓, ╔п╔ц╔а╔Б║╪╔и╓г╔╒╔╞╔╩╔╧╓╧╓КйЩк║╓г╓╧. ╢Пкэе╙╓к╔я╔ц╔а╓╛╔А║╪╔К ╓гфо╓╠╓И╓Л╓ч╓╧.
  • -
  • web +
  • web ╔╓╔С╔©║╪╔у╔╖║╪╔╧ ╤Ябне╙╓ййя╧╧╓Д╔у╔║╔╓╔К╓н╔Й╔с╔╦╔Г╔С╓Р д╢╓ы╓К╓©╓А╓к, ц╠╓к╔Й╔щ╔╦╔х╔Й╓Р╠эмВ╓╧╓К╓©╓А╓н╔╒╔╞╔╩╔╧йЩк║╓г╓╧.
  • ╨г╦Е╓к, ╫╪й╛╓й╔м╔ц╔х╔О║╪╔╞бс╟Х╓╛╓╒╓К╬Л╧Г╓Д FTP ╓Р╩х╓О╓й╓╠╓Л╓п ╓й╓И╓й╓╓╬Л╧Г╓о, ftp.FreeBSD.org ╓╚╓И CVS ╔Й╔щ╔╦╔х╔Й╓Р╔ъ╔И║╪╓╥╓ф╓╞╓ю╓╣╓╓.

CVS ╔Й╔щ╔╦╔х╔Й CGI ╔╧╔╞╔Й╔в╔х╓н╔ъ╔И║╪╓о ╔╚╔Й╔у╔╘╔К╔к╔╒, ╔╚╔Й╔у╔╘╔К╔к╔╒, ╔и╔╓╔д, фЭкэ ╓╫╓╥╓ф╔╧╔з╔╓╔С (╠я╦Л, ╔╧╔з╔╓╔С╦Л) ╓к╓╒╓Й╓ч╓╧.

╔Ф║╪╔╤╔╟╔К║╪╔в

FreeBSD ╓о©м╣╓╓РбГ╓╜╓╞╧╜╓╡╓ф╓╓╓ф, ю╓Ё╕цФ╓кб©╓╞╓н╔Ф║╪╔╤╔╟╔К║╪╔в ╓╛╓г╓╜╓ф╓╓╓ч╓╧. ╓Б╓╥╓Ё╓н╔Й╔╧╔х╓к╓й╓╓ FreeBSD ╓н╔Ф║╪╔╤╔╟╔К║╪╔в ╓Рцн╓ц╓ф╓╓╓©╓И ╡Ф║╧╓кцн╓И╓╩╓ф ╓╞╓ю╓╣╓╓.

╔╙║╪╔╧╔х╔И╔Й╔╒

  • ╔к╔Е║╪╔╣╔╕╔╧╔╕╔╖║╪╔К╔╨╫ё. BSD Users Group, Sydney (BUGS) ╓офС╔╚╥НкХ╓к╔╥╔и╔к║╪╓г╫╦╡Я╓РЁ╚╓╓╓ф╓╙╓Й, ╔к╔Е║╪╔╣╔╕╔╧╔╕╔╖║╪╔К╔╨╫ёцФ╓к╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓н╔А╔С╔п║╪╓╛╓╓╓ч╓╧. ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓╧╓К╓к╓о, ╔А║╪╔К╓нкэй╦╓к subscribe bugs╓х╫Я╓╓╓ф majordomo@bugs.au.FreeBSD.org ╓каВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔╞╔╓║╪╔С╔╨╔И╔С╔и╫ё. Home Unix Users Group for Brisbane ╓оЁж╫╣╓г University of Queensland ╓ндС╤║╓╧╓К╬Л╫Й╓г╡Я╧Г╓Р╩Щ╓ц╓ф╓╓╓ч╓╧. ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓ь╓н╩╡╡ц╓й╓и╓н ╧╧╓й╓К╬ПйС╓о http://www.humbug.org.au ╓╚╓И╔╒╔╞╔╩╔╧╓г╓╜╓ч╓╧.

  • фН╔╙║╪╔╧╔х╔И╔Й╔╒╫ё. BUGA, the BSD User Group of Adelaide ╓о, итдЙ╢Э╓к╫╦╡Я╓Р╧т╓й╓ц╓ф╓╓╓ч╓╧. кэй╦╓к subscribe BUGA ╓х╫Я╓╓╓ф majordomo@lemis.com ╓к аВ╓К╓Ё╓х╓г╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓г╓╜╓ч╓╧.

  • ╔с╔╞╔х╔Й╔╒╫ё. Victoria's FreeBSD Users Group (VicFUG) ╓о╔А╔К╔э╔К╔С╓ккэ╣Р╓Р╓╙╓╓╓ф╓╓╓ч╓╧. ╤У╓н╔А╔ц╔╩║╪╔╦╓Р general-subscribe@vicfug.au.FreeBSD.org ╓каВ╓К╓Ё╓х╓г╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓г╓╜╓ч╓╧.

  • ю╬╔╙║╪╔╧╔х╔И╔Й╔╒╫ё. Pandaemonium ╓ою╬╔╙║╪╔╧╔х╔И╔Й╔╒╫ё╓н BSD ╔Ф║╪╔╤║╪╔╨╔╟╔К║╪╔в╓г╓╧.

╔Х║╪╔М╔ц╔я

  • ╔╙║╪╔╧╔х╔Й╔╒ The BSD User Group Austria (BUGAT) ╓о, ╔и╔╓╔д╦Л╓╛цФ©╢╓н╔Ф║╪╔╤╔╟╔К║╪╔в╓г╓╧. ╬э╨ы╓о╓О╓©╓╥╓©╓а╓н╔╣║╪╔п╓Р╓╢мВ╓╞╓ю╓╣╓╓.

  • ╔╙╔И╔С╔ю The Dutch FreeBSD User Group (NLFUG) ╓о╨г╫И╓н╫╦╡Я╓Р 1999 г╞ 10 ╥Н 2 фЭ╓к╧т╓╓╓ч╓╥╓©. 30 г╞а╟╓н╓Ё╓нфЭ╓к SRI ╓н Doug Englebart ╓н ╦╕╣Ф╪╪╓г 2 хжлэ╓н IMP ╓╛╔╓╔С╔╧╔х║╪╔К╓╣╓Л╓ч╓╥╓©. Ё╖╓╣╓С╓╢б╦╓╦╓н╓Х╓╕╓к, ╓Ё╓Л╓о Internet ╓ь╓хю╝д╧╓╥╓©╟Л╓д╓н╩о╓ч╓Й╓г╓╥╓©. (╓Ё╓н╓Ё╓х╓Р╢╜╣╞╓╥╓ф╓╞╓Л╓© Edwin Kremer ╓к╢╤╪у╓╥╓ч╓╧).

  • ╔г╔С╔ч║╪╔╞ BSD-DK, The Danish BSD user group ╓о╔г╔С╔ч║╪╔╞╓н OS ╓к╢ьо╒╓╧╓К BSD ╓нб╔©й╓х╔╣╔щ║╪╔х ╔А║╪╔Й╔С╔╟╔Й╔╧╔х, ╔Л╔╞╔а╔Ц║╪, ╓╫╓╥╓ф╔╩╔ъ╔й║╪╓Р╧т╓й╓ц╓ф╓╓╓ч╓╧. ╔А║╪╔К╧ьфи╓н╢Ук╬╓о bsd-dk-request@bsd-dk.dk ╓ч╓г.
  • ╔и╔╓╔д, ╔╠╔К╔С CBUG (Cologne BSD Usergroup) ╓о╔╠╔К╔Сцо╤Х╓н BSD ╔Ф║╪╔╤╓Р╓ч╓╚╓й╓╓╓ч╓╧. ╡Я╧Г╓о кХ╥НбХ 4 ╤БмкфЭ╓к Richard-Wallraff-Platz ╓н╔╓╔©╔Й╔╒╔С╔Л╔╧╔х╔И╔С ``Campi'' ╓г ╧т╓О╓Л╓ч╓╧.

  • ╔и╔╓╔д, ╔и╔Е╔╓╔╧╔ж╔К╔╟ Cosmo-Project ╓о ╟ЛиВйя╓ц╓©╔Ф║╪╔╤║╪╔╟╔К║╪╔в╓г╓╧. ╡Я╧Г╓Р╩Щ╓д╓╚╓О╓Й╓к, хЮ╓И╓оюя╤ке╙╓к ╓©╓х╓╗╓п╔М╔э╔ц╔х╓н╓Х╓╕╓й╢К╡Х╓Ре╦Ё╚╓╥╓ч╓╧. ╔Ф║╪╔╤╓нбГх╬╓о FreeBSD ╓Р ╩х╓ц╓ф╓╓╓ч╓╧╓╛, ╓╥╓╚╓╥ FreeBSD ╢ьо╒╓кфц╡╫╓╥╓©╔╟╔К║╪╔в╓г╓о╓╒╓Й╓ч╓╩╓С.

  • ╔у╔И╔С╔╧ French FreeBSD UG. ╬э╨ы╓о╔Й╔С╔╞╓Рц╘╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔и╔╓╔д, ╔у╔И╔С╔╞╔у╔К╔х FrankfurtBSD ╓о Rhein-Main цо╟Х╓н╔Ф║╪╔╤╡Я╓г╓╧. ╦╫╨ъ, ©╥╓╥╓╓╔А╔С╔п╓РйГ╫╦цФ╓г╓╧. ╣╛ло╓╛ЁхбГ╓╥╓©╓И╥Н╟Л╡С╫╦╓ч╓Й, ╬╝╓╣╓╓╔в╔М╔╦╔╖╔╞╔х╓Р╠©╠д╓╥╓©╓╓╓х╧м╓╗╓ф╓╓╓ч╓╧.
  • ╔и╔╓╔д, ╔о╔С╔ж╔К╔╟ BSDHH (BSD User Group Hamburg) ╓окХ╥НбХ 1 ©ЕмкфЭ╓н╦А╦Е 7 ╩Ч╓╚╓И ╔и╔╓╔д╓н Hamburg-Eppendorf ╓н Loewenstrasse 22 хжцо╓к╓╒╓К цФ╡з╔Л╔╧╔х╔И╔С Lotosbluete ╓гнЦ╡Я╓РЁ╚╓╓╓ф╓╓╓ч╓╧. ╓ш╓х╓С╓и╓н╔А╔С╔п║╪╓о FreeBSD ╔Ф║╪╔╤╓г╓╧╓╛, BSD иВ╓на╢╓ф╓н ╔╥╔╧╔ф╔Ю╓н╔Ф║╪╔╤╓н╩╡╡ц╓Р╢©╥ч╓╥╓ф╓╓╓ч╓╧.

  • ╔╒╔╓╔К╔И╔С╔и BUGI (BSD User Group Ireland) ╓о╦╫╩Чею╓г╓о, ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓х╨г╬╝╦б╓н Web ╔з║╪╔╦ ╓Рмя╟у╓╥╓©╬╞║╧бГ╓╡╓╣╓й╫╦╓ч╓Й╓г╓╧. ╓╧╓ы╓ф╓н BSD ╔Ф║╪╔╤/╔у╔║╔С╓Р╢©╥ч╓╥╓ф╓╓╓ч╓╧.

  • ╔╓╔©╔Й╔╒ GUFI (Gruppo Utenti FreeBSD Italia) ╓о╔╓╔©╔Й╔╒©м╓к╓Х╓К FreeBSD ╓н╔Ф║╪╔╤╔╟╔К║╪╔в╓г╓╧. ╔╓╔©╔Й╔╒©м FreeBSD ╔Ф║╪╔╤╓╛╔╣╔щ║╪╔х╓Д FreeBSD ╓н╔╓╔©╔Й╔╒╦Л╓н╬ПйС╓Р╦╚╓д╓╠╓К╓н╓Р ╫У╓╠╓К╓©╓А╓к╨Н╓И╓Л╓ч╓╥╓©. ╬э╨ы╓о ╔Й╔С╔╞ ╓Рц╘╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔щ║╪╔И╔С╔и, Lublin Lublin BSD Users Group. ╬э╨ы╓о╔Й╔С╔╞╓Р╩╡╬х.

  • ╔╧╔╕╔╖║╪╔г╔С, Lund Lund Linux User Group (LFUG) ╓о 50 ©м╤А╓╓╔А╔С╔п║╪╓Рмй╓╥ Linux ╓к╡ц╓╗╓ф FreeBSD ╓Д Solaris ╓Ббп╬щ╓х╓╥╓ф╓╓╓ч╓╧. ╩╡╡ц╓╧╓К╓к╓о, Omar Dedovic╓ко╒мМ╓╥╓ф╓╞╓ю╓╣╓╓.

  • ╔╧╔╕╔╖║╪╔г╔С BSD Users Sweden (BUS) ╓о╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓Р╠©╠д╓╥╓ф╓╓╓ч╓╧. ╩╡╡ц╓╧╓К╓к╓о, majordomo@stacken.kth.se ╓ь subscribe bus ╓х╫Я╓╓╓©╔А║╪╔К╓РаВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔и╔╓╔д, ╔ч╔С╔о╔╓╔Ю UUGRN (Unix Users Group Rhein-Neckar) ╓о, ╓╒╓И╓Ф╓К Unix иВ╔╥╔╧╔ф╔Ю, ╓╫╓нцФ╓г╓Б Linux ╓Д BSD ╔Ф║╪╔╤╓РцФ©╢╓х╓╧╓Кцо╟Х╥©╔╟╔К║╪╔в╓н╟Л╓д╓г╓╧. ╡Я╧Г╓о, кХ╥НбХфС©ЕмкфЭ╓к Mannheim-Käfertal ╓н ║жEichbaum Brauhaus║в ╓г, бХ╩млзмкфЭ╓к Heidelberg ╓н ║жVater Rhein║в ╓г╓╫╓Л╓╬╓Л╧т╓О╓Л╓ф╓╓╓ч╓╧.

  • ╔и╔╓╔д, ╔ъ╔Е╔С╔ь╔С BIM (Berkeley In Munich) group ╓о╔╙║╪╔п║╪╔п╔╓╔╗╔К╔С╓н BSD гию╦╔╥╔╧╔ф╔Ю╓н╔Ф║╪╔╤║╪╓Р╓ч╓╚╓й╓╓╓ч╓╧.

  • ╔и╔╓╔д, ╔Л║╪╔╡╔С╔╧╔ж╔К╔╞ Unix and Linux User Group ╓о╔Л║╪╔╡╔С╔╧╔ж╔К╔╞ (╔и╔╓╔д, ╔п║╪╔п╔Й╔╒) ╨ъ╫╩╓н©м╓н╓©╓А╓н Unix а╢хл╓к╢ь╓╧╓К╔Ф║╪╔╤╡Я╓г╓╧. ╓О╓©╓╥╓©╓а╓окХ╥НбХ╟Л╥НмкфЭ╓к╔Л║╪╔╡╔С╔╧╔ж╔К╔╞╓н╔я╔ж║жFilmb ne║в╓к╫╦╓ч╓ц╓ф╓╓╓ч╓╧. ╔╕╔╖╔ж╔╣╔╓╔х╓Рк╛╓Л╓К╓╚ m.suess@2use.org╓к╔А║╪╔К╓РаВ╓ц╓ф╡╪╓╣╓╓.

  • ╔╧╔╕╔╖║╪╔г╔С BSD Users Sweden (BUS) ╓о, ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓Р╠©╠д╓╥╓ф╓╓╓ч╓╧. ╩╡╡ц╓╧╓К╓к╓о, кэй╦╓к subscribe bus ╓х╫Я╓╓╓©╔А║╪╔К╓Р majordomo@stacken.kth.se ╓ч╓гаВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔х╔К╔Ё The Turkish FreeBSD Users Group (Turkiye FreeBSD Kullanicilari Grubu) ╓о 1999 г╞ 9 ╥Н╓кюън╘╓╣╓Л╓ч╓╥╓©. TFUG ╓о, ╔х╔К╔Ё╓н FreeBSD ╔Ф║╪╔╤ ╓╛╔х╔К╔Ё╦Л╓г╫Я╓╚╓Л╓© FreeBSD ╓н╔╣╔щ║╪╔х╓Д╣╜╩Ж╓Рц╣╓╧╪Й╫У╓╠╓Р╓╧╓К м╫дЙ╓г╓╧. ╬э╓╥╓╓╬ПйС╓о M. Guven Mucuk ╓ч╓г.

  • ╔╓╔╝╔Й╔╧ FreeBSD UKUG (FreeBSD UK User's Group) ╓о╔╓╔╝╔Й╔╧╧ЯфБ╓н FreeBSD ╔Ф║╪╔╤╓н╓©╓А╓к ЁХф╟╓╥╓ф╓╓╓ч╓╧. ╬э╓╥╓╞╓о╔Й╔С╔╞╓Р╓©╓и╓ц╓ф╓╞╓ю╓╣╓╓.

клйф

  • Ames, ╔╒╔╓╔╙╔О╫ё The Ames Free-Unix Group ╓о Free Unix ╓Р╩х╓ц╓ф╓Б╓И╓╕╓Х╓╕ф╞╓╜╓╚╓╠╓ф╓╓╓╜╓ч╓╧. ╥Н╟Л╡С, ╔╒╔╓╔╙╔О╫ён╘бГЁь╓н╔╜╔Ц╔С╔я╔╧╓г╡Я╓╓, ╓╫╓н╦Е, ╔╙║╪╔в╔С╓йQ&AйЩ╪╟ ╓г╔в╔Л╔╪╔С╔ф║╪╔╥╔Г╔С╓Р╓╥╓ч╓╧. aafugit-subscribe@aafugit.org ╓к╡©╓Б╫Я╓╚╓Л╓ф╓╓╓й╓╓╔А║╪╔К╓РаВ╓К╓Ё╓х╓г╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓г╓╜╓ч╓╧.

  • ╔п║╪╔╞╔Л║╪, ╔╚╔Й╔у╔╘╔К╔к╔╒╫ё The Berkeley Unix User Group ╓о╔╣╔С╔у╔И╔С╔╥╔╧╔Ё╓н╔ы╔╓╔╗╔Й╔╒╓н©м╓й╓И ц╞╓г╓Б╩╡╡ц╓г╓╜╓К Unix а╢хл╓н╔Ф║╪╔╤╡Я╓г╓╧. ╓О╓©╓╥╓©╓а╓о╔п║╪╔╞╔Л║╪╓н╔ю╔╕╔С╔©╔╕╔С╓к╫╣╟Л╡С╓Р╢Пкэ╓к╫╦╓ч╓Й╓ч╓╧. ╔╕╔╗╔ж╔╣╔╓╔х╓Рк╛╓Л╓К╓╚, ╔А║╪╔К╓Р buug-request@weak.org ╓ьаВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔╓╔Й╔н╔╓╫ё ╔╥╔╚╔╢ Chicago FreeBSD Users Group (ChiFUG).

  • ╔Ё╔м╔а╔╚╔ц╔х Free Unix user's Group (CFUG) ╓о free Unix ╓кйШ╓╡╓И╓Л, Unixen ╓н╓ш╓х╓С╓и╓╧╓ы╓ф╓кбп╓╥╓ф╓Б ╔Й╔╫║╪╔╧╓Р╩Щ╓ц╓ф╓╓╓ч╓╧. ╔Ё╔м╔а╔╚╔ц╔х╓хю╬иТ╔ч╔╣╔а╔Е║╪╔╩╔ц╔д╓Р бп╬щ╓х╓╥╓ф╓ч╓╧. ╬э╨ы╓о http://www.cfug.org.

  • ╔ф╔╜╔╣╔╧╫ё ╔р╔Е║╪╔╧╔х╔С Houston FreeBSD Users Group 1999 г╞ 3 ╥Н╓к╥Кю╝╓╣╓Л╓ч╓╥╓©. ╡Ф║╧╓нлэи╦╓о╔р╔Е║╪╔╧╔х╔С╓н FreeBSD Unix ╔Ё╔С╔т╔Е║╪╔©╔Ф║╪╔╤╓нюКеа╓х╤╣╡╫╓г╓╧. ╡Ф║╧╓обХ4лзмк╓к╡Я╧Г╓Р ╩Щ╓ц╓ф╓╓╓ч╓╧. ╔╟╔К║╪╔в╓о╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓Р http://www.houfug.org/mailman/listinfo/hou-freebsd ╓к╩Щ╓ц╓ф╓╓╓ч╓╧. ╬э╨ы╓о╡Ф║╧╓н web ╔╣╔╓╔х╓Рк╛╓м╓К╓╚ houfug@houfug.org ╓к ╔А║╪╔К╓Р╓╞╓ю╓╣╓╓.

  • ╔╓╔С╔г╔ё╔╒╔й╫ё, ╔╓╔С╔г╔ё╔╒╔й╔щ╔Й╔╧ Free Unix for Indianapolis ╓о╔╓╔С╔г╔ё╔╒╔й╔щ╔Й╔╧╓х╓╫╓н╪Чйу╓г, ╓╣╓ч╓╤╓ч╓й Free Unix ╓нмЬмя╓РюКеа╓╥╓ф╓╓╓К NPO ╓г╓╧. ╢Пкэе╙╓к, ╓О╓©╓╥╓©╓а╓о Unix ╓к╤╕дл╓н╬Пг╝╓Р╩Щ╓ц╓ф╓╓╓К©м╓н╫╦╓ч╓Й╓г╓╧. ╬э╓╥╓╓╬ПйС╓о╔╕╔╖╔ж╔╣╔╓╔х╓Рк╛╓Л╓К╓╚, info@fufin.org ╓к╔А║╪╔К╓Р аВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔╚╔С╔╤╔╧╫ё KULUA (Kansas Unix & Linux Users Association) ╓о╔╚╔С╔╤╔╧╫ё Lawrence ╓н╔у╔Й║╪ Unix ╓н╔Ф║╪╔╤║╪╔╟╔К║╪╔в ╓г╓╧╓╛, ╔╚╔С╔╤╔╧╫ёеЛиТ╓╚╓И╔ъ╔╨║╪╔Й╫ёю╬иТ╓н╔Ф║╪╔╤║╪╓г╧╫ю╝╓╣╓Л╓ф╓╓╓ч╓╧. лС 120 л╬╓н╡Я╟В╓╛╓╓╓фЁж╫╣╓г╡Я╧Г╓РЁ╚╓╓╓ф╓╓╓ч╓╧. ╬э╨ы╓о Web ╔╣╔╓╔х╓╚, ╓ч╓©╓о kulua@kulua.org ╓ч╓г.

  • ╔╚╔С╔╤╔╧╫ё Wichita Area FreeBSD Users Group (WAFUG) ╓о╔╕╔ё╔а╔©цойЩ╓нц╞╓к╓г╓Б FreeBSD ╓Дб╬╓н Uunix ╓╙╓Х╓с Unix ╔И╔╓╔╞╓й OS ╓н╔╣╔щ║╪╔х╓РдС╤║╓╧╓К╪╚мЁ╓й ╔Ф║╪╔╤║╪╔╟╔К║╪╔в╓г╓╧. ╩Д╓©╓а╓о╥Н╓к2╡С, дл╬О╓о╠ЛаП╓Б╟Ш╓ъй╙╓Б ╪╚мЁ╓й╔Л╔╧╔х╔И╔С╓г╡Я╧Г╓Р╩Щ╓ц╓ф╓╓╓ч╓╧. ╬э╨ы╓о Email ╓РаВ╓ц╓ф╓╞╓ю╓╣╓╓. ╪╚мЁ╓й shell ╔╒╔╚╔╕╔С╔х╓Д www ╓Д ftp ╓н╔╧╔з║╪╔╧╓БдС╤║╓г╓╜╓ч╓╧.

  • ╔м╔п╔ю╫ё, ╔И╔╧╔ы╔╛╔╧ Vegas Free Unix User Group

  • ╔╚╔Й╔у╔╘╔К╔к╔╒╫ё ╔М╔╧╔╒╔С╔╦╔╖╔К╔╧ Yahoo Club ╔╟╔К║╪╔в╓о Los Angeles ╓к╣Рею╓Рцж╓╞ BSD ╔Ф║╪╔╤║╪ ╔╟╔К║╪╔в╓нЁХф╟╣Рею╓г╓╧.

  • ╔к╔Е║╪╔А╔╜╔╥╔Ё╫ё NMLUG ╓о╔╒╔К╔п╔╚║╪╔╜╓г ╥Н╓к╟Леы╡Я╧Г╓Р╧т╓╓ Linux ╓х BSD ╓нн╬йЩ╓н╔Ф║╪╔╤╓Р╪У╓╠фЧ╓Л╓ф╓╓╓ч╓╧. ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓╧╓К╓к╓окэй╦╓к subscribe nmlug╓х╫Я╓╓╓©╔А╔╓╔К╓Рmajordomo@swcp.com ╓ь аВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔К╔╓╔╦╔╒╔й╫ё ╔к╔Е║╪╔╙╔Й╔С╔╨New Orleans *BSD User Group meets twice a month. Contact Konrad Rzeszutek for more details. A web page will be posted soon. Group ╓о╥Н╓к 2 ╡С╡Я╧Г╓Р╩Щ╓ц╓ф╓╓╓ч╓╧. ╬э╨ы╓о Konrad Rzeszutek ╓к ©ж╓╓╓ф╓╞╓ю╓╣╓╓. Web ╔з║╪╔╦╓Б╫ЮхВцФ╓г╓╧.

  • ╔к╔Е║╪╔Х║╪╔╞╫ё ╔к╔Е║╪╔Х║╪╔╞ D'Artagnan's FreeBSD Users Group.

  • кл╔╒╔Й╔╬╔й Yavapai Free Unix Users Group ╓окл╔╒╔Й╔╬╔й╓н *BSD/Linux ╓й╓и╓н ╔Ф║╪╔╤╓н╓©╓А╓к╥Кю╝╓╣╓Л╓д╓д╓╒╓Й╓ч╓╧. ╬э╓╥╓╞╓о Russell Carter ( rcarter@consys.com) ╓ч╓г.

  • ╔у╔М╔Й╔ю╫ё ╔╙║╪╔И╔С╔и BUGO (BSD Users Group of Orlando) ╓о╔у╔М╔Й╔ю╓н╔╙║╪╔И╔С╔и╓ккэ╣Р╓Р╓╙╓╞╔╟╔К║╪╔в╓г ╔у╔Л╔С╔и╔Й║╪╓й╔у╔╘║╪╔И╔Ю╓РцФиТ╔у╔М╔Й╔юцо╤Х╓н, ╓Ф╓╞╓Ф╓╞╓о ╓╫╓Л╓Р╠ш╓╗╓ф╓╧╓ы╓ф╓н Unix ╔Ф║╪╔╤╓кфо╓╠╓К╓Ё╓х╓Рлэ╩ь╓╥╓ф╓╓╓ч╓╧. ╬э╨ы╓о BUGO web page ╓Р╦╚╓ф╓╞╓ю╓╣╓╓.

  • ╔╒╔Й╔╬╔й╫ё ╔у╔╖╔к╔ц╔╞╔╧ Phoenix BSD Users group ╓о╔с╔╦╔м╔╧╓кбп╓╥╓ф╢╟а╢╓кЁ╚╓╚╓Л╓ф╓╓╓ч╓╧. ╔у╔╖╔к╔ц╔╞╔╧цо╤Х╓╚╓И╓й╓Иц╞╓г╓Б ╪╚мЁ╓к http://bsd.phoenix.az.us ╓ь╓╢╩╡╡ц╡╪╓╣╓╓.

  • ╔╙╔Л╔╢╔С╫ё ╔щ║╪╔х╔И╔С╔и Portland (Oregon) FreeBSD Users group ╓обХ╩╟лзмкфЭ╓к╡Я╧Г╓Р╩Щ╓ц╓ф╓╓╓ч╓╧. Rick Hamell ╓ь╔А║╪╔К╓Р╡╪╓╣╓╓.

  • ╔м╔п╔ю╫ё ╔Л╔н RUUG (Reno Unix Users Group) ╓окХ╥Н Nevada ╫ё Reno ╓г нЦ╡Я╓РЁ╚╓╓╓ф╓╓╓ф FreeBSD ╓х Linux ╓н╩хмя╓к╓д╓╓╓ф╣дою╓╥╓ф╓╓╓ч╓╧. ╬э╓╥╓╞╓о Eric Blood ╓╚ Todd Crenshaw ╓ч╓г.

  • ╔н║╪╔╧ ╔╚╔М╔И╔╓╔й╫ё ╔Й╔╣║╪╔а ╔х╔И╔╓╔╒╔С╔╟╔К Triangle Area BSD Users Group ╓о╪Сет╪Чйу╓н, Raleigh, Durham, Chapel Hill ╓Р╢ч╓Ю╔╚╔Й╔у╔╘╔К╔к╔╒клиТ╓н╔Й╔╣║╪╔а╔х╔И╔╓╔╒╔С╔╟╔К╔я║╪╔╞цо╤Х╓н BSD ╔Ф║╪╔╤╓Рбп╬щ╓х╓╥╓©╡Я╓г╓╧. ╓Ё╓н╡Я╓к╤╫лё╓╛╓╒╓К©м╓окэй╦╓к subscribe tribug-members ╓х╫Я╓╓╓ф, majordomo@tribug.org ╓каВ╓Й, ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓╥╓ф╓╞╓ю╓╣╓╓.

  • ╔М║╪╔и╔╒╔╓╔И╔С╔и╫ё Rhode Island Free Unix Group ╓о╔у╔Й║╪╓гфЧ╪Й╓г╓╜╓К╓╧╓ы╓ф╓н Unix ╓Р╔╣╔щ║╪╔х╓╥╓ф╓╓╓ч╓╧. о╒мМ╓о http://users.tmok.com/~rifug ╓╚ ╔А║╪╔К╓г rifug@entropy.tmok.com ╓ч╓г.

  • ╔ъ╔╨║╪╔Й╫ё ╔╩╔С╔х╔К╔╓╔╧ ╔╩╔С╔х╔К╔╓╔╧╪Чйуцо╟Х╓г╓н BSD ╔╙╔з╔Л║╪╔ф╔ё╔С╔╟╔╥╔╧╔ф╔Ю╓ниА╣з╓Рб╔©й╓╧╓К╓©╓А, 2000 г╞ 7 ╥Н 20 фЭ╓к St. Louis BSD User Group (STLBSD) ╓╛╥Кю╝╓╣╓Л╓ч╓╥╓©. ╓О╓©╓╥╓©╓а╓о 10 ╪Чг╞╓Р╥ч╓╗╓К St. Louis Unix Users Group (SLUUG) ╓х╤╞╓╓╓д╓й╓╛╓Й╓╛╓╒╓Й, ╓Ё╓н╔Ё╔ъ╔Е╔к╔ф╔ё╓нцФ©╢╓х╓й╓К╓Ё╓х╓Рлэи╦╓х╓╥╓ф╓╓╓ч╓╧. BSD ╓к╓д╓╓╓ф╓Х╓Й©╪╓╞Ёь╓С╓г╓╓╓╞╓Ё╓х╓к╤╫лё╓н╓╒╓К©м╓й╓И, ц╞╓г╓Б╩╡╡ц╓г╓╜╓ч╓╧. ╔╕╔╖╔ж╔╣╔╓╔х╓╚╓И, ╓╓╓╞╓д╓╚╓н╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓╛мЬмя╡дг╫╓г╓╧.

  • ╔╚╔Й╔у╔╘╔К╔к╔╒╫ё╔╣╔С╔г╔ё╔╗╔╢ San Diego BSD Users Group ╓о FreeBSD, OpenBSD ╓х NetBSD ╔Ф║╪╔╤╓Рбп╬щ╓к╓╥╓ф╓╓╓ч╓╧. ╡Я╧Г╓окХ╥НбХ╟ЛлзмкфЭ╓к Mission Valley Shopping Center ╓н Borders Bookstore ╓г╧т╓О╓Л╓ф╓╓╓ч╓╧. ╬э╓╥╓╞╓о╓Ё╓Ё╓Р╓╢мВ╓╞╓ю╓╣╓╓.

  • ╔╣╔С╔у╔И╔С╔╥╔╧╔ЁклиТ/╔п║╪╔╞╔Л║╪ ╔ы╔╓╔╗╔Й╔╒ BAFUG (Bay Area FreeBSD Users Group) ╓о, кХ╥Н╔╣╔С╔у╔И╔С╔╥╔╧╔Ё╓х╔п║╪╔╞╔Л║╪╓г╦Р╦ъ╓кнЦ╡Я╓РЁ╚╓╓╓ф╓╓╓ч╓╧. ╤╫лё╓н╓╒╓КйЩ╓о╔╕╔╖╔ж╔╣╔╓╔х╓Р╦╚╓К╓╚ BAFUG Web Master ╓ч╓г╔А║╪╔К╓╞╓ю╓╣╓╓.

  • ╔╚╔Й╔у╔╘╔К╔к╔╒╫ё, ╔╥╔Й╔Ё╔С╔п╔Л║╪ SVBUG (Silicon Valley BSD User Group) ╓о, BSD ╓х╓╫╓нах╓ъ╧Ч╓ъ╔╥╔╧╔ф╔Ю╓к╢ь╓╧╓К╔у╔╘║╪╔И╔Ю╓г, ╫╦╡Я╓окХ╥НбХ╟ЛлзмкфЭ, ╔╚╔Й╔у╔╘╔К╔к╔╒╫ё╔╣╔С╔н╔╩╓н First Street ╓х Trimble Road ╓клл╓╥╓© Carl's Jr ╓н╡х╓г╧т╓й╓О╓Л╓ч╓╧. ╔╓╔ы╔С╔х╓й╓и, ╓Ё╓н╡Я╓г╧т╓й╓О╓Л╓ф╓╓╓КфБмф╓к╓д╓╓╓ф╓о, ╔╕╔╖╔ж╔╣╔╓╔х╓Р╓╢мВ╓к╓й╓К╓╚ webmaster@svbug.com ╓ч╓г╔А║╪╔К╓╞╓ю╓╣╓╓.

  • ╔у╔М╔Й╔ю╫ё ╔©╔С╔я users group ╓╛╥Кю╝╓╣╓Л╓© ╓х╓Ё╓М╓г╓╧. ╤╫лё╓Р╩Щ╓©╓Л╓©╓И╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓╥╓ф╓╞╓ю╓╣╓╓. ╩╡╡ц╓╧╓К╓к╓окэй╦╓к subscribe╓х╫Я╓╓╓©╔А╔╓╔К╓Рbsd-tug-request@bangheadhere.org аВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • бГ╔╙╔С╔©╔Й╔╙╫ё ╔х╔М╔С╔хцо╤Х: GTABUG ╔Ф║╪╔╤║╪╔╟╔К║╪╔в╓о╓╒╓И╓Ф╓К BSD ╔Ф║╪╔╤╓Р╢©╥ч╓╥╓ч╓╧. ╥НнЦ╓н╡Я╧Г╓о╫пюй╪т╓к╔╒╔╓╔г╔╒╓н╤╕м╜, ╣дою, ╬ПйС╓н╔а╔Ц╔С╔╧╓Рм©╓╗╓ч╓╧. ╔╓╔С╔╧╔х║╪╔КбГ╡Я╓Д╓╫╓нб╬╓н╔╓╔ы╔С╔х╓о BSD ╓н╓╓╓╓╔к╔Е║╪╔╧╓Р ╔Ё╔ъ╔Е╔к╔ф╔ё╓к╓Б╓©╓И╓╧╓н╓Р╫У╓╠╓ч╓╧. ╓Ё╓╬╓ц╓ф╩╡╡ц╓╞╓ю╓╣╓╓!

  • ╔╒╔Й╔╬╔й╫ё ╔д║╪╔╫╔С TFUG: ╔╒╔Й╔╬╔й╫ё╓н Tucson Free Unix Group ╓г╓╧.

  • ╔Ф╔©╫ё SLLUG-BUG ╓о Salt Lake Linux User Group (SLLUG) ╓х╦Рн╝╓╥╓ф╓╓╓К BSD Unix ╔Ф║╪╔╤╡Я╓г╓╧. BSD ╓х Linux ╓╛╓╚╓й╓Й╓ниТй╛╓г╤╕дл ╓╧╓К╓Х╓╕╓к╓й╓ц╓ф╟ймХ, SLLUG ╓х╤╕╓к╫╦╓ч╓ц╓ф╓╓╓ч╓╧. ╓О╓©╓╥╓©╓а╓оЁф╥Н╓нбХ╩╟©ЕмкфЭ╓к╫╦╓ч╓Й╓ч╓╧. ╬э╨ы╓к╢ь╓╥╓ф╓о╔╕╔╖╔ж╔з║╪╔╦╓Р╓╢мВ╓╞╓ю╓╣╓╓.

  • ╔ж╔Й╔ф╔ё╔ц╔╥╔Е╔Ё╔М╔С╔с╔╒╫ё ╔п╔С╔╞║╪╔п║╪ VanBUG (Vancouver BSD Users Group) ╓о FreeBSD, NetBSD, ╓╫╓╥╓ф OpenBSD ╓нг╝нУ╓й ╔э╔И╔С╔ф╔ё╔╒╓н╔╟╔К║╪╔в╓г╓╧. ╦╫╨ъ╓нлэи╦╓о╟у╪╠╓Р╧Б╓А ╫пмХ╓К╓ю╓╠╓н╠Г╫У╓РдС╤║╓╧╓К╓Ё╓х╓г╓╧.

  • ╔О╔╥╔С╔х╔Сфцйл╤Х (DC Metropolitan Area) FreeBSD User Group ╓╛╦╫╨ъ╥Кю╝╓╣╓Л╓д╓д╓╒╓Й╓ч╓╧. ╔А╔С╔п║╪╔Й╔╧╔х╓к╡ц╓О╓К╓к╓о Sytex Access Ltd. ╓н Richard Cramer ╓к ╔Ё╔С╔©╔╞╔х╓╥╓ф╓╞╓ю╓╣╓╓. 703-425-2515 ╓╚, ╓Б╓╥╓Х╓╠╓Л╓п rcramer@sytex.net ╓к╔А║╪╔К╓╥╓ф ╓╞╓ю╓╣╓╓. ╨г╫И╓н╡Я╧Г╓о 5 ╥Н╓кЁ╚╓╚╓Л╓Км╫дЙ╓г╓╧.

  • ╔╚╔С╔╤╔╧╫ё ╔╕╔ё╔а╔©: ©╥╓╥╓╓ FreeBSD ╓н╔Ф║╪╔╤║╪ ╔╟╔К║╪╔в╓╛╔╚╔С╔╤╔╧╫ё╔╕╔ё╔а╔©╓г╥Кю╝╓╣╓Л╓ч╓╥╓©. ЁХф╟╓Р╩о╓А╓©╓п╓╚╓Й╓г╓╧╓╛ д╬╓╟╓к╓Б╔╣╔╓╔х╓Рн╘╓а╬Е╓╡╓К╓д╓Б╓Й╓г╓╧. ╓ч╓ю╡Я╧Г╓Р╩Щ╓ц╓ф╓╓╓ч╓╩╓С. ╬э╨ы╓о╡Ф║╧╓н╔╣╔╓╔х http://wafug.dynip.com ╓Рк╛╓м╓К╓╚ ╔╟╔К║╪╔в╓нх╞╣╞©м (ben177@yahoo.com) ╓к╔А║╪╔К╓Р аВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔╙╔С╔©╔Й╔╙╫ё ╔╕╔ё╔С╔╤║╪ Windsor Unix Users Group (Windsor, Ontario, Canada) ╓о *BSD, Solaris, SCO ╓й╓и╓к╢ь╓╧╓К╔Ф║╪╔╤╔╟╔К║╪╔в╓г╓╧. FreeBSD ╓кфц╡╫╓╥╓©╔Ф║╪╔╤║╪╔╟╔К║╪╔в╓г╓о╓╒╓Й╓ч╓╩╓С╓╛, ╓╧╓г╓к FreeBSD ╓Р╩х╓ц╓ф╓╓╓К╔А╔С╔п║╪╓Б╓╓╓ч╓╧. ╔╟╔К║╪╔в╓о ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓Р╠©╠д╓╥╓ф╓╓╓ч╓╧ (wuug-list@unixpower.org). ╬э╨ы╓о http://www.wuug.org/. ╓Р╓╢мВ╓╞╓ю╓╣╓╓.

  • ╔╕╔ё╔╧╔Ё╔С╔╥╔С╫ё╓н FreeBSD-Milwaukee ╓о╩Ч║╧╡Я╧Г╓РЁ╚╓╓╓ф╓╓╓ф╔А║╪╔Й╔С╔╟╔Й╔╧╔х freebsd-mke-l@ns.sol.net ╓Р╠©╠д╓╥╓ф╓╓╓ч╓╧. ╩╡╡ц╓╧╓К╓к╓о freebsd-mke-l-request@ns.sol.net ╓к╔А║╪╔К╓╥╓ф╓╞╓ю╓╣╓╓.

ю╓Ё╕╓н╩д╓Й╓ниТй╛

  • фЭкэ, ╟Я╬К╦╘ бГк╪еЛцо╤Х BSD ╔Ф║╪╔╤╔╟╔К║╪╔в (DEBUG) ╓╛ цчгх╤Аны╓н *BSD ╔Ф║╪╔╤╓н╓©╓А╓к╥Кю╝╓╣╓Л╓ф╓╓╓ч╓╧.

  • ╔╓╔С╔и╔м╔╥╔╒ Jogja FreeBSD Users' Group ╓о╔╓╔С╔и╔м╔╥╔╒╓н╔╦╔Г╔╟╔╦╔Ц╔╚╔К╔©╩т╓РцФ©╢╓х╓╥╓ф╓╓╓ч╓╧. ╬э╨ы╓о 22961476@students.ukdw.ac.id ╓ч╓г╔А║╪╔К╓РаВ╓ц╓ф╓╞╓ю╓╣╓╓.

  • ╔╓╔╧╔И╔╗╔К Israeli BSD Users Group ╓о, ╧ЯцФ╓к *BSD ╓н╩хмя ╓РюКеа╓╥, а╢╓ф╓н BSD ╔Ф║╪╔╤║╪╓н╓©╓А╓н╬ПйС╔╩╔С╔©║╪╓н лРЁД╓Рц╢╓╙╓╕╓хеьно╓╥╓ф╓╓╓ч╓╧. ╦╫╨ъ╓о, ╡Ф║╧ FreeBSD ╔Ф║╪╔╤║╪╓к╓Х╓ц╓ф ╠©╠д╓╣╓Л╓ф╓╓╓ч╓╧╓╛, б╬╪О╓н BSD ╔Ф║╪╔╤║╪╓БбГ╢©╥ч╓г╓╧. bsd-il@osem.co.il ╓г ╔А╔╓╔Й╔С╔╟╔Й╔╧╔х╓Р╠©╠д╓╥╓ф╓╙╓Й, ╩╡╡ц╓╧╓К╓к╓о, кэй╦╓к "subscribe bsd-il"╓х╓ю╓╠╫Я╓╓╓©╔А╔╓╔К╓Рmajordomo@osem.co.il ╓ьаВ╓К╓ю╓╠╓г╓╧.

  • фЭкэ, ╢ью╬цойЩ ╢ью╬ *BSD ╔Ф║╪╔╤╔╟╔К║╪╔в (The Kansai *BSD User's Group), K*BUG (фЭкэ╦Л╓н╓ъ╓г╓╧) ╓о, 1999 г╞ 11 ╥Н 13 фЭ╓к╥Кю╝╓╣╓Л╓ч╓╥╓©. ╓Ё╓н╔Ф║╪╔╤╔╟╔К║╪╔в╓о, BSD ╓кмЁмХ╓╧╓К OS ╓н╔Ф║╪╔╤╓н╢ж╓г╦Рн╝╓Р©╪╓А╓К╓Ё╓х╓Рлэе╙╓х╓╥╓ф╓╓╓ч╓╧. ╪Г╓йЁХф╟╓о, ╔А╔С╔пцё╓г╠Ц╡Я╓РЁ╚╓╓╓©╓Й, ╓╣╓ч╓╤╓ч╓й╔х╔т╔ц╔╞╓к╓д╓╓╓ф╔╩╔ъ╔й║╪╓Р╧т╓й╓╕╓Ё╓х╓г╓╧. ╔А║╪╔К╓о kbug-admin@kbug.gr.jp ╓ч╓г╓╙╢Й╓╓╓╥╓ч╓╧.

  • ╔к╔Е║╪╔╦║╪╔И╔С╔и New Zealand FreeBSD User's group ╓о╔╕╔╖╔Й╔С╔х╔С╓к╓╒╓Й╓ч╓╧. ╡Я╧Г╓о╓ч╓юм╫дЙ╓╣╓Л╓ф╓╓╓ч╓╩╓С.

  • ╔ж╔И╔╦╔К, ╔╣╔С╔я╔╕╔М FUG_SP_BR (Brazilian FreeBSD User Group) ╓о╔ж╔И╔╦╔К╓н FreeBSD ╔Ф║╪╔╤╓╛╔щ╔К╔х╔╛╔К╦Л╓г╫Я╓╚╓Л╓© FreeBSD ╓н╔╣╔щ║╪╔х╓Д╣╜╩Ж╓Рц╣╓╧╓н╓Р╫У╓╠╓©╓╓╓х╩в╓ц╓ф╓╓╓К╔щ╔К╔х╔╛╔К╦Л╩ж╦Ч╓н╔Ф║╪╔╤╡Я╓г╓╧. ╓Ё╓н╡Я╓окХ╥Н, ╔ж╔И╔╦╔К, ╔╣╔С╔я╔╕╔М╓к╫╦╓ч╓Й╓ч╓╧. FUG_SP_BR ╔А║╪╔Й╔С╔╟╔Й╔╧╔х╓к╩╡╡ц╓╧╓К╓к╓о, ╡©╓Б╫Я╓╚╓Л╓ф╓╓╓й╓╓╔А║╪╔К╓Р fug_sp_br-subscribe@yahoogroups.com ╓каВ╓ц╓ф╓╞╓ю╓╣╓╓.

FreeBSD Ё╚х╞╔в╔М╔╦╔╖╔╞╔х

FreeBSD ╓нЁ╚х╞╓нн╝╓Л╓н╪Гн╝╓х╓й╓К╓Б╓н╓к╡ц╓╗╓ф, ©Тб©╓╞╓нЁ╚х╞╔╟╔К║╪╔в╓╛ FreeBSD ╔╒╔в╔Й╔╠║╪╔╥╔Г╔С╓нхо╟о╓Р©╥╓╥╓╓й╛лН╓ь╓хЁхбГ╓╧╓ы╓╞, ╨гюХц╪╣╩╫я╓к╪Х╓Йах╓С╓г╓╓╓ч╓╧.

FreeBSD ╔╩╔╜╔Е╔Й╔ф╔ё╔╛╔╓╔и

FreeBSD ╔Ф║╪╔╤╓ь╟й╡╪╓н╔╩╔╜╔Е╔Й╔ф╔ё╢ь╥╦╓н╔Й╔╫║╪╔╧╓╛дС╤║╓╣╓Л╓ф╓╓╓ч╓╧: ╔╩╔╜╔Е╔Й╔ф╔ё╔╙╔у╔ё╔╣║╪╓н PGP Key, ╢╚╧П (advisories), ╔я╔ц╔а, ╔А║╪╔Й╔С╔╟╔Й╔╧╔х.

╬╕мя╔Ё╔С╔╣╔К╔ф╔ё╔С╔╟╔╣║╪╔с╔╧

FreeBSD ╓Р╩о╓А╓©╓п╓╚╓Й╓нйЩ╓г╓Б, ╣ПбГ╓й╔в╔М╔╦╔╖╔╞╔х╓Р╢╟╥К╓╥╓й╓╠╓Л╓п ╓й╓И╓й╓╓╬Л╧Г╓г╓Б, ╔Ё╔С╔╣╔К╔©╔С╔х╓╛лР╓к╓©╓д╓г╓╥╓Г╓╕.

╟Лхле╙╓й Unix ╬ПйС

X Window System

  • XFree86 ╔в╔М╔╦╔╖╔╞╔х ╓о FreeBSD ╓Р╢ч╓Юмм║╧╓й Intel ╔ы║╪╔╧╓н Unix ╔╥╔╧╔ф╔Ю╓н╔Ф║╪╔╤╓км╔╓Л╓© X Window System ╓РдС╤║╓╥╓ф ╓╓╓ч╓╧.
  • WINE ╔в╔М╔╦╔╖╔╞╔х╓о FreeBSD, NetBSD, Linux ╓н╓Х╓╕╓й Intel ╔ы║╪╔╧╓н Unix ╔╥╔╧╔ф╔Ю╓г MS-Windows ╔╫╔у╔х╔╕╔╖╔╒╓Р ╪б╧т╓╧╓К╣║г╫╓РдС╤║╓╧╓К╓©╓А╓к╨Н╤х╓╥╓ф╓╓╓ч╓╧.

╔о║╪╔и╔╕╔╖╔╒

  • The comp.answers pc-hardware-faq ╓о ╪╚й╛╓г╔ч╔╥╔С╓Рах╓ън╘╓ф╓К©м╓н╓©╓А╓нбН╠ш╓╥╓©╔Й╔у╔║╔Л╔С╔╧╓г╓╧.
  • FreeBSD ╓н╔ы║╪╔╧ distribution ╓г╓о╓ч╓юдС╤║╓╣╓Л╓ф╓╓╓й╓╓, PCCARD (PCMCIA ╓х╓Б╦ф╓п╓Л╓ф╓╓╓ч╓╧) ╓н╔╣╔щ║╪╔х╓Рц╣╓╥╓ф╓╓╓К ╔И╔ц╔в╔х╔ц╔в╔Ф║╪╔╤╓о, ╨г©╥╓н╓╧╓п╓И╓╥╓╓╪б╦Ёе╙╓й╔И╔ц╔в╔х╔ц╔в ╔╣╔щ║╪╔х╓н╓©╓А╓н PAO distribution ╔з║╪╔╦╓Р╦╚╓ф╓ъ╓К╓ы╓╜╓г╓╥╓Г╓╕.
  • Intel Secrets -- What Intel Doesn't Want You To Know (Intel ╓нхКл╘ -- Intel ╓╛╓╒╓й╓©╓кцн╓ц╓фмъ╓╥╓╞╓й╓╓╓Ё╓х) - Intel ╓н╔а╔ц╔в╓к╢ь╓╧╓К б©╓╞╓н╬ПйС.
  • Aad Offerman's Chip List - PC ╔╞╔М║╪╔С╓г╩х╓О╓Л╓ф╓╓╓К╔а╔ц╔в╓к ╓д╓╓╓ф╓н╔Й╔у╔║╔Л╔С╔╧╩Яна.
  • ASUS ╓о FreeBSD ╓╛ ╓╕╓ч╓╞ф╟╨Н╓╧╓К╔ч╔╤║╪╔э║╪╔и╓Рю╫б╓╓╥╓ф╓╓╓ч╓╧.

╢ьо╒╓╧╓К╔╙╔з╔Л║╪╔ф╔ё╔С╔╟╔╥╔╧╔ф╔Ю╓н╔в╔М╔╦╔╖╔╞╔х

  • NetBSD ╓о╔у╔Й║╪╓н 4.4BSD-Lite ╔ы║╪╔╧╓н╔╙╔з╔Л║╪╔ф╔ё╔С╔╟ ╔╥╔╧╔ф╔Ю╓г, ╓╓╓╞╓д╓╚╓н╟ш╓й╓К╔╒║╪╔╜╔ф╔╞╔а╔Ц╓н╔ч╔╥╔С╓гф╟╨Н ╓╥╓ч╓╧.
  • OpenBSD ╓о 4.4BSD ╓╚╓Игию╦╓╥╓©╔╙╔з╔Л║╪╔ф╔ё╔С╔╟╔╥╔╧╔ф╔Ю╓г╓╧.
  • Linux ╓о ╔у╔Й║╪╓н Unix-like ╔╥╔╧╔ф╔Ю╓г╓╧.
  • Lites ╓о Mach ╔ы║╪╔╧╓н╔╥╔╧╔ф╔Ю╓к ╔у╔Й║╪ Unix ╓н╣║г╫╓РдС╤║╓╧╓К 4.4 BSD Lite ╔ы║╪╔╧╓н╔╣║╪╔п║╪╓х╔╗╔ъ╔Е╔Л║╪╔╥╔Г╔С╔И╔╓╔ж╔И╔Й ╓г╓╧.
  • xMach╓о Ёхд╔╓╣╓Л╓©╣║г╫╓Р╩Щ╓а, ╬╝╣╛ло║╕╦Зн╗е╙╓г╓╒╓К╓Х╓╕юъ╥в╓╣╓Л╓© Lites ╓х Mach4 ╓╚╓Игию╦╓╥╓©╓Б╓н╓г╓╧.
  • GNU HURD ╔в╔М╔╦╔╖╔╞╔х╓о╔у╔Й║╪╓н Unix-like ╔╙╔з╔Л║╪╔ф╔ё╔С╔╟╔╥╔╧╔ф╔Ю╓РЁ╚х╞╓╥╓Х╓╕╓х╓╧╓К ╪Х╓Йах╓ъ╓г╓╧.
&footer; diff --git a/ja/y2kbug.sgml b/ja/y2kbug.sgml index 992604bfe6..aa45713a37 100644 --- a/ja/y2kbug.sgml +++ b/ja/y2kbug.sgml @@ -1,264 +1,264 @@ + %includes; ]> &header;

2000 г╞лДбЙ (йлл╬, ║жюИг╞╣╙╓н╔п╔╟║в) ╓кбп╓╧╓К╥п╠дб╕╓нмЩ╡Р╓╛©╪╓ч╓К╓к╓д╓Л, ╓Х╓Йб©╓╞╓н╢К╤х╓╚╓И, ╔о║╪╔и╔╕╔╖╔╒╓Д╔╫╔у╔х╔╕╔╖╔╒╓н╔ы╔С╔ю╓кбп╓╥╓ф, хЮ╓И╓ню╫ий╓о 2000 г╞╓к╓╙╓Ё╓Ке╬й╓╓к╓и╓н╓Х╓╕╓кбп╫Х╓╧╓К╓н╓╚, ╦Ье╙╓й╫Й©╝и╫лю╓Рмв╣А╓╧╓Кю╪╓╛╫п╓ф╓╜╓ф╓╓╓ч╓╧.

Unix ╓Д FreeBSD ╓н╓Х╓╕╓й Unix ╔И╔╓╔╞╓й OS ╓Р╩хмя╓╥╓ф╓╓╓Кцдбн╓о, ╢Ш╓к╓╫╓нлДбЙ╓н╟ЛйБюХ╓РйБ╓С╓г╓╓╓ч╓╧. FreeBSD ╓о 2000 г╞╓╛╡А╓╝╓ф╓ю╓╓╓ж╓©╓ц╓©╦Е╓г╓Б, ю╣╓╥╓╞╩Ч╢ж╓Р╟щ╩Щ╓╧╓К╓Ё╓х╓╛╓г╓╜╓К╓г╓╥╓Г╓╕.

м╫хВцн╪╠

(╓Ё╓нюА╓о Linux Y2K compliance page ╓нй╦╬о╓к╢П╓е╓╓╓©╓Б╓н╓г╓╧)

╓╧╓ы╓ф╓н Unix ╓х Unix ╔И╔╓╔╞╓й╔╙╔з╔Л║╪╔ф╔ё╔С╔╟╔╥╔╧╔ф╔Ю╓хф╠╓╦╓Х╓╕╓к, FreeBSD ╓к╓╙╓╠╓К╩Ч╢ж╓хфЭиу╓о, фБиТе╙╓к╓о, 1970 г╞ 1 ╥Н 1 фЭ (Unix ╓н║ж╣╙╦╣г╞║в) ╓╚╓И╓ниц©Т╓ги╫╦╫╓╣╓Л╓ф╓╓╓ч╓╧. ╦╫╨ъ╓н╓х╓Ё╓М, ╓Ё╓ниц©Т╓о 32 bit д╧╓ню╟©Т╓х╓╥╓фЁйг╪╓╣╓Л╓ф╓╙╓Й, 2038 г╞╓х╓а╓Г╓ц╓х╓ч╓г╧т╓ц╓©╓х╓Ё╓М╓г╩х╓╓╡л╓©╓╣╓Л╓К╥в╩╩╓к╓й╓Й╓ч╓╧. ╓╙╓╫╓И╓╞, ╓╫╓н╨╒╓к╓о, ╓Ё╓н╠╖цХ╓н╫╙╓О╓К╓х╓╜╓ч╓глР╓кн╘╓д, 64 bit д╧╓н (╓╒╓К╓╓╓о╓╫╓Л╟й╬Е╓нд╧╓╣╓н) ╔╚╔╕╔С╔©╓Р╩хмя╓╥╓ф╓╓╓К╓г╓╥╓Г╓╕.

2000 г╞лДбЙ╓кбп╠Ч╨я╓н OS ╓Р╩хмя╓╥╓©╓х╓╥╓ф╓Б, 2000 г╞лДбЙ╓кбп╠Ч ╓╥╓ф╓╓╓й╓╓╔╒╔в╔Й╔╠║╪╔╥╔Г╔С╓╛ю╣╓╥╓╞ф╟╨Н╓╧╓К╓О╓╠╓г╓о╓╒╓Й╓ч╓╩╓С. цМ╟у╓╥╓ф╓╞╓ю╓╣╓╓.

╓ч╓©, OS ╓╛╦╫╨ъ╓нфЭ╩Ч╓ДфЭиу╓Р╔Ё╔С╔т╔Е║╪╔©╓н CMOS ╔╞╔М╔ц╔╞╓╚╓Ифи╓ъ╧Ч╓С╓г╓╓╓К╓Ё╓х╓к╓БцМ╟у╓╥╓ф╓╞╓ю╓╣╓╓. ╓╫╓Л╓И╓н╔г╔п╔╓╔╧╓╧╓ы╓ф╓╛ 2000 г╞╓Рю╣╓╥╓╞╟╥╓╗╓К╓О╓╠╓г╓о╓╒╓Й╓ч╓╩╓С. ╔о║╪╔и╔╕╔╖╔╒╔╞╔М╔ц╔╞╓╛ 1999 г╞╓╚╓И 2000 г╞╓ью╣╓╥╓╞╟э╧т╓г╓╜╓К╓Ё╓х, ╓╫╓╥╓ф 2000 г╞╓Рю╣╓╥╓╞╓╕╓К╓╕г╞╓х╓╥╓ф╟╥╓╗╓К╓Ё╓х╓Р, Ёф╔в╔И╔ц╔х╔у╔╘║╪╔Ю╓г╦дйл╓кЁн╓╚╓А╓©йЩ╓╛ни╓╓╓г╓╥╓Г╓╕.

╓╒╓й╓©╓к╓г╓╜╓К╓Ё╓х

FreeBSD ╓о╪║╓ню╓╣╙╓кфЧ╓ц╓ф╓Б, ю╣╓╥╓╞╩Ч╢ж╓Р╟щ╩Щ╓╥бЁ╓╠╓К╓Ё╓х╓╛╓г╓╜╓К╓г╓╥╓Г╓╕. ╓╥╓╚╓╥, ╔╣║╪╔и╔я║╪╔ф╔ёю╫╓н╔╒╔в╔Й╔╠║╪╔╥╔Г╔С╓о╓╫╓╕╓г╓й╓╓╓╚╓Б╓╥╓Л╓ч╓╩╓С. 2000 г╞лДбЙ╓кбп╓╥╓ф╓о, ╧╤╥Б╓о╨гбГ╓нки╦Ф╓х╦ю╓╗╓ч╓╧. ╓╙╓й╓╦╓ъ╓нмХ╓К╓ы╓╜ю╓Ё╕╓н╫╙╓О╓Й╓к╓д╓╓╓ф╓нй╙╦Л╓к╓©╓ю╪╙╓Р╓╧╓ч╓╥╓ф╓╓╓К╓ю╓╠╓г╓о, юИг╞╣╙╓н╔п╔╟╓Р╡Р╥Х╓╧╓К╓Ё╓х╓о╓г╓╜╓ч╓╩╓С. ╓©╓ю╓╫╓н╩Ч╓╛мХ╓К╓н╓Рбт╓ц╓ф╓╓╓ф╓Бф╠╓╦╓Ё╓х╓г╓╧. FreeBSD ╔в╔М╔╦╔╖╔╞╔х╓о, ╓ъ╓й╓╣╓С╓нах©╔╓╛, мХ╓©╓КюИг╞╣╙╓к╦Ч╓╠ ╓╥╓ц╓╚╓Й╓╥╓©╔╥╔╧╔ф╔Ю╢имЩ╓н╦╤б╖╓Ре╛мя╓╧╓К╓Ё╓х╓Р╓╙╢╚╓А╓╥╓ч╓╧.

FreeBSD 2000 г╞лДбЙ╫Й©╝и╫лю

║ж╧╜хо╟о╓к╓О╓©╓Кй╛юо╓х╩Н╦Ё╓н╥К╡л, ╡Ф║╧╓о FreeBSD ╓о 100% 2000 г╞╓ке╛╧Г╓╥╓ф╓╓╓К╓х©╝╓╦╓К╓к╩Й╓Й╓ч╓╥╓©. ит╧╛╓к╓Б╡©╓╚╓╛╦╚мН╓х╓╣╓Л╓ф╓╓╓©╬Л╧Г╓г╓Б, ╡Ф║╧╓олДбЙ╓Р╡дг╫╓й╦б╓Й╓╧╓ъ╓Д╓╚╓к╡Р╥Х╓г╓╜╓К╓Х╓╕╓к╔ы╔╧╔х╓Р©т╓╞╓╥╓ч╓╧.║в

David Greenman
Principal Architect, The FreeBSD project

╫╓ю╣╨я╓нлДбЙ

FreeBSD ╬Е╓г╓о, ╟й╡╪╓н 2000 г╞лДбЙ╓о╢Ш╓кх╞╦╚╓╣╓Л, ╫╓ю╣╓╣╓Л╓ф╓╓╓ч╓╧.

misc/1380
yacc, ftpd, make ╓й╓и╓нйё©Т╓н╔в╔М╔╟╔И╔Ю╓╛, г╞╓ни╫╪╗╓х╓╥╓ф 19%d (лУцМ: C ╓н╫Я╪╟╩ьдЙй╦╩ЗнС╓Р╩х╓ц╓ф, 1900 г╞бЕ╓г╓╒╓К╓х╥Х╓Абг╓а╓╥╓ф╓╓╓К) ╓Рйж╓╧╓Х╓╕╓к╔о║╪╔и╔Ё║╪╔и╓╣╓Л╓ф╓╓╓ч╓╥╓©. [╫╓ю╣╨я: yacc v1.2 1999/01/18; ftpd v1.7 1996/08/05; make v1.4 1996/10/06; FreeBSD-2.2 ╟й╧ъ╓г╫╓ю╣╨я]
conf/1382
/etc/rc.local фБиТ╓н, ``message of the day'' ╓н╓©╓А╓к╔ш╔╧╔х / ╔╚║╪╔м╔К ID ╓Р╔с╔К╔и╓╧╓К sed ╔╧╔╞╔Й╔в╔х╓о, г╞╓╛ 1999 ╟й╧ъ╓к╓й╓И╓й╓╓╓Ё╓х╓к╟мб╦╓╥╓ф╓╓╓ч╓╥╓©. [╫╓ю╣╨я v1.21 1996/10/24; FreeBSD-2.2 ╟й╧ъ╓г╫╓ю╣╨я]
misc/3465
/etc/namedb/make-localhost ╔Ё╔ч╔С╔и╓о, DNS ╓н╔╥╔Й╔╒╔Кхж╧Ф╓Р YYMMDD ╓н╥а╪╟╓гю╦ю╝╓╥╓ф╓╓╓ч╓╧. 2000 г╞╓к╓о, ╓Ё╓нхж╧Ф╓о 1YYMMDD ╓н╥а╪╟╓гю╦ю╝╓╣╓Л╓К╓г╓╥╓Г╓╕. [╫╓ю╣╨я v1.2 1997/08/11; FreeBSD-2.2.5 ╟й╧ъ╓г╫╓ю╣╨я]
gnu/4930 and gnu/8321
groff ╓н tmac ╔ч╔╞╔М╓о, ╓╒╓К╪О╓нфЭиу╓Р╪╚ф╟е╙╓к 1900 г╞бЕ╓ю╓х╡Р╪А╓╧╓К╓Х╓╕╓к╔о║╪╔и╔Ё║╪╔и╓╣╓Л╓ф╓╓╓ч╓╥╓©. [╫╓ю╣╨я: tmac.e v1.3 1998/12/06; doc-common v1.10 1999/01/19; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
bin/9323
touch ╓о, ╣Л╥а╪╟╓гфЭиу╓Рм©╓╗╓©╬Л╧Г, 2 ╥Е╓нг╞╩ьдЙ╓Рю╣╓╥╓╞╟╥ ╓╗╓ч╓╩╓С. 00 ╓╚╓И 68 ╓ч╓г╓нг╞╩ьдЙ╓о, 2000 ╓╚╓И 2068 ╓г╓о╓й╓╞ 1900 ╓╚╓И 1968 ╓х╡Р╪А╓╣╓Л╓ч╓╧. [╫╓ю╣╨я v1.7 1999/01/05; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
xntpd/parse/util/dcfd.c
+ href="http://cvsweb.FreeBSD.org/src/usr.sbin/xntpd/parse/util/dcfd.c">xntpd/parse/util/dcfd.c
UNIX ╓к╓╙╓╠╓К╣╙╦╣╓н╟╥╓╓╓╛╢ж╟Ц╓ц╓ф╓╓╓К╓©╓А╓к, ╓╕╓К╓╕г╞╓нфЭ©Т ╓н╥в╩╩, DCF77 ╥а╪╟╓н╩Ч╢ж╓нйя╢╧╓╛ю╣╓╥╓╞╧т╓О╓Л╓ч╓╩╓С. ╓Ё╓н╔╗╔И║╪╓о, 2000 г╞╓ю╓╠╓г╓о╓й╓╞, ╓и╓нг╞╓г╓БлДбЙ╓х╓й╓К╓Б╓н╓г╓╥╓©. [╫╓ю╣╨я v1.6 1999/01/12; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
tar/getdate.y
+ href="http://cvsweb.FreeBSD.org/src/gnu/usr.bin/tar/getdate.y">tar/getdate.y
Conver() ╢ь©Т╓╛ 70-99 ╓н 2 ╥Е╓нг╞╓Р╟╥╓╕╓Х╓╕╓к╔о║╪╔и╔Ё║╪╔и╓╣ ╓Л╓ф╓╓╓ч╓╥╓©. ╦╫╨ъ 2 ╥Е╓нг╞©Т╓Р 1970-2069 ╓ч╓г╟╥╓╗╓К╓Х╓╕╓кйя╧╧╓╣╓Л╓ч╓╥ ╓©. ╓©╓ю, ю╓╣╙╓Р╠ш╓╗╓Кг╞╓╛╓╕╓К╓╕г╞╓г╓й╓╓╬Л╧Г╓Р╔╣╔щ║╪╔х╓╥╓ф╓╓╓ч╓╩╓С. [╫╓ю╣╨я v1.4 1999/01/12; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
fetch/http.c
+ href="http://cvsweb.FreeBSD.org/src/usr.bin/fetch/http.c">fetch/http.c
HTTP ╔в╔М╔х╔Ё╔К╓ог╞еы╓Р 2 ╥Е╓ги╫╓╧╣Л╥а╪╟╓нфЭиу╔у╔╘║╪╔ч╔ц╔х╓Р ╢ч╓С╓г╓╓╓ч╓╧. ╟йа╟╓н╔п║╪╔╦╔Г╔С╓н fetch ╓о, ╓╫╓н╓Х╓╕╓й 2 ╥Е╓нг╞еы╓Р, ╓╧ ╓ы╓ф 1900 г╞бЕ╓х╡Р╪А╓╥╓ф╓╓╓ч╓╥╓©. ╓Ё╓н╔п║╪╔╦╔Г╔С╟й╧ъ╓о RFC 2068 ╓н╣╜╫р╓к╫╬╓╓, 2 ╥Е╓нг╞еы╓о, 50 г╞╟й╬ЕюХ╓н╬Л╧Г╓Р╫Э╓╜, ╓╫╓ню╓╣╙╓нг╞еы╓х ╓╥╓ф╟╥╓О╓Л╓К╓Х╓╕╓к╓й╓Й╓ч╓╥╓©. ╣Л╥а╪╟╓нфЭиу╔у╔╘║╪╔ч╔ц╔х╓Р╩хмя╓╧╓К HTTP ╔╣║╪╔п╓о, ╓ю╓С╓ю╓С╩х╓О╓Л╓й╓╞╓й╓ц╓ф╓╓╓К╓©╓А, ╓Ё╓нит╤Я╧Г╓╛©╪╧О╓йлДбЙ╓Р╟З ╓╜╣╞╓Ё╓╧╓х╓о╓й╓╓╓г╓╥╓Г╓╕. [╫╓ю╣╨я v1.24 1999/01/15; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
misc/9500
CVSROOT ╔г╔ё╔Л╔╞╔х╔Й╓к╓╒╓К `edithook' ╔╧╔╞╔Й╔в╔х╓ою╦╓н tm_year ╓Р ╩хмя╓╥╓ф╓╓╓К╓н╓г, 2000 г╞ 1 ╥Н 1 фЭ ╓Р 01/01/100 ╓хи╫╪╗╓╧╓К╓г╓╥╓Г╓╕. [╫╓ю╣╨я v1.2 1999/01/17; FreeBSD ╓н╔Й╔Й║╪╔╧╓к╓о╢ь╥╦╓й╓╥]
bin/9501
╓╓╓╞╓д╓╚╓н cvs гшиш╔у╔║╔╓╔К╓о 2000 г╞╓ке╛╧Г╓╥╓ф╓╓╓ч╓╩╓С. log.pl ╓х sccs2rcs.csh ╔╧╔╞╔Й╔в╔х╓ог╞еы╓к `19' ╓Р╓д╓╠╡ц╓╗, ╓╫╓н╥К╡л 2000 г╞╓Р 19100 г╞╓хи╫╪╗╓╥╓ч╓╧. log_accum.pl ╔╧╔╞╔Й╔в╔х╓о, ╓╒╓К╓х╓Ё╓М╓г╓о 2 ╥Е╓нг╞еы╓Р╩х╓╓, йл╓н╓х╓Ё╓М╓г╓о tm_year ╓╛ 1900 г╞╓╚╓И╓нг╞©Т╓Ри╫╓╧╓Б╓н╓г╓о╓й╓╞, ╓Ю╓╥╓М╨ёю╓╣╙╓н г╞еы╓Ри╫╓╧╓Б╓н╓г╓╒╓К╓х╡╬дЙ╓╥╓ф╓╓╓ч╓╧. [╫╓ю╣╨я: log.pl v1.2 1999/01/15; sccs2rcs.csh v1.3 1999/01/15; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
bin/9502
groff ╓н╔й╔С╔п║╪╔Л╔╦╔╧╔© `yr' ╓о, (struct tm).tm_year ╓╚╓ИЁД╓ЙеЖ╓ф ╓И╓Л╓ф╓╓╓К╓н╓г, ╨ёю╓╣╙╓нг╞еы╓Ри╫╓╥╓ф╓╓╓К╓н╓г╓о╓й╓╞, 1900г╞╓╚╓И╓нг╞©Т╓Р и╫╪╗╓╥╓ч╓╧ (troff/inpuut.cc фБ╓ндЙ╣а╓Р╦╚╓ф╓╞╓ю╓╣╓╓). [╫╓ю╣╨я mod 100 ╓к╔╩╔ц╔х╓╣╓Л╓ф╓╓╓ч╓╧, troff/input.cc V1.2 1999/06/03; FreeBSD-3.3 ╓г╫╓ю╣╨я]
bin/9503
PicoBSD ╓н simple_httpd ╓ою╦╓н tm_year ╓Р╩хмя╓╥╓ф╓╓╓К╓н╓г, 2000 г╞ 1 ╥Н 1 фЭ╓Р 01/01/100 ╓хи╫╪╗╓╧╓К╓г╓╥╓Г╓╕. [╫╓ю╣╨я v1.2 1999/01/16; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
bin/9505
adduser ╓ою╦╓н tm_year ╓Р╩хмя╓╥╓ф╓╓╓К╓н╓г, 2000 г╞ 1 ╥Н 1 фЭ╓Р 01/01/100 ╓хи╫╪╗╓╧╓К╓г╓╥╓Г╓╕. [╫╓ю╣╨я v1.42 1999/01/15; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
bin/9506
cron ╓ою╦╓н tm_year ╓Р╩хмя╓╥╓ф╓╓╓К╓н╓г, 2000 г╞╓Р 100 ╓хи╫╪╗╓╧╓К╓г╓╥╓Г╓╕. [╫╓ю╣╨я v1.7 1999/01/16; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
bin/9507
tcpslice(8) ╓ою╦╓н tm_year ╓Р╩хмя╓╥╓ф╓╓╓К╓н╓г, 2000 г╞ 1 ╥Н 1 фЭ╓Р 100y01m01d... ╓хи╫╪╗╓╧╓К╓г╓╥╓Г╓╕. ╦ъ╢╧ю╜╓н╓©╓А╓к, 2000г╞╓ч╓г╓о 2 ╥Е╓н г╞еы╓Р╩хмя╓╥╓ч╓╧. [╫╓ю╣╨я v1.8 1999/01/20; FreeBSD-3.1 ╟й╧ъ╓г╫╓ю╣╨я]
bin/14472
date ╔Ё╔ч╔С╔и╓оюИг╞/и╢г╞╓н╥Е╓Р╩ьдЙ╓г╓╜╓ч╓╩╓С. [╫╓ю╣╨я v1.31 1999/11/10]
misc/14511
chpass ╓ом╜╦З╢Э╦б╓нг╞╓к 00 ╓Р╩ьдЙ╓╥╓©╬Л╧Г╓н╫ХмЩ╓клДбЙ╓╛╓╒╓Й╓ч╓╧.
bin/15852, gnu/16045, bin/16207
\*(DT [\*(td] й╦╩ЗнС╓РдЙ╣а╓╥╓ф╓╒╓К Groff ╓к╓о 2000 г╞лДбЙ╓╛╓╒╓Й╓ч╓╧. [v1.15 ╓н import ╓к╓Х╓Й╫╓ю╣╨я 2000/01/12]
bin/15872
at(1) ╓к╓о, tm_year ╓╛ 100 ╓н╬Л╧Г, м╜╦З╓й╩Ч╢ж╩ьдЙ╓╛ `итю╣╓й╩Ч╧О' ╓х╓╓╓╕йС╧П╓Рйж╓╧╓х╓╓╓╕лДбЙ╓╛╓╒╓Й╓ч╓╧
misc/16238
KerberosIV ╓н╔╓╔С╔╧╔х║╪╔К╓╛╓╜╓а╓С╓хф╟╨Н╓╥╓ч╓╩╓С. ╓Ё╓Л╓о, ╔а╔╠╔ц╔хг╖╬з╢Э╦б╓╛ 12/31/99 ╓х╓╓╓╕╓Х╓╕╓к, ╔о║╪╔и╔Ё║╪╔г╔ё╔С╔╟╓╣╓Л╓©иТй╛╓╛╔╫║╪╔╧╔в╔М╔╟╔И╔ЮцФ╓к╓╒╓К╓©╓А╓г╓╧. [╫╓ю╣╨я v1.24 1999/09/19]

╧╧╓й╓К╬ПйС

FreeBSD ╓н 2000 г╞бп╠Ч╓к╓д╓╓╓ф╧╧╓й╓К╪алД╓Р╓╙╩Щ╓а╓г╓╒╓К╓╚, FreeBSD ╡╪╓гаЖ╓К 2000 г╞бп╠Ч╨я╓г╓й╓╓╔╒╔в╔Й╔╠║╪╔╥╔Г╔С╓Рх╞╦╚╓╥╓©╬Л╧Г, freebsd-bugs@FreeBSD.ORG ╓ч╓го╒мМ╓╥╓ф╓╞╓ю╓╣╓╓.

&footer; diff --git a/ru/news/1996/index.sgml b/ru/news/1996/index.sgml index 2b49744384..0e0364fa2e 100644 --- a/ru/news/1996/index.sgml +++ b/ru/news/1996/index.sgml @@ -1,53 +1,53 @@ %includes; News Home'> %newsincludes; ]> &header;

Декабрь 1996

  • 24 декабря 1996 Выпущен релиз FreeBSD 2.2-BETA. Подробности читайте в Информации о релизе.

  • 13 декабря 1996 FreeBSD 2.2-RELEASE не будет поддерживать установку на машинах с менее чем 5МБ ОЗУ и с дискет объёмом 1.2МБ. Подробная информация находится в оригинальном объявлении.

Ноябрь 1996

  • 15 ноября 1996 Вышла в свет FreeBSD 2.1.6-RELEASE. Подробности читайте в Информации о релизе.

  • 4 ноября 1996 От находящегося в разработке дерева CVS FreeBSD снова + href="http://cvsweb.FreeBSD.org/">CVS FreeBSD снова отделилась ветка. Подробная информация находится здесь.

&newshome; &footer; diff --git a/ru/news/newsflash.sgml b/ru/news/newsflash.sgml index 16dcb042f8..e5efb872e3 100644 --- a/ru/news/newsflash.sgml +++ b/ru/news/newsflash.sgml @@ -1,1029 +1,1029 @@ %includes; %newsincludes; ]> &header;

FreeBSD является быстро развивающейся операционной системой. Быть в курсе всех последних разработок бывает просто необходимо! Чтобы сделать это, периодически обращайтесь к этой страничке. Может быть, вы также захотите подписаться на список рассылки freebsd-announce.

FreeBSD Real-Quick (TM) Newsletter (RQN) - это вестник, выходящий раз (а то и два) в месяц, в котором отражены последние разработки во FreeBSD. Подпишитесь на список рассылки freebsd-announce, чтобы получать этот вестник по электронной почте.

Чтобы узнать самые последние новости о проекте FreeBSD Java, посетите, пожалуйста, страничку Новостей FreeBSD/Java

Подробное описание прошлых, настоящих и будущих релизов находится на странице Информации о релизах.

Ноябрь 2000

  • 13 ноября 2000 Ещё новый коммиттер: OKAZAKI Tetsurou (порты)

  • 13 ноября 2000 Ещё один новый коммиттер: Kazuhiko Kiriyama (порты)

  • 13 ноября 2000 Новый коммиттер: Dmitry Sivachenko (В основном порты)

  • 12 ноября 2000 Ещё один новый коммиттер: Issei Suzuki (Порты)

  • 6 ноября 2000 Ещё один новый коммиттер: Jing-Tang Keith Jang (порты, в основном из категории chinese)

  • 2 ноября 2000 Другой новый коммиттер: Benno Rice (Перенос на архитектуру PowerPC и загрузчик /boot/loader с поддержкой OpenFirmware)

Октябрь 2000

  • 26 октября 2000 Ещё один новый коммиттер: Doug Barton (mergemaster и другие неприятности, в которые я смогу попасть)

  • 26 октября 2000 Новый коммиттер: Garance A Drosehn (lpr и иже с ним)

  • 18 октября 2000 Состоялись выборы новой основной группы FreeBSD (Core Team)! Читайте официальный пресс-релиз для получения более полной информации.

  • 16 октября 2000 Новый коммиттер: Джонатан Чен (Jonathan Chen) (newcard cardbus)

  • 3 октября 2000 Опубликовано окончательное расписание конференции BSDCon. BSDCon - это главная годовая техническая конференция для пользователей BSD, которая состоится 14-20 октября в Монтерее, Калифорния.

  • 2 октября 2000 Doug Rabson сделал серию коммиттов в -current с ранней поддержкой архитектуры IA64. Подписывайтесь на список рассылки freebsd-ia64 для дополнительной информации

  • 1 октября 2000 Новый коммиттер: Trevor Johnson (различные порты, в основном audio)

  • 1 октября 2000 Новый коммиттер: James Housley (порты, особенно RTEMS. Некоторый интерес в IPv6)

  • 1 октября 2000 Новый коммиттер: Mário Sérgio Fujikawa Ferreira

Сентябрь 2000

Август 2000

  • 22 августа 2000 Новый коммиттер: Bruce A. Mah (документация, pkg_version, различные порты)

  • 15 августа 2000 Новый коммиттер: Rajesh Vaidheeswarran (ports/devel/cons)

  • 5 августа 2000 Новый коммиттер: Atsushi Onoe (драйвер awi)

Июль 2000

Июнь 2000

  • 30 июня 2000 Сайт http://freshports.org/ был обновлён до версии FreshPorts 1.1. Этот сайт содержит в подробную информацию о том, какие порты были созданы/обновлены/удалены за последнее время. В этом обновлении, произошедшем впервые с того момента, как в начале мая появился FreshPorts, доработаны домашние страницы, что, вместе с возможностью просмотра истории коммиттов означает ускорение и упрощение поиска информации о ваших портах.

  • 29 июня 2000 На сервере Tucows добавился раздел BSD.

  • 26 июня 2000 Новый коммиттер: Shunsuke Akiyama (Драйвер оптического диска)

  • 24 июня 2000 Выпущена FreeBSD 3.4. Подробности находятся на странице Информации о релизах. Обязательно посмотрите также исправления и дополнения к релизу после установки, чтобы знать о всех проблемах, которые возникают с 3.5.

  • 20 июня 2000

    Новый коммиттер: MIHIRA Sanpei Yoshiro (PC-Card)

    Новый коммиттер: Coleman Kane (3dfx voodoo для glide/Mesa)

  • 19 июня 2000 Новый коммиттер: CHOI Junho (Порты)

  • 8 июня 2000 Джордан Хаббард (Jordan Hubbard) и Уорнер Лош (Warner Losh) проведут в Японии начало июня 2000 года. Они будут участвовать в: BSD BOF на выставке Networld+Interop 2000 Tokyo (8-го), семинаре JUS в Tokyo (9-го), собрании NBUG в Нагойе (10-го) и семинаре K*BUG в Осаке (10-го). Пожалуйста, посетите сайт http://www.jp.FreeBSD.org/.

    Появилась новая статья, описывающая использование PPP, natd и ipfw для реализации межсетевого экрана через коммутируемое соединение по протоколу PPP.

    Новый коммиттер: Alexander Langer (Порты, документация)

  • 6 июня 2000 Был добавлен первый Конспект FreeBSD, в котором отражены события в списке рассылки -stable за последнюю неделю.

Май 2000

  • 19 мая 2000 Новый коммиттер: Chuck Paterson (SMP)

  • 18 мая 2000 Вышел в свет книжный вариант Руководства FreeBSD. Если вы хотите заказать себе копию, добро пожаловать на сайт FreeBSDMall или веб-сервер компании BSDi.

  • 15 мая 2000 Новый коммиттер: Jake Burkholder (старые драйверы)

  • 14 мая 2000 Вышел в свет Выпуск #04 журнала The FreeBSD 'zine.

  • 9 мая 2000 Freshports: Этот сайт, по сути своей похожий на Freshmeat, посвящён исключительно портам FreeBSD, и позволяет создавать собственные ``списки слежения'' за вашими любимыми портами.

Апрель 2000

  • 16 апреля 2000 Появились новые списки рассылки: freebsd-i18n (Интернационализация FreeBSD) и freebsd-ppc (Перенос FreeBSD на платформу PowerPC)

  • 4 апреля 2000 Новый коммиттер: Murray Stokely (sysinstall)

Март 2000

Февраль 2000

  • 26 февраля 2000 Новый коммиттер: Hajimu UMEMOTO (IPv6)

  • 23 февраля 2000 Новый коммиттер: Paul Saab

  • 22 февраля 2000 32BitsOnline.com поместил обзор FreeBSD 3.4 by Clifford Smith на свой веб-сервер. Описано все, хороший обзор.

  • 18 февраля 2000 Новый коммиттер: Brian S Dean (Поддержка аппаратных регистров отладки в архитектуре IA32 на уровне ядра, различные исправления/дополнения в других областях)

  • 17 февраля 2000 Новый выпуск The FreeBSD 'zine вышел 15 числа. Это первый выпуск электронного журнала за последние 7 месяцев; внесено много изменений, было добавлено много новых возможностей. Обязательно посетите этой сайт.

  • 10 февраля 2000 Michael Lucas опубликовал прекрасную статью о различиях между лицензиями BSD и GPL. Статью определенно стоит прочесть.

    Новые коммиттеры: Greg Sutter и Bill Swingle (Документация)

Январь 2000

  • 22 января 2000 Сайт FreeBSD Diary, хроника того, что делает некий человек с FreeBSD, существовал по крайней мере два года. До сих пор он был достаточно заброшен. Вслед за значительным ростом, сегодня был открыт новый сайт с новым обликом. На сайте имеется гигантское количество пошаговых руководств и заметок, адресованных пользователям NetBSD, OpenBSD и Linux.

  • 13 января 2000 Новый коммиттер: Wilko Bulte

  • 4 января 2000 В рамках программы Compaq Testdrive для тестирования доступны компьютеры с самым последним релизом FreeBSD 4.0-20000101-CURRENT, работающей на машинах Alpha XP1000 EV6.7. с тактовой частотой 667МГц и двумя гигабайтами ОЗУ. Чтобы получить бесплатный доступ (в виде бюджета пользователя), нужно принять участие в этой программе, для чего достаточно зарегистрироваться на сайте. Этот доступ предназначен не для игрушек, целью программы является предоставление новейших систем разработчикам для тестирования, построения и переноса своих приложений на самые быстрые в мире компьютеры. В программе тестирования также имеются другие системы с FreeBSD, включая Proliant 5500 двухпроцессорный Xeon 450MHz и DPW500a.

  • 3 января 2000 Новый коммиттер: Patrick Gardella (JDK/WWW)

  • 2 января 2000 Новый коммиттер: Ade Lovett (Порты)

  • 1 января 2000 Новый коммиттер: Jeremy Lea (Порты)

Декабрь 1999

  • 30 декабря 1999 Новый коммиттер: Gerard Roudier (Драйвер для Symbios SCSI)

  • 20 декабря 1999 Выпущена FreeBSD 3.4. Подробности находятся на странице Информации о релизах. Обязательно посмотрите также исправления и дополнения к релизу после установки, чтобы знать о всех проблемах, которые возникают с 3.4.

  • 18 декабря 1999 Новый коммиттер: Robert Watson (Coda, POSIX.1e, ACL/Права/Аудит/MAC, дополнительные атрибуты FFS, доработка/документирование Jail, и работа с IPFW/BPF)

  • 16 декабря 1999 Удалён коммиттер: James Raynard, "Я решил отказаться от статуса коммиттера, так как очень давно у меня не было времени поработать над FreeBSD, а сейчас всё достигло состояния, когда я не могу даже "пробежать глазами" почту с журналом коммитов". Мы благодарим Джеймса за время и усилия, которые он вкладывал во FreeBSD.

    Новый коммиттер: Jeroen Ruigrok van der Werven (Документация, в частности, mdoc, низкоуровневые интерфейсы и другая документация, относящаяся к дереву исходных текстов)

  • 15 декабря 1999 Новый коммиттер: Chris D. Faulhaber

  • 14 декабря 1999 Новый коммиттер: Neil Blakey-Milner (Документация)

Октябрь 1999

  • 24 октября 1999 Конференция FreeBSD Con '99 в этом году имела большой успех! Более 350 принявших участие, и все, как производители, так и посетители говорили, что находят конференцию интересной и полезной. Большое спасибо компании Walnut Creek CDROM за организацию этого мероприятия и доктору Marshall Kirk McKusick за две лекции о внутреннем устройстве ядра и речь История BSD на конференции.

  • 10 октября 1999 Новый коммиттер: Josef Karthauser

Сентябрь 1999

  • 27 сентября 1999 Новый коммиттер: Yukihiro Nakai (Порты)

  • 26 сентября 1999 Новый коммиттер: Dan Moschuk (Порты)

  • 17 сентября 1999 Выпущена FreeBSD 3.3. Подробности находятся на странице Информации о релизах. Обязательно посмотрите также исправления и дополнения к релизу после установки, чтобы знать о всех проблемах, которые возникают с 3.3.

  • 8 сентября 1999 Новые коммиттеры: Boris Popov (Netware) и Wilfredo Sanchez (Сотрудничество FreeBSD / Apple в рамках проекта Darwin)

  • 5 сентября 1999 Новый коммиттер: Jose M. Alcaide (Документация / Перевод на испанский язык)

  • 3 сентября 1999 Новые коммиттеры: R. Imura (Порты / KDE), Andrey Zakhvatov (Документация / Перевод на русский язык) и Sebastien Gioria (Документация / Перевод на французский язык)

  • 2 сентября 1999 Новый коммиттер: Alexey Zelkin (Локализация; Документация; Русский перевод)

Август 1999

  • 23 августа 1999 Новый коммиттер: John Baldwin (Документация)

  • 11 августа 1999 Новые коммиттеры: Alfred Perlstein (SMP) и Jim Mock (Документация)

  • 10 августа 1999 Была выпущена бета-версия C-Forge, интегрированной среды разработки, для FreeBSD, которая поддерживает C, C++, Perl, Tcl и многие другие языки.

  • 6 августа 1999 Новый коммиттер: Chris Costello (Документация)

  • 4 августа 1999 Новый коммиттер: Peter Holm (Документация)

Июль 1999

Июнь 1999

  • 30 июня 1999 Новые коммиттеры: Larry Lile (Token Ring), Daniel Baker (Порты) и Daniel Eischen

  • 19 июня 1999 Новый коммиттер: Chris Piazza

  • 18 июня 1999 Новый коммиттер: Mitsuru IWASAKI

  • 17 июня 1999 Новый коммиттер: Brian Feldman

  • 14 июня 1999 Новый коммиттер: Sheldon Hearn

  • 10 июня 1999 Выпущены компакт-диски с FreeBSD 3.2-RELEASE. Подписчики, не делавшие никаких специальных заказов, должны вскоре их получить. Все, кто хочет заказать 3.2-RELEASE или стать подписчиком, могут сделать это через FreeBSD Mall.

  • 8 июня 1999 Открыто новое австралийское зеркало сайта FreeBSD. Наши благодарности компании ITworks Consulting за предоставленное оборудование.

Май 1999

Апрель 1999

Март 1999

  • 30 марта 1999 Новый коммиттер: Nick Sayer

  • 10 марта 1999 Новый коммиттер: Jason Evans

  • 5 марта 1999 USENIX Association анонсировала 1999 USENIX Annual Technical Conference, которая состоится с 6 по 11 июня 1999 в Монтерей, CA, USA. Наш Джордан Хаббард участвует в работе секции FREENIX, предназначенной для последних разработок в области программного обеспечения с открытым кодом и его приложений.

  • 2 марта 1999 Новый коммиттер: Satoshi TAOKA (Порты)

  • 1 марта 1999 Установлен безопасный сервер для принятия денежных дотаций для Проекта FreeBSD. Подробная информация находится по адресу: http://www.freebsdmall.com/donate/.

  • 1 марта 1999 Компакт-диски с FreeBSD 3.1-RELEASE поступили в продажу. Подписчики должны их скоро получить. Для заказа посетите сайт http://www.cdrom.com/.

Февраль 1999

  • 25 февраля 1999 Новый коммиттер: Shigeyuki FUKUSHIMA

  • 23 февраля 1999 Новый коммиттер: Alan Cox (VM)

  • 19 февраля 1999 Новый коммиттер: Kris Kennaway

  • 17 февраля 1999 Компания Gartner Group выпустила отчет, Divorcing Thin Server Software from the Hardware, в котором изучается тенденция на рынке OEM к использованию программного и аппаратного обеспечения разных производителей.

  • 15 февраля 1999 Выпущена FreeBSD 3.1. Подробности находятся на странице Информации о релизах. Обязательно посмотрите также исправления и дополнения к релизу после установки, чтобы знать о всех проблемах, которые возникают с 3.1.

  • 4 февраля 1999 Открыт сайт FreeBSD Diary, сборник пошаговых руководств, предназначенных для новичков в Unix.

  • 3 февраля 1999 Новый коммиттер: Daniel Sobral (Загрузчик)

Январь 1999

  • 21 января 1999 Новый коммиттер: Roger Hardiman (Драйвер для bt8x8)

  • 20 января 1999 3.0-STABLE ответвилась от ветки -CURRENT. Следующим релизом в этой ветке будет 3.1-RELEASE, который выйдет в середине февраля 1999.

  • 15 января 1999 Новый коммиттер: Andrew Gallatin (Alpha)

  • 13 января 1999 FreeBSD ezine является ежемесячным сборником легкочитаемых (на что мы надеемся) статей, написанных пользователями и администраторами FreeBSD, такими же, как вы.

  • 10 января 1999 Доклад Джордана Хаббарда "Положение дел в нашем союзе", взгляд назад в 1998, и обзор будущих перспектив.

  • 2 января 1999 Новый коммиттер: Hidetoshi Shimokawa (Alpha / Порты)

Декабрь 1998

  • 28 декабря 1998 Если тому не помешают обстоятельства, из ветки -CURRENT к вечеру 15 января 1999 будет выпущена FreeBSD 3.0. Выход релиза 3.1 последует еще через 30 дней, 15 февраля 1999. Разработчики должны понимать, что это всего лишь предварительное объявление.

  • 13 декабря 1998 Walnut Creek CDROM открыл сайт FreeBSD Mall, отражающий коммерческие аспекты FreeBSD, включая доработки, аппаратное обеспечение и коммерческую техническую поддержку. Чтобы прорекламировать или продать ваши продукты или услуги через FreeBSD Mall, обращайтесь в компанию BSDi.

Ноябрь 1998

  • 30 ноября 1998 Выпущена FreeBSD 2.2.8. Подробности находятся на странице Информации о релизах. Обязательно посмотрите также исправления и дополнения к релизу после установки, чтобы знать о всех возможных проблемах с 2.2.8.

  • 26 ноября 1998 FreeBSD Rocks - это инициатива, призванная обеспечить сообщество FreeeBSD самыми последними новостями, программным обеспечением и ресурсами. Имеется полный набор разделов, включая службу поиска, облегчающую нахождение старых сообщений. Страницы обновляются ежедневно и все приглашаются к написанию заметок. Если сегодня что-то случилось, вы увидите это на сайте FreeBSDRocks.

Октябрь 1998

Сентябрь 1998

  • 15 сентября 1998 На 15 сентября запланировано вхождение в режим BETA для дерева 3.0-CURRENT. Как все мы уже (должны) знать, выход релиза 3.0 запланирован на 15 октября, так что это дает хороший 30-дневный бета-период. В это время, я не ожидаю, что кто-нибудь будет затевать новые значительные разработки или каким-либо другим способом изменять дерево 3.0-CURRENT, что это противоречило бы общей идее BETA (предполагается протестировать все, что имеется, не объявляя новые цели каждые несколько дней :).

  • 13 сентября 1998 После более чем года усилий над разработкой Common Access Method уровня SCSI для FreeBSD wон был интегрирован в 3.0-CURRENT в воскресенье, 13 сентября. Команда разработчиков CAM сейчас занята проверкой того, что процесс интеграции прошел максимально гладко, поэтому будьте пока снисходительны к временным задержкам при ответах на вопросы о CAM.

  • 9 сентября 1998 Perl5 включен в дерево исходных текстов 3.0-CURRENT.

  • 5 сентября 1998 BSD CD Giveaway List. Если у кого-то есть ненужный компакт-диск (допускается оплата почтовых расходов получателем), он может внести свой адрес электронной почты в этот список. Раздача аппаратуры и книг также допускается. Мы также призываем людей дарить компакт-диски местным библиотекам и помещать их адреса в список.

  • 1 сентября 1998 Вчера вышел в свет первый номер Daemon News. Этот электронный журнал создается сообществом BSD и для сообщества BSD. Адрес журнала http://www.daemonnews.org/

Август 1998

  • 31 августа 1998 Ветка FreeBSD -CURRENT (будущая 3.0-RELEASE) перешла с формата a.out на ELF. Все, кто участвовал в этом процессе, проделали большую работу; переход прошел гладко. Подробную информацию о переходе к формату ELF можно найти в архиве списка рассылки freebsd-current@FreeBSD.org.

  • 23 августа 1998 Выпущена утилита suidcontrol-0.1. Это экспериментальная утилита для управления политикой suid/sgid во FreeBSD. Подробная информация находится по адресу http://www.watson.org/fbsd-hardening/suidcontrol.html

  • 9 августа 1998 Опубликован FreeBSD Security How-To. Этот документ находится в стадии тестирования и может быть найден по адресу http://www.best.com/~jkb/howto.txt

Июль 1998

Май 1998

  • 30 мая 1998 FreeBSD и Apache используются в этой очень полезной статье о построении веб-кластера с помощью технологии round-robin DNS на сервере WEBTechniques.com.

  • 23 мая 1998 Второй выпуск Вестника FreeBSD теперь можно получить в формате Adobe PDF (также по FTP). Имеется файл помощи, который поможет в выборе и использовании просмотрщика PDF. Новые статьи, реклама и письма в редакцию нужно посылать на адрес newsletter@FreeBSD.org.

  • 1 мая 1998 Проект FreeBSD запустил службу Anonymous CVS для дерева - FreeBSD CVS. + FreeBSD CVS. Кроме всего прочего, это позволит пользователям FreeBSD без особых привилегий осуществлять операции с CVS в режиме "только чтение" с любым из официальных anoncvs-серверов проекта FreeBSD.

Апрель 1998

  • 16 апреля 1998 Выпущен в продажу новый набор из 4 компакт-дисков FreeBSD 2.2.6, который завтра должен начать рассылаться подписчикам и тем, кто сделал предварительный заказ. Подробная информация о содержимом компакт-дисков находится по адресу http://www.cdrom.com/.

  • 11 апреля 1998 Создан новый проект FreeBSD FreeBSD Mozilla Group. FreeBSD Mozilla Group поддерживает и дорабатывает свободно доступный веб-браузер от Netscape, известный также как Mozilla.

Март 1998

Февраль 1998

Январь 1998

  • 8 января 1998 Доработанная поддержка адаптеров Plug-n-Play была включена в обе ветки 3.0-CURRENT и 2.2-STABLE. Она доступна в виде исходного кода через утилиту CVSup или в бинарном виде в снэпшотах с сервера current.FreeBSD.org

Вы можете прочесть также и предыдущие анонсы за 1997 и 1996 годы.

&newshome; &footer; diff --git a/ru/projects/mozilla.sgml b/ru/projects/mozilla.sgml index 8d6df8af62..1687c4752f 100644 --- a/ru/projects/mozilla.sgml +++ b/ru/projects/mozilla.sgml @@ -1,97 +1,97 @@ %includes; ]> &header;

Обзор

Вслед за решением компании Netscape об общедоступной публикации исходного кода своего клиентского программного продукта, известного как Mozilla, несколько групп разработчиков свободно распространяемого программного обеспечения приняли активное участие в поддержке и совершенствовании этой технологии для своих пользователей. Цель работы группы FreeBSD Mozilla Group является привлечение внимания к этой работе в мире FreeBSD, предоставляя единый источник информации для таких ресурсов, как дерево CVS, список рассылки и другие инструменты для совместной разработки.

Ресурсы

CVSup
CVSup позволяет обеспечивать постоянную синхронизацию с основным деревом исходных текстов Mozilla. как в виде CVS (для тех, кто хочет иметь такое дерево у себя), так и в виде, подходящем для непосредственного построения и редактирования. Скачайте бинарные файлы CVSup с сервера ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/ и используйте supfile, имеющий примерно такой вид:
 *default prefix=/usr/src/mozilla base=/usr/src/mozilla host=mozilla.FreeBSD.org release=cvs delete compress use-rel-suffix tag=.
 
 ## Main Source Tree
 cvs-mozilla
 	
anoncvs
Anonymous CVS позволяет кому угодно брать что-либо из дерева исходных текстов FreeBSD Mozilla с помощью стандартных команд cvs(1). Просто установите переменную окружения CVSROOT в следующее значение:
 	  anoncvs@mozilla.freebsd.org:/mozilla
 	

И после этого вы сможете использовать команду cvs(1) для выполнения операций с деревом исходных текстов Mozilla в режиме "только чтение".

freebsd-mozilla
Список рассылки FreeBSD-mozilla предназначен для разработчиков и пользователей версии Mozilla для FreeBSD, обсуждения всего, что связано с построением, использованием и управлением исходных текстов mozilla и любыми специфическими для FreeBSD изменениями в них. Чтобы подписаться, пошлите письмо со строчкой subscribe freebsd-mozilla в теле письма на адрес majordomo@freebsd.org.

Дополнительная информация

Mozilla.ORG
Проект Mozilla.org координирует работу над Mozilla для всех платформ, не только FreeBSD.
Cyclic Software
На сервере Cyclic Software имеется несколько хороших учебников по CVS
&footer; diff --git a/ru/support.sgml b/ru/support.sgml index 9ddfc8c8ae..1b22301e25 100644 --- a/ru/support.sgml +++ b/ru/support.sgml @@ -1,887 +1,887 @@ + %includes; ]> - + &header;

Списки рассылки

Списки рассылки являются основным каналом технической поддержки для пользователей FreeBSD; различные списки рассылки касаются различных аспектов использования FreeBSD. Если вам не ясно, куда нужно послать ваш вопрос, пошлите его в адрес freebsd-questions@FreeBSD.ORG. Вы можете просмотреть или выполнить поиск в архивах списков рассылки на сервере www.FreeBSD.org.

Конспекты FreeBSD содержат суммарное описание того, что происходило в списках рассылки, обновляемые каждую неделю, они дают вам краткий обзор последних обсуждений и принятых решений.

Существуют также несколько неанглоязычных списков рассылки:

Если вы создали новый список рассылки, посвящённый FreeBSD, дайте нам знать.

Конференции Usenet

Существует пара телеконференций, посвящённых FreeBSD, а также еще несколько конференций, представляющих интерес для пользователей FreeBSD, хотя списки рассылки остаются самым надежным способом войти в контакт с разработчиками FreeBSD. Обсуждению различных аспектов FreeBSD посвящена телеконференция comp.unix.bsd.freebsd.misc. Важные анонсы публикуются в конференция comp.unix.bsd.freebsd.announce.

Архивы всех телеконференций по BSD с июня 1992 года можно найти на поисковом сервере The BSD Usenet News Searcher.

IRC

Хотя каналы #freebsd имеются в различных сетях IRC, проект FreeBSD не управляет ими и не считает IRC средством получения помощи. Когда вы задаёте вопрос на любом из каналов IRC, вас могут проигнорировать, оскорбить и даже вышвырнуть прочь, хотя вам может больше повезти на каналах #freebsdhelp там, где они есть. Если вы хотите попробовать эти либо другие каналы на IRC, делайте это на свой страх и риск, жалобы на поведение на этих каналах не нужно направлять в адрес проекта FreeBSD. Для получения подробной информации обратитесь также к FAQ.

Ресурсы WEB

База данных сообщений о проблемах GNATS

Текущие сообщения о проблемах FreeBSD отслеживаются с помощью базы данных GNATS.

Сообщения о проблемах также могут быть посланы группе разработчиков с помощью команды send-pr(1), входящей в поставку FreeBSD, или посылкой сообщения на адрес freebsd-bugs@FreeBSD.ORG. Заметьте, что предпочтительней пользоваться командой send-pr, потому что сообщения, посланные в список рассылки, не отслеживаются официально!

-

Дерево CVS

+

Дерево CVS

CVS (Concurrent Version System) является тем инструментом, который мы используем для управления исходными текстами системы. Каждое изменение (с сопутствующей записью в журнале, описывающей его смысл) начиная с FreeBSD 2.0 вплоть до текущего момента сохраняется здесь и может быть легко просмотрено (просто перейдите по ссылке). Чтобы получить полную копию дерева CVS от FreeBSD или любой ветки внутри него, вы можете поступить одним из следующих образов:

  • cvsup в случае, если вам требуется доступ по требованию с высокой эффективностью использования канала с помощью дополнительной утилиты (написанной ни больше, ни меньше, на языке Modula-3).
  • anoncvs если вам требуется доступ по требованию, который дает несколько большую, чем cvsup, нагрузку на канал (в смысле общего времени и трафика), хотя его проще использовать для проверки маленьких кусочкоа дерева и он не требует ничего, кроме утилит cvs, уже включенных в поставку FreeBSD.
  • CTM если вам требуется очень экономно использующий канал режим доступа в пакетном режиме (в основном пересылка патчей по электронной почте).
  • Вы можете также воспользоваться web-интерфейсом, + href="http://cvsweb.FreeBSD.org/">web-интерфейсом, если вам нужно просто посмотреть дерево в поисках конкретных изменений в конкретном файле.
  • И наконец, если вам нечем забить канал или же вы предпочитаете или вам необходимо использовать FTP, вы можете просто сделать зеркало дерева CVS с сервера ftp.freebsd.org.

Зеркала этого интерфейса к репозиторию CVS находятся в - Калифорнии, + Калифорнии, Германии, Японии и Испании (Английский, Испанский).

Группы пользователей

Популярность FreeBSD породила некоторое количество групп пользователей по всему миру. Если у вас есть информация о группе пользователей FreeBSD, которая здесь не указана, дайте нам знать.

Австралия

  • Квинслэнд. Группа пользователей Home UNIX Users Group for Brisbane проводит встречи раз в две недели в аудиториях, предоставляемых Университетом Квинслэнда. Дополнительная информация, в том числе о том, как подключиться к спискам рассылки, находится по адресу http://www.humbug.org.au

  • Южная Австралия. Группа South Australian FreeBSD Users Group (SAFUG) проводит нерегулярные встречи раз в месяц на дому у кого-либо из членов группы. Место и время проведения следующей встречи ещё не определено.

  • New South Wales. Группа пользователей BSD User Group, Sydney (BUGS) раз в два месяца проводит встречи в Сиднее и имеет список рассылки с членами по всему NSW. Чтобы присоединиться к списку рассылки, пошлите сообщение с текстом subscribe bugs в теле письма на адрес majordomo@bugs.au.FreeBSD.org.

  • Victoria. Группа пользователей Victoria's FreeBSD Users Group (VicFUG) находится в Мельбурне. Вы можете присоединиться к списку рассылки, послав пустое сообщение на адрес general-subscribe@vicfug.au.FreeBSD.org

Европа

  • Нидерланды Группа Dutch FreeBSD User Group (NLFUG) провела свою первую встречу 2 октября 1999 года. В этот же день 30 лет назад был запущен второй IMP в лаборатории Дуга Энглебарта (Doug Englebart) в SRI. Это, как все вы знаете, было началом того, что стало называться Internet (спасибо Эдвину Кремеру (Edwin Kremer) за напоминание об этом факте).

  • Дания Создана датская группа пользователей *BSD, BSD/DK! Посылайте запросы для подписки на адрес bsd-dk-request@hotel.prosa.dk.

  • Кёльн, Германия Группа CBUG (Cologne BSD Usergroup) предназначена для пользователей BSD в районе Кёльна. Встречи проводятся каждую четвёртую пятницу каждого месяца в итальянском ресторане ``Campi'' на Рихард-Валраф-Плац (Richard-Wallraff-Platz).

  • Дуисбург, Германия Cosmo-Project - это не просто группа пользователей. Они не только проводят встречи, но и принимают активное участие в таких проектах, как, например, разработка роботов. Большинство использует FreeBSD, но эта группа не ограничивается исключительно FreeBSD.

  • Франция Французская группа пользователей French FreeBSD UG. Для получения подробной информации перейдите по ссылке.

  • Гамбург, Германия BSDHH (BSD User Group Hamburg) встречается по первым средам месяца в 7.00pm в китайском ресторане LotosblЭte по адресу LЖwenstraъe 22 в Hamburg-Eppendorf. Большинство членов - пользователи FreeBSD, хотя мы будем рады видеть пользователей и других веток семейства BSD.

  • Ирландия Группа пользователей BUGI (BSD User Group Ireland) - пока слишком громкое название для списка рассылки и сверхминимальной веб-страницы. Приветствуются все пользователи и энтузиасты BSD.

  • Италия Группа пользователей GUFI (Gruppo Utenti FreeBSD Italia) является группой, поддерживающей FreeBSD "по итальянски". Она создана для того, чтобы помочь пользователям FreeBSD в Италии найти поддержку и литературу по FreeBSD на итальянском языке. Будьте добры, перейдите по этой ссылке, чтобы больше узнать о нас.

  • Люблин, Польша Группа Lublin BSD Users Group. Для получения подробной информации перейдите по ссылке.

  • Лунд, Швеция Группа Lund Linux User Group (LFUG) состоит примерно из 50 человек и кроме Linux, занимается FreeBSD и Solaris. Чтобы присоединиться, обратитесь к Omar Dedovic

  • Мэнхейм, Германия Группа пользователей UUGRN (Unix Users Group Rhein-Neckar) организует региональные встречи пользователей всех вариантов UNIX, с упором на Linux и BSD. Встречи проходят каждую вторую среду каждого месяца в ресторане Rhein-Neckar около Carl-Benz-Stadium.

  • Мюнхен, Германия Группа BIM (Berkeley In Munich) предназначена для пользователей систем BSD в Обербаерне (Oberbayern).

  • Швеция Группа пользователей BSD Users Sweden (BUS) имеет свой список рассылки. Чтобы присоединиться, пошлите письмо по адресу majordomo@stacken.kth.se со строчкой subscribe bus в теле письма.

  • ВеликобританияFreeBSD UKUG (FreeBSD UK User's Group) существует для пользователей FreeBSD в Объединённом Королевстве. Перейдите по ссылке, чтобы узнать все подробности.

Северная Америка

  • Группа пользователей Berkeley UNIX User Group является обычной группой пользователей UNIX для всех в из California Bay Area. Мы встречаемся еженедельно в центре Беркли. Посетите наш сайт или пошлите письмо со строчкой subscribe в теле письма по адресу buug-request@weak.org

  • Чикаго IL Группа пользователей Chicago FreeBSD Users Group (ChiFUG).

  • Группа пользователей Connecticut Free Unix user's Group (CFUG) связана со свободно распространяемыми системами UNIX-системами, но имеет ресурсы практически по всем системам Unix. Их деятельность распространяется на Коннектикут и Западный Массачусетс. Более подробная информация может быть найдена по адресу http://www.cfug.org.

  • Группа пользователей Davis-Sacramento FreeBSD User's Group (DSFUG) создана для продвижения и поддержки FreeBSD в районе Дэвис / Сакраменто в Калифорнии. Более подробная информация может быть найдена по адресу http://www.freebsd.davis.ca.us.

  • Группа пользователей Хьюстон TX Houston FreeBSD Users Group была сформирована в марте 1999 года. Нашей целью является пропаганда и обучение использованию FreeBSD пользователями в Хьюстоне. Мы проводим встречи каждый четвёртый четверг месяца. У группы имеется список рассылки по адресу http://www.houfug.org/mailman/listinfo/hou-freebsd. Для получения дополнительной информации посетите наш сайт или напишите письмо на адрес houfug@houfug.org.

  • Канзас KULUA (Kansas Unix & Linux Users Association) это группа пользователей свободных версий Unix, находящаяся в городе Lawrence, Kansas, но с членами по всему восточному Канзасу и западному Миссури. У нас около 120 членов и мы встречаемся каждые две недели. За подробной информацией обратитесь к нашему веб-серверу или пошлите письмо по адресу kulua@kulua.org.

  • Канзас Wichita Area FreeBSD Users Group (WAFUG) - это группа пользователей, которая окажет поддержку FreeBSD и других UNIX и UNIX-подобных операционных систем для всех в районе Вичиты. Мы организовываем встречи дважды в месяц, обычно в ресторане, где не возбраняется курить или выпивать. Нас можно найти по Email и получить бесплатную регистрацию на нашей системе, дисковое пространство www или ftp.

  • Лас-Вегас, NV Группа пользователей Vegas Free UNIX User Group

  • Лос-Анджелес CA Группа Yahoo Club создана пользователями BSD, находящимися в Лос-Анджелесе.

  • Нью-Мехико NMLUG из Альбукерка проводит встречи каждый месяц и поддерживает пользователей как BSD, так и Linux. Чтобы присоединиться к списку рассылки, пошлите письмо со строчкой subscribe nmlug в теле письма на адрес majordomo@swcp.com.

  • Новый Орлеан LA Новоорлеанская группа пользователей *BSD проводит встречи два раза в месяц. За подробной информацией обратитесь к Konrad Rzeszutek. Скоро появится и веб-страница.

  • Нью-Йорк NY D'Artagnan's FreeBSD Users Group.

  • New York NY FUNY (FreeBSD Users of New York) провела своё организационную встречу в феврале 1999. Она находится в NYC и и работает с окружающими пригородами.

  • Северная Аризона Yavapai Free Unix Users Group формируется из пользователей *BSD/Linux, и тд., в Северной Аризоне. За подробностями обращайтесь к Расселу Картеру (Russell Carter) (rcarter@consys.com).

  • Орландо, FL BUGO (BSD Users Group of Orlando) - это группа пользователей из Орландо, FL, задачей которой является организация дружественно настроенного форум всем пользователям UNIX в центральной Флориде, и более того. Для дальнейших разъяснений обратитесь к веб-серверу BUGO.

  • Феникс AZ Группа Phoenix BSD Users group полностью открыта для контактов. Все желающие из района Феникса, присоединяйтесь, обратившись по адресу http://bsd.phoenix.az.us.

  • Портлэнд, OR Группа пользователей The Portland (Oregon) FreeBSD Users group встречается в каждый третий четверг каждого месяца. Для получения подробной информации напишите письмо Rick Hamell.

  • Рено NV RUUG (Reno Unix Users Group) встречается каждый месяц в Reno Nevada и обсуждает использование FreeBSD и Linux. Для подробной информации напишите Eric Blood или Todd Crenshaw.

  • Rhode Island Rhode Island Free Unix Group поддерживает любой свободно распространяемый вариант UNIX. К ним можно обратиться через страничку http://users.tmok.com/~rifug или по e-mail по адресу rifug@entropy.tmok.com

  • Сан-Диего, Калифорния Группа пользователей San Diego BSD Users Group состоит из пользователей FreeBSD, OpenBSD и NetBSD. Встречи проходят по первым четвергам каждого месяца в книжном магазине Borders Bookstore торгового центра Mission Valley. Более подробная информация находится здесь.

  • San Francisco/Berkeley Bay Area BAFUG (Bay Area FreeBSD Users Group) организует встречи раз в месяц в Сан-Франциско в Reef и в Transbay в Беркли. Всех, кто заинтересовался, приглашаем посетить наш сайт или послать письмо веб-мастеру BAFUG.

  • Сиэттл WA Группа Seattle FreeBSD Users Group (SeaFUG) организует встречи каждый месяц. Все, кто хочет принять участие, посетите наш сайт или обратитесь к Bill Swingle за дополнительной информацией.

  • St. Louis, MO Группа пользователей St. Louis BSD User Group (STLBSD) была только что сформирована 20 июля 2000 года для продвижения операционных систем BSD в районе St. Louis. Мы сильно разочарованы от 10-летней старой группы St. Louis Unix Users Group (SLUUG) и хотим быть позитивным движением в нашем сообществе. Членство в нашей группе открыто для всех, кто хочет узнать больше о BSD, на нашем сайте доступны несколько списков рассылки

  • The Tampa Florida Группа пользователей только формируется. Заинтересованные лица могут присоединиться к списку рассылки, послав письмо на адрес bsd-tug-request@bangheadhere.org со строчкой 'subscribe' в теле письма.

  • Greater Toronto Area, Ontario: Группа пользователей GTABUG приветствует всех пользователей BSD. Ежемесячные встречи дают всем заинтересованным лицам возможность обменяться идеями и информацией, участвовать в обсуждениях. Марафоны инсталляций и другие мероприятия помогают донести хорошие новости мира BSD до масс. Давайте встречаться!

  • Таксон AZ TFUG: Tucson Free Unix Group, Arizona.

  • Ванкувер, BC Группа пользователей VanBUG (Vancouver BSD Users Group) состоит из добровольцев, которым нравится FreeBSD, NetBSD, и OpenBSD. Их текущей задачей является усиление информированности и обеспечение поддержки на местах, насколько это возможно.

  • Вашингтон DC (DC Metropolitan Area) FreeBSD User Group только формируется. Обратитесь к Richard Cramer, Sytex Access Ltd. по телефону 703-425-2515, или, что предпочтительней, по email на rcramer@sytex.net, чтобы вас включили в список рассылки. Первая встреча назначена на май.

  • Вичита, Канзас: Новая группа пользователей FreeBSD была создана в Вичите, штат Канзас. Мы новенькие и работаем над нашим сайтом, и он будет готов в самое ближайшее время. Встреч пока не проводилось. Для получения подробной информации посетите наш сервер по адресу http://wafug.dynip.com или напишите организатору на адрес ben177@yahoo.com.

  • Виндзор, Онтарио Группа Windsor Unix Users Group (Windsor, Ontario, Canada) формируется из пользователей *BSD, Solaris, SCO, и тд. Это не чисто группа поклонников FreeBSD, но некоторые члены нашей группы работают с ней. Группа имеет список рассылки (wuug-list@unixpower.org). Подробная информация может быть найдена на веб-сервере WUUG по адресу http://unix.windsor.on.ca/

  • Висконсин Группа FreeBSD-Milwaukee Wisconsin организует встречи от случая к случаю и имеет список рассылки: freebsd-mke-l@ns.sol.net. Пошлите письмо в адрес freebsd-mke-l-request@ns.sol.net для подписки.

Остальной мир

  • Ибараки, Япония Группа пользователей Daibou East *BSD Users Group (DEBUG) сейчас только формируется из пользователей *BSD в районе Цукуба.

  • Израиль Группа Israeli BSD Users Group - это попытка обратить внимание на использование *BSD по всей стране, и выступать центром информации для всех пользователей BSD. На сегодняшний день он поддерживается пользователями FreeBSD, однако мы приглашаем поклонников всех вариантов *BSD. У нас есть список рассылки, имеющий адрес bsd-il@osem.co.il. Чтобы подписаться, пошлите письмо со строчкой "subscribe bsd-il" по адресу majordomo@osem.co.il.

  • Новая Зеландия Группа New Zealand FreeBSD User's group находится в Веллингтоне. Встреч пока не запланировано.

  • Индонезия Группа пользователей Jogja FreeBSD Users' Group находится в городе Джакарта, Индонезия. Для получения подробной информации пошлите письмо на адрес 22961476@students.ukdw.ac.id.

FreeBSD Development Projects

Кроме основной ветки разработки FreeBSD, существует некоторое количество групп разработчиков, которые работают над самыми последними технологиями, расширяющими и открывающими новые области применения FreeBSD.

Руководство по безопасности FreeBSD

Ресурсы, касающиеся безопасности, доступные пользователям: Ключи PGP для администраторов безопасности, рекомендации, патчи и списки рассылки.

Консалтинговые услуги

Не зависимо от того, работаете ли вы с FreeBSD впервые или вам нужно закончить большой проект, консультант или даже несколько могут быть вам весьма полезны.

Общая информация о UNIX

X Window System

  • The XFree86 Project дает пользователям различных версий UNIX для платформы Intel, включая FreeBSD, прекрасную реализацию X Window System.
  • Проект WINE работает над возможностью запуска программного обеспечения для MS-Windows в Unix-системах на платформе Intel, таких как FreeBSD, NetBSD и Linux.

Аппаратное обеспечение

  • Конференция comp.answers pc-hardware-faq является хорошим справочником для тех, кто занимается сборкой машины для себя.
  • Пользователи, имеющие компьютеры класса laptop, и которым нужна поддержка PCCARD (известную также как PCMCIA), еще не поставляемую в дистрибутиве FreeBSD, должны посмотреть на страницу PAO, которая посвящена поддержке лаптопов.
  • Intel Secrets -- What Intel Doesn't Want You To Know - масса информации о процессорах Intel.
  • Aad Offerman's Chip List - справочник по микросхемам, используемым в PC-клонах.
  • ASUS производит материнские платы, прекрасно работающие с FreeBSD.

Другие проекты в области операционных систем

  • NetBSD - это другая свободно распространяемая операционная система, основанная на 4.4BSD-Lite, которая работает на нескольких различных аппаратных платформах.
  • OpenBSD - это еще одна ветвь развития 4.4BSD.
  • Linux - это еще одна свободно распространяемая Unix-подобная система.
  • Lites - это сервер на основе 4.4 BSD Lite и эмулирующая библиотека, что позволяет достичь функциональности UNIX на системах, основанных на микроядре Mach.
  • Проект GNU HURD представляет собой еще одну попытку разработать свободно распространяемую версию Unix-подобной операционной системы.
&footer; diff --git a/ru/y2kbug.sgml b/ru/y2kbug.sgml index 68657bd798..9cab7f49e5 100644 --- a/ru/y2kbug.sgml +++ b/ru/y2kbug.sgml @@ -1,464 +1,464 @@ %includes; ]> &header;

Так как осознание проблемы 2000 года (известной также под названием "ошибки тысячелетия") усиливается, все большее количество компаний требуют официальных заявлений от поставщиков их аппаратного и программного обеспечения о том, насколько корректно их оборудование воспримет переход в 2000 год.

Организации, использующие unix и unix-подобные операционные системы типа FreeBSD, уже сделали один шаг вперед в решении этой проблемы. FreeBSD многие годы будет корректно обрабатывать время после наступления 2000 года.>

Вводная информация

(Этот раздел основан на информации, найденной на странице Готовности Linux к Г2000)

Как это имеет место со всеми Unix и Unix-подобными операционными системами, время и даты во FreeBSD имеют внутреннее представление в виде числа секунд, прошедших с 1 января 1970 года ("век" Unix). В настоящее время это число хранится в виде 32-разрядного целого и исчерпает себя только к 2038 году. К тому времени мы уже (надеемся) будем использовать счетчик на 64 (или больше) разрядов, которого должно хватить до скончания мира.

Заметьте, что готовность ОС к Г2000 не означает, что приложения, не готовые к Г2000, будут работать корректно.

Заметьте также, что при работе ОС предполагается чтение текущей даты и времени из часов CMOS на вашем компьютере. Не все такие устройства корректно обрабатывают 2000 год. Советуем вам индивидуально протестировать каждую машину, чтобы убедиться, что ваши аппаратные часы ведут себя правильно при переходе от 1999 года к 2000. и что они правильно интерпретируют год 2000 как високосный.

Что вы можете сделать

FreeBSD будет продолжать правильно вести отсчет времени в следующем веке. Приложения третьих фирм, однако, могут этого и не сделать. Лучшей вашей защитой от проблем, связанных с 2000 годом, является хорошо продуманная атака. Выслушивание историй о предстоящем крахе мира, как мы его себе представляем, не решит проблему тысячелетия, как впрочем, и простое ожидание последнего часа. Проект FreeBSD рекомендует, чтобы ваша организация выработала некоторые принципиальные подходы к решению задач, касающихся проблемы Г2000.

Есть некоторые тесты, которые вы можете произвести, чтобы посмотреть, реакцию вашей системы. Установите ваши часы на несколько минут до полуночи Нового Года и посмотрите системное время. Ваша система должна выдать год как 2000, а не 1900. Если год выводится неправильно, то у вас есть время для обновления аппаратного обеспечения. Работа информационных систем вашей организации в нормальном рабочем ритме, но с часами, установленными вперед, даст достаточную оценку вашей готовности к 2000 году.

Внимание: Не делайте этого на живой работающей системе. Это может отразиться на функционировании некоторых приложений, которые работают с датами (биллинговые системы, режимы регулярной архивации данных и т.д.). Тесты, подобные этим, всегда проводите на отладочных системах, что не будет отражаться ни на каких имеющихся реальных данных.

Заявление FreeBSD по поводу Г2000

"После тщательного исследования и тестирования, мы полагаем, что FreeBSD является системой, готовой к Г2000 на 100%. В случае, если что-то было пропущено, мы приложим все усилия, чтобы исправить всё как можно скорее."

David Greenman
Principal Architect, The FreeBSD project

Исправленные проблемы

Во FreeBSD были найдены и исправлены следующие проблемы Г2000.

misc/1380
Некоторые программы имеют предопределенный формат 19%d для выдачи года. К таким программам относятся: yacc, ftpd, и make. [Исправлено: yacc v1.2 1999/01/18; ftpd v1.7 1996/08/05; make v1.4 1996/10/06; исправления касаются FreeBSD-2.2 и выше]
conf/1382
sed-скрипт в /etc/rc.local, вставляющий строку идентификации машины/ядра в сообщении дня, зависит от номера года и не работает после 1999.[Исправлено v1.21 1996/10/24; исправления касаются FreeBSD-2.2 и выше]
misc/3465
Команда etc/namedb/make-localhost генерирует серийный номер DNS в формате YYMMDD. В 2000 году, он будет иметь вид 1YYMMDD. [Исправлено v1.2 1997/08/11; исправления касаются FreeBSD-2.2.5 и выше]
gnu/4930 и gnu/8321
Макрос tmac для groff использует предопределенное число 19 для генерации некоторых дат. [Исправлено: tmac.e v1.3 1998/12/06; doc-common v1.10 1999/01/19; исправления касаются FreeBSD-3.1 и выше]
bin/9323
В своей устаревшей форме touch неправильно обрабатывает две цифры указываемого года. Даты в диапазоне 00-68 воспринимаются как 1900-1968, а не 2000-2068. [Исправлено v1.7 1999/01/05; исправления касаются FreeBSD-3.1 и выше]
xntpd/parse/util/dcfd.c
+ href="http://cvsweb.FreeBSD.org/src/usr.sbin/xntpd/parse/util/dcfd.c">xntpd/parse/util/dcfd.c
Вычисление високосного года для выяснения числа дней в году и преобразование времени DCF77 в число секунд, прошедших с начала Века выполнялись некорректно. Эти ошибки влияют на все года. [Исправлено v1.6 1999/01/12; исправления касаются FreeBSD-3.1 и выше]
tar/getdate.y
+ href="http://cvsweb.FreeBSD.org/src/gnu/usr.bin/tar/getdate.y">tar/getdate.y
В функции Convert() было задано использование номера года, состоящего из двух цифр, для лет в диапазоне 70-99. Сейчас это исправлено, чтобы можно было использовать две цифры года для лет из диапазона 1970-2069. Функция не работает для круглых дат невисокосных лет - ошибка y2k1! [Исправлено v1.4 1999/01/12; исправления касаются FreeBSD-3.1 и выше]
fetch/http.c
+ href="http://cvsweb.FreeBSD.org/src/usr.bin/fetch/http.c">fetch/http.c
Протокол HTTP описывает устаревший формат представления даты, в котором используются две цифры года. Предыдущие версии утилиты fetch будут интерпретировать все такие даты как относящиеся к 20 веку; что описано в последующем документе RFC 2068, что позволяет интерпретировать год из двух цифр как относящийся к текущем столетию, если до его конца осталось больше 50 лет. Так как серверов HTTP, которые используют старый формат, осталось не так уж много, вряд ли это вызовет значительные сложности. [Исправлено v1.24 1999/01/15; исправления касаются FreeBSD-3.1 и выше]
misc/9500
Скрипт `edithook' в каталоге CVSROOT использует значение tm_year непосредственно и поэтому будет выводить 01/01/100 для 2000-JAN-01. [Исправлено в v1.2 1999/01/17; не имеет отношения ни к какому релизу]
bin/9501
Некоторые из заимствованных файлов поставки cvs не совместимы с Г2000. Скрипты log.pl и sccs2rcs.csh добавляют `19' к номеру года, что приводит к выводу 19100 для 2000 года. Скрипт log_accum.pl в одном месте использует две цифры года, а в другом предполагает, что tm_year - это число лет, прошедших с начала столетия, а не с 1900 года. [Исправлено: log.pl v1.2 1999/01/15; sccs2rcs.csh v1.3 1999/01/15; исправления касаются FreeBSD-3.1 и выше]
bin/9502
Регистр `yr' утилиты groff, инициализируется из (struct tm).tm_year и поэтому представляет собой число лет, прошедших с 1900 года, а не с начала текущего века (смотрите определение в файле troff/input.cc). [Исправлено, сейчас устанавливается значение по модулю 100, troff/input.cc V1.2 1999/06/03; исправлено во FreeBSD-3.3]
bin/9503
В PicoBSD simple_httpd использует непосредственное значение tm_year и поэтому будет выводить 01/01/100 для 2000-JAN-01. [Исправлено в v1.2 1999/01/16; исправления касаются FreeBSD-3.1 и выше]
bin/9505
Утилита adduser использует непосредственное значение tm_year и поэтому будет выводить 100/01/01 для даты 2000-JAN-01. [Исправлено в v1.42 1999/01/15; исправления касаются FreeBSD-3.1 и выше]
bin/9506
Cron использует значение tm_year непосредственно и поэтому будет выводить значение 100 для 2000 года. [Fixed v1.7 1999/01/16]
bin/9507
Утилита tcpslice(8) использует значение tm_year непосредственно и поэтому будет выводить 100y01m01d... для 2000-JAN-01. Для достижения совместимости используйте две цифры года до 2000 года. [Исправлено в v1.8 1999/01/20; исправления касаются FreeBSD-3.1 и выше]
bin/14472
Команда date не воспринимает цифры, указывающие тысячи/сотни. [Исправлено в v1.31 1999/11/10]
misc/14511
В команде сhpass имеется проблема при использовании 00 для указания года истечения срока.
bin/15852, gnu/16045 и bin/16207
В программе groff имеется проблема с предопределённой строкой \*(DT [\*(td]. [Исправлено с включением версии 1.15 2000/01/12]
bin/15872
В программе at(1) имеется проблема с проверкой указания времени, когда при задании tm_year равным 100 выдаётся диагностика `garbled time'.
misc/16238
Установка KerberosIV работает некорректно, так как в исходных текстах Kerberos жёстко задано время 12/31/99 истечения срока работы генератора ключей. [Исправлено в v1.24 1999/09/19]

Проблемные приложения

ports/7681
TkDesk 1.0 использует предопределенное число 19 в окне вывода списка файлов. Файл с датой > 2000, выводится с датой, выглядящей как "191xx", где xx - последние две цифры настоящей даты. Эта ошибка была исправлена в версии 1.1.[Порт обновлен 1998/10/10; исправления касаются FreeBSD-3.0 и выше]
ports/9295
INN 1.7.2 подвержен влиянию ошибок, связанных с проблемой Г2000. Одна проявляется при скачивании телеконференций (опция -f в nntpget), а другая связана с заголовком Expire с относительными датами после 2000 года. [Оба порта INN обновлены до INN 2.2 1999/05/02; исправления касаются FreeBSD-3.2 и выше]
ports/9298
Knews имеет две ошибки, связанных с проблемой Г2000. Одна проявляется при генерации команды NNTP NEWGROUPS. Другая связана с тем, что knews не знает, что 2000 год является високосным. Обе ошибки исправлены в knews-1.0b.1. [Порт исправлен 1999/01/07; исправления касаются FreeBSD-3.1 и выше]
ports/9300
Nntp-t5 подвержен влиянию проблемы Г2000 во время генерации команды NEWNEWS. [Порт обновлен 1999/01/05; исправления касаются FreeBSD-3.1 и выше]
ports/11144
Порт tiff имеет вкомпилированную строку 19xx. Хотя это находится в разделе заимствований (для преобразования растрового формата Sun в TIFF) и не устанавливается по умолчанию, это приложение должно быть исправлено. [Порт обновлен 1999/04/18; а затем 1999/05/11; исправления касаются FreeBSD-3.2 и выше]
ports/11145
Порт dgs страдает от той же проблемы, связанной с TIFF, что и порт tiff [заимствованная процедура преобразования растровых файлов Sun в TIFF]. [Порт обновлен 1999/04/18; исправления касаются FreeBSD-3.2 и выше]
ports/13694
В работе порта slurp имеется проблема генерации корректно сформированного имени файла хоста, когда tm_year превышает 100. [Порт исправлен 1999/10/27; исправления касаются FreeBSD-3.3-STABLE и выше]
ports/15477
Порт wwwstat имеет жёстко заданной число 19.
ports/15789
В proftpd имеется маленькая проблема с Г2000. [Порт исправлен 1999/12/22]
ports/15820
В sendfile имеется ошибка, приводящая к тому, что для файлов, посланных после 1999 года, параметры atime и mtime устанавливаются неправильно.
ports/15854
dclock использует показания localtime и, в частности, значение tm_year не учитывается для 2000 года. [Порт исправлен 2000/01/04]
ports/15868
Функция генерации отчётов в программе hylafax (xferstats) не совместима с Г2000. [Порт исправлен 2000/01/24]
ports/15926
Ошибка, связанная с Г2000 в программе leafnode+ 2.9 приводит к тому, что входящие статью телеконференций со служебным заголовком (вообще говоря, ошибочным) Date: типа `Wed, 05 Jan 00 15:01:40 GMT' считаются слишком старыми, и отбрасываются. [Исправлено обновлением порта до версии 2.10 2000/01/24]
ports/16062
В приложении e2ps из категории japanese жёстко задано число 19. [Порт исправлен 2000/01/24]
ports/16073
В nntp версии 1.5.11.5 имеются проблемы, связанные с Г2000. [Порт был обновлён до версии 1.5.12.2 2000/01/12]
ports/16167
Это релиз, в котором исправлена ошибка Г2000 в INN 2.2.1, проявляющаяся в работе команд NEWNEWS и NEWGROUPS после 2000-01-01 00:00:00, когда указанная в качестве параметра дата лежит меньше 2000-01-01 00:00:00. [Порт обновлён до версии 2.2.2 2000/01/28]
NetHack 3.2.2 и более ранние версии не совместимы с Г2000 (файл результатов использует 2 цифры для обозначения года и портится, если обновляется в 2000 году). [Порт обновлён до версии 3.2.3 2000/01/05]
В программе mnews из категории japanese имеются проблемы, связанные с Г2000. [Порт обновлён до версии 1.22 1999/12/26]

Дополнительная информация

Если у вас есть вопросы по поводу готовности FreeBSD к 2000 году или вы обнаружили приложение FreeBSD, которое не готово к 2000 году, пожалуйста, напишите нам по адресу freebsd-bugs@FreeBSD.ORG.

&footer;