diff --git a/en/cgi/Makefile b/en/cgi/Makefile index 9ecd8883e2..efe4876826 100644 --- a/en/cgi/Makefile +++ b/en/cgi/Makefile @@ -1,24 +1,24 @@ -# $FreeBSD: www/en/cgi/Makefile,v 1.18 2001/10/29 10:14:31 murray Exp $ +# $FreeBSD: www/en/cgi/Makefile,v 1.19 2002/11/09 05:23:14 bmah Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif DATA= ftp.mirrors DATA+= cvsweb.conf cvsweb.conf-freebsd cvsweb.conf-netbsd cvsweb.conf-openbsd CGI= ftp.cgi gallery.cgi mirror.cgi cgi-lib.pl cgi-style.pl CGI+= search.cgi cvsweb.cgi query-pr.cgi query-pr-summary.cgi -# CGI+= dosendpr.cgi +CGI+= dosendpr.cgi sendpr-code.cgi CGI+= freebsd.def html.pl reg.cgi missing_handler.cgi CGI+= ports.cgi pds.cgi man.cgi url.cgi getmsg.cgi mid.cgi CGI+= mailindex.cgi .SUFFIXES: .C .cgi .C.cgi: ${CXX} ${CFLAGS} -o ${.TARGET} ${.IMPSRC} .include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/cgi/confirm-code.cgi b/en/cgi/confirm-code.cgi new file mode 100755 index 0000000000..e0e1a5802b --- /dev/null +++ b/en/cgi/confirm-code.cgi @@ -0,0 +1,82 @@ +#!/usr/bin/perl -T +# +# $FreeBSD$ +# +# Copyright (c) 2003 Eric Anderson + +use DB_File; +use Fcntl qw(:DEFAULT :flock); +use strict; + +$ENV{"PATH"} = "/bin:/usr/bin"; +$ENV{"TMPDIR"} = "/tmp"; + +my($fd, $db_obj, %db_hash, $currenttime, $randomcode, $pngbindata, $randompick, $pnmlist, $i); +my($expiretime, $pnmcat, $pnmtopng, $pnmdatadir, $dbpath); + +############################################ +# generate 8 charactor code from A-Z0-9 (no o,O,0) +my @availchars = qw(A B C D E F G H I J K L M N P Q R S T U V W X Y Z + 1 2 3 4 5 6 7 8 9); + +$pnmcat = "/usr/local/bin/pnmcat"; +$pnmtopng = "/usr/local/bin/pnmtopng"; +$pnmdatadir = "../gifs/"; +$dbpath = "/tmp/sendpr-code.db"; +$expiretime = 900; # seconds until code expires +############################################ + +$currenttime = time(); + +# DB stuff here +$db_obj = tie(%db_hash, 'DB_File', $dbpath, O_CREAT|O_RDWR, 0644) + or die "dbcreate $dbpath $!"; +$fd = $db_obj->fd; +open(DB_FH, "+<&=$fd") or die "fdopen $!"; + +unless (flock (DB_FH, LOCK_EX | LOCK_NB)) { + unless (flock (DB_FH, LOCK_EX)) { die "flock: $!" } +} + +&gencode; + +while ($db_hash{$randomcode}) { + # it already exists so: + # we check age (over x seconds old?) + # if it is, override with new date + # if not, generate a new code + if ( ($currenttime - $expiretime) <= $db_hash{$randomcode}) { + &gencode; + } else { + delete $db_hash{"$randomcode"}; + } +} + +$db_hash{$randomcode} = $currenttime; + +$db_obj->sync(); # to flush +flock(DB_FH, LOCK_UN); +undef $db_obj; # removing the last reference to the DB + # closes it. Closing DB_FH is implicit. +untie %db_hash; + +$/ = ""; + +open(BUILDPNG, "$pnmcat -lr $pnmlist | $pnmtopng 2>/dev/null |"); +$pngbindata = ; +print "Content-type: image/png\n\n"; +print "$pngbindata"; +close(BUILDPNG); + +############################################ +sub gencode { + srand( time() ^ ($$ + ($$ << 15)) ); + + for ($i = 0; $i < 8; $i++) { + $randompick = $availchars[int(rand(@availchars))]; + $randomcode .= "$randompick"; + $pnmlist .= "$pnmdatadir$randompick\.pnm "; + } +} + + diff --git a/en/cgi/dosendpr.cgi b/en/cgi/dosendpr.cgi index 3921758986..f60050742c 100755 --- a/en/cgi/dosendpr.cgi +++ b/en/cgi/dosendpr.cgi @@ -1,170 +1,206 @@ #!/usr/bin/perl # # Send-pr perl script to send a pr. # # Copyright (c) 1996 Free Range Media # # Copying and distribution permitted under the conditions of the # GNU General Public License Version 2. # (http://www.gnu.ai.mit.edu/copyleft/gpl.html) # -# $FreeBSD: www/en/cgi/dosendpr.cgi,v 1.12 2003/05/15 12:08:05 ceri Exp $ +# $FreeBSD: www/en/cgi/dosendpr.cgi,v 1.13 2003/09/04 15:16:15 ceri Exp $ require "html.pl"; use Socket; +use DB_File; +use Fcntl qw(:DEFAULT :flock); my $blackhole = "dnsbl.njabl.org"; my $openproxyip = "127.0.0.9"; my $blackhole_err = 0; my $openproxy; +my $expiretime = 900; +$dbpath = "/tmp/sendpr-code.db"; + # Environment variables to stuff in the PR header. my @ENV_captures = qw/ REMOTE_HOST REMOTE_ADDR REMOTE_PORT HTTP_REFERER HTTP_CLIENT_IP HTTP_FORWARDED HTTP_VIA HTTP_X_FORWARDED_FOR /; # env2hdr (@ENV_captures) # Returns X-header style headers for inclusion in the header of a PR sub env2hdr (@) { my $headers = ""; for my $var (shift @_) { next unless $ENV{$var}; $headers .= "X-$var: $ENV{$var}\n"; } return $headers; } # isopenproxy ($ip, $blackhole_zone, $positive_ip) # Returns undef on error, 0 if DNS lookup fails, $positive_ip if verified # proxy. A DNS lookup failing can either means that there was a network # problem, or that the IP is not listed in the blackhole zone. sub isopenproxy ($$$) { # If $? is already set, then a successful gethostbyname() leaves it set local $?; my ($ip, $zone, $proxyip) = @_; my ($reversed_ip, $packed); if (!defined $proxyip) { return undef }; $reversed_ip = join('.', reverse split(/\./, $ip)); $packed = gethostbyname("${reversed_ip}.${blackhole}"); return undef if $?; if ($packed && (inet_ntoa($packed) eq $proxyip)) { return $proxyip; } else { return 0; } } sub prerror { &html_title ("Problem Report Error"); &html_body(); print "There is an error in the configuration of the problem\n", "report form generator. Please back up one page and report\n", "the problem to the owner of that page. Report $_[0]."; &html_end(); exit (1); } &www_content ("text","html"); &cgi_form_in(); $gndb = $cgi_data{'gndb'}; if ($gndb =~ /^[a-z]+$/ && -e "$gndb.def") { require "$gndb.def"; } else { &prerror("gndb problem"); } &prerror("request method problem") if $ENV{'REQUEST_METHOD'} eq 'GET'; # Configuration if ($gnhow eq "mail") { if (-e "/usr/lib/sendmail") { $submitprog = "/usr/lib/sendmail -t" }; if (-e "/usr/sbin/sendmail") { $submitprog = "/usr/sbin/sendmail -t" }; } else { if (-e "$gnroot/queue-pr") { $submitprog = "$gnroot/queue-pr -q" }; } if (!$submitprog) { &prerror("submit program problem"); } &html_title ($gnspreptitle); &html_body ($gnsprepbody); # Verify the data ... -if (!$cgi_data{'email'} || !$cgi_data{'originator'} || - !$cgi_data{'synopsis'}) { - if ($gnsprepbad && -e $gnsprepbad ) - { print `cat $gnsprepbad`; } - else { - print "

Bad Data

\nYou need to specify at least your ", - "electronic mail address, your name and a synopsis of the ", - "of the problem.\n Please return to the form and add the ", - "missing information. Thank you.\n"; + +$db_obj = tie(%db_hash, 'DB_File', $dbpath, O_CREAT|O_RDWR, 0644) + or die "dbcreate $dbpath $!"; +$fd = $db_obj->fd; +open(DB_FH, "+<&=$fd") or die "fdopen $!"; + +unless (flock (DB_FH, LOCK_EX | LOCK_NB)) { + unless (flock (DB_FH, LOCK_EX)) { die "flock: $!" } +} + +$codeentered = $cgi_data{'code-confirm'}; +$currenttime = time(); +if (defined($codeentered) && $codeentered && $db_hash{$codeentered} && + (($currenttime - $expiretime) <= $db_hash{$codeentered})) { + if (!$cgi_data{'email'} || !$cgi_data{'originator'} || + !$cgi_data{'synopsis'}) { + if ($gnsprepbad && -e $gnsprepbad ) + { print `cat $gnsprepbad`; } + else { + print "

Bad Data

\nYou need to specify at least your ", + "electronic mail address, your name and a synopsis of the ", + "of the problem.\n Please return to the form and add the ", + "missing information. Thank you.\n"; + } + &html_end(); + + exit(1); } - &html_end(); +} else { + print "

Incorrect safety code

\nYou need to enter the correct ", + "code from the image displayed. Please return to the form and enter the ", + "code exactly as shown. Thank you.\n"; + + &html_end(); - exit(1); + exit(1); } +delete $db_hash{"$codeentered"}; +$db_obj->sync(); # to flush +flock(DB_FH, LOCK_UN); +undef $db_obj; # removing the last reference to the DB + # closes it. Closing DB_FH is implicit. +untie %db_hash; + + $openproxy = isopenproxy($ENV{'REMOTE_ADDR'}, $blackhole, $openproxyip); if (defined $openproxy) { if ($openproxy) { &prerror("$ENV{'REMOTE_ADDR'} is an open proxy server"); } } else { $blackhole_err++; } # Build the PR. $pr = "To: $gnemail\n" . "From: $cgi_data{'originator'} <$cgi_data{'email'}>\n" . "Subject: $cgi_data{'synopsis'}\n" . env2hdr(@ENV_captures); if ($blackhole_err) { $pr .= "X-REMOTE_ADDR-Is-Open-Proxy: Maybe\n"; } -$pr .= "X-Send-Pr-Version: www-1.0\n\n" . +$pr .= "X-Send-Pr-Version: www-2.0\n\n" . ">Submitter-Id:\t$cgi_data{'submitterid'}\n" . ">Originator:\t$cgi_data{'originator'}\n" . ">Organization:\t$cgi_data{'organization'}\n" . ">Confidential:\t$cgi_data{'confidential'}\n" . ">Synopsis:\t$cgi_data{'synopsis'}\n" . ">Severity:\t$cgi_data{'severity'}\n" . ">Priority:\t$cgi_data{'priority'}\n" . ">Category:\t$cgi_data{'category'}\n" . ">Class:\t\t$cgi_data{'class'}\n" . ">Release:\t$cgi_data{'release'}\n" . ">Environment:\t$cgi_data{'environment'}\n" . ">Description:\n$cgi_data{'description'}\n" . ">How-To-Repeat:\n$cgi_data{'howtorepeat'}\n" . ">Fix:\n$cgi_data{'fix'}\n"; # remove any carrage returns that appear in the report. $pr =~ s/\r//g; #print "
$submitprog\n\n$pr\n
"; if (open (SUBMIT, "|$submitprog")){ print SUBMIT $pr; close (SUBMIT); if ($gnspreppage && -e $gnspreppage ) { print `cat $gnspreppage`; } else { print "

Thank You

", "Thank you for the problem report. You should receive confirmation", " of your report by electronic mail within a day."; } } else { print "

Error

An error occured processing your problem report."; } &html_end(); diff --git a/en/cgi/sendpr-code.cgi b/en/cgi/sendpr-code.cgi new file mode 100755 index 0000000000..e0e1a5802b --- /dev/null +++ b/en/cgi/sendpr-code.cgi @@ -0,0 +1,82 @@ +#!/usr/bin/perl -T +# +# $FreeBSD$ +# +# Copyright (c) 2003 Eric Anderson + +use DB_File; +use Fcntl qw(:DEFAULT :flock); +use strict; + +$ENV{"PATH"} = "/bin:/usr/bin"; +$ENV{"TMPDIR"} = "/tmp"; + +my($fd, $db_obj, %db_hash, $currenttime, $randomcode, $pngbindata, $randompick, $pnmlist, $i); +my($expiretime, $pnmcat, $pnmtopng, $pnmdatadir, $dbpath); + +############################################ +# generate 8 charactor code from A-Z0-9 (no o,O,0) +my @availchars = qw(A B C D E F G H I J K L M N P Q R S T U V W X Y Z + 1 2 3 4 5 6 7 8 9); + +$pnmcat = "/usr/local/bin/pnmcat"; +$pnmtopng = "/usr/local/bin/pnmtopng"; +$pnmdatadir = "../gifs/"; +$dbpath = "/tmp/sendpr-code.db"; +$expiretime = 900; # seconds until code expires +############################################ + +$currenttime = time(); + +# DB stuff here +$db_obj = tie(%db_hash, 'DB_File', $dbpath, O_CREAT|O_RDWR, 0644) + or die "dbcreate $dbpath $!"; +$fd = $db_obj->fd; +open(DB_FH, "+<&=$fd") or die "fdopen $!"; + +unless (flock (DB_FH, LOCK_EX | LOCK_NB)) { + unless (flock (DB_FH, LOCK_EX)) { die "flock: $!" } +} + +&gencode; + +while ($db_hash{$randomcode}) { + # it already exists so: + # we check age (over x seconds old?) + # if it is, override with new date + # if not, generate a new code + if ( ($currenttime - $expiretime) <= $db_hash{$randomcode}) { + &gencode; + } else { + delete $db_hash{"$randomcode"}; + } +} + +$db_hash{$randomcode} = $currenttime; + +$db_obj->sync(); # to flush +flock(DB_FH, LOCK_UN); +undef $db_obj; # removing the last reference to the DB + # closes it. Closing DB_FH is implicit. +untie %db_hash; + +$/ = ""; + +open(BUILDPNG, "$pnmcat -lr $pnmlist | $pnmtopng 2>/dev/null |"); +$pngbindata = ; +print "Content-type: image/png\n\n"; +print "$pngbindata"; +close(BUILDPNG); + +############################################ +sub gencode { + srand( time() ^ ($$ + ($$ << 15)) ); + + for ($i = 0; $i < 8; $i++) { + $randompick = $availchars[int(rand(@availchars))]; + $randomcode .= "$randompick"; + $pnmlist .= "$pnmdatadir$randompick\.pnm "; + } +} + + diff --git a/en/gifs/1.pnm b/en/gifs/1.pnm new file mode 100644 index 0000000000..e838df13cd Binary files /dev/null and b/en/gifs/1.pnm differ diff --git a/en/gifs/2.pnm b/en/gifs/2.pnm new file mode 100644 index 0000000000..6f3f179b89 Binary files /dev/null and b/en/gifs/2.pnm differ diff --git a/en/gifs/3.pnm b/en/gifs/3.pnm new file mode 100644 index 0000000000..16c3f537fa Binary files /dev/null and b/en/gifs/3.pnm differ diff --git a/en/gifs/4.pnm b/en/gifs/4.pnm new file mode 100644 index 0000000000..fca0ef196b Binary files /dev/null and b/en/gifs/4.pnm differ diff --git a/en/gifs/5.pnm b/en/gifs/5.pnm new file mode 100644 index 0000000000..81df9b25df Binary files /dev/null and b/en/gifs/5.pnm differ diff --git a/en/gifs/6.pnm b/en/gifs/6.pnm new file mode 100644 index 0000000000..6946d120f3 Binary files /dev/null and b/en/gifs/6.pnm differ diff --git a/en/gifs/7.pnm b/en/gifs/7.pnm new file mode 100644 index 0000000000..be55bf4742 Binary files /dev/null and b/en/gifs/7.pnm differ diff --git a/en/gifs/8.pnm b/en/gifs/8.pnm new file mode 100644 index 0000000000..ea30297108 Binary files /dev/null and b/en/gifs/8.pnm differ diff --git a/en/gifs/9.pnm b/en/gifs/9.pnm new file mode 100644 index 0000000000..d96eca2335 Binary files /dev/null and b/en/gifs/9.pnm differ diff --git a/en/gifs/A.pnm b/en/gifs/A.pnm new file mode 100644 index 0000000000..2f8a473cbf Binary files /dev/null and b/en/gifs/A.pnm differ diff --git a/en/gifs/B.pnm b/en/gifs/B.pnm new file mode 100644 index 0000000000..01bcdb4f23 Binary files /dev/null and b/en/gifs/B.pnm differ diff --git a/en/gifs/C.pnm b/en/gifs/C.pnm new file mode 100644 index 0000000000..c49d75b059 Binary files /dev/null and b/en/gifs/C.pnm differ diff --git a/en/gifs/D.pnm b/en/gifs/D.pnm new file mode 100644 index 0000000000..17b6d1832f Binary files /dev/null and b/en/gifs/D.pnm differ diff --git a/en/gifs/E.pnm b/en/gifs/E.pnm new file mode 100644 index 0000000000..c41f5f931f Binary files /dev/null and b/en/gifs/E.pnm differ diff --git a/en/gifs/F.pnm b/en/gifs/F.pnm new file mode 100644 index 0000000000..0f9b36826c Binary files /dev/null and b/en/gifs/F.pnm differ diff --git a/en/gifs/G.pnm b/en/gifs/G.pnm new file mode 100644 index 0000000000..f831288f45 Binary files /dev/null and b/en/gifs/G.pnm differ diff --git a/en/gifs/H.pnm b/en/gifs/H.pnm new file mode 100644 index 0000000000..d4d8e381b0 Binary files /dev/null and b/en/gifs/H.pnm differ diff --git a/en/gifs/I.pnm b/en/gifs/I.pnm new file mode 100644 index 0000000000..fd79597350 Binary files /dev/null and b/en/gifs/I.pnm differ diff --git a/en/gifs/J.pnm b/en/gifs/J.pnm new file mode 100644 index 0000000000..316e15ddf1 Binary files /dev/null and b/en/gifs/J.pnm differ diff --git a/en/gifs/K.pnm b/en/gifs/K.pnm new file mode 100644 index 0000000000..96730dbe00 Binary files /dev/null and b/en/gifs/K.pnm differ diff --git a/en/gifs/L.pnm b/en/gifs/L.pnm new file mode 100644 index 0000000000..bf94c7748d Binary files /dev/null and b/en/gifs/L.pnm differ diff --git a/en/gifs/M.pnm b/en/gifs/M.pnm new file mode 100644 index 0000000000..8003d02fb4 Binary files /dev/null and b/en/gifs/M.pnm differ diff --git a/en/gifs/Makefile b/en/gifs/Makefile index 6c14460dd3..6040c459ef 100644 --- a/en/gifs/Makefile +++ b/en/gifs/Makefile @@ -1,66 +1,70 @@ -# $FreeBSD: www/en/gifs/Makefile,v 1.45 2003/04/06 20:57:08 ceri Exp $ +# $FreeBSD: www/en/gifs/Makefile,v 1.46 2003/06/24 13:27:54 phantom Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif DATA= apache.gif apachepower.gif daemon.gif dir.gif doc.gif DATA+= home.gif littlelogo.gif new.gif power-button.gif DATA+= powerlogo.gif ugu_icon.gif wclogo.gif topbar.gif DATA+= flash0.gif flash1.gif soft0.gif soft1.gif support0.gif support1.gif DATA+= docs0.gif docs1.gif vendors0.gif vendors1.gif search0.gif search1.gif DATA+= index0.gif index1.gif get0.gif get1.gif faq0.gif faq1.gif DATA+= handboo0.gif handboo1.gif dae_up2.gif dae_up3.gif bar.gif DATA+= freebsd_1.gif powerani.gif pbfbsd2.gif 205-jp.jpg DATA+= 205-jpb.jpg bsdisc.jpg bsdiscb.jpg comp_b.jpg complete.jpg DATA+= cover.jpg coverb.jpg fultus-cover.gif fullcourse3.jpg DATA+= fullcourse3b.jpg getstarb.jpg getstart.jpg DATA+= jp.jpg jpb.jpg kr.jpg krb.jpg las5.jpg las5b.jpg las512.jpg DATA+= las512b.jpg las523.jpg las523b.jpg wc-docs.jpg wc-docsb.jpg DATA+= pc98-jp.jpg pc98-jpb.jpg pht.jpg phtb.jpg running.jpg DATA+= runningb.jpg starkit.jpg starkitb.jpg tw.jpg twb.jpg DATA+= unixuser.jpg unixuserb.jpg wc-10.jpg wc-10b.jpg wc-11.jpg wc-11b.jpg DATA+= wc-200.jpg wc-200b.jpg wc-205.jpg wc-205b.jpg wc-21.jpg wc-215.jpg DATA+= wc-215b.jpg wc-216.jpg wc-216b.jpg wc-216jp.jpg wc-216jpb.jpg DATA+= wc-217.jpg wc-217b.jpg wc-21b.jpg wc-221.jpg wc-221b.jpg DATA+= wc-222.jpg wc-222b.jpg wc-22snap.jpg wc-22snapb.jpg DATA+= wc-44lite2.jpg wc-44lite2b.jpg wc-blun.jpg wc-blunb.jpg DATA+= wc-30snab.jpg wc-30sna.jpg newsletb.jpg newslett.jpg DATA+= newslet2b.jpg newslet2.jpg DATA+= banner1.gif banner2.gif banner3.gif banner4.gif DATA+= lynx.gif DATA+= smart-reseller-small.jpg smart-reseller.jpg DATA+= bsdm.jpg DATA+= bsdmb.jpg DATA+= fhp_mini.jpg DATA+= mall_title_tiny.gif DATA+= mall_title_medium.gif DATA+= plueschtier-tiny.jpg DATA+= instman.jpg instmanb.jpg sam.jpg samb.jpg urm.jpg urmb.jpg DATA+= releases.jpg bug.jpg doc.jpg news.jpg power.jpg DATA+= gourchin3.gif DATA+= darbylogo.gif DATA+= bsdmagazine.jpg DATA+= aboutf.jpg aboutfb.jpg DATA+= bukudepan.jpg DATA+= wc-bsdtool.gif DATA+= wc-bsdalph-4.2.gif DATA+= wc-freebsd-4.2.gif wc-freebsd-4.2b.gif DATA+= bsdcomp-4.2.gif DATA+= lob-freebsd-4.2.gif lob-freebsd-4.4-small.gif lob-freebsd-4.4.gif DATA+= daemon_hammer.jpg DATA+= daemon_hammer-tn15.jpg daemon_hammer-tn20.jpg daemon_hammer-tn25.jpg DATA+= branches.png DATA+= wr-bsdtool-june2001.png wr-freebsd43.png wr-freebsd44.png DATA+= wr-handbook-2nd.png DATA+= bsdi-handbook.png fm-freebsd45.png DATA+= done.png how_to_contribute.png in_progress.png news.png DATA+= not_planned.png not_started.png project_goal.png project_plan.png DATA+= resources_and_links.png status_board.png blocked.png c99.jpg DATA+= fbsdcng-english.png fbsdcng-japanese.png DATA+= abs_bsd_cov.gif fbsd-ososfypc.jpg +DATA+= 1.pnm 2.pnm 3.pnm 4.pnm 5.pnm 6.pnm 7.pnm 8.pnm 9.pnm +DATA+= A.pnm B.pnm C.pnm D.pnm E.pnm F.pnm G.pnm H.pnm I.pnm J.pnm +DATA+= K.pnm L.pnm M.pnm N.pnm P.pnm Q.pnm R.pnm S.pnm T.pnm U.pnm +DATA+= V.pnm W.pnm X.pnm Y.pnm Z.pnm .include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/gifs/N.pnm b/en/gifs/N.pnm new file mode 100644 index 0000000000..765cf49616 Binary files /dev/null and b/en/gifs/N.pnm differ diff --git a/en/gifs/P.pnm b/en/gifs/P.pnm new file mode 100644 index 0000000000..10e2f50549 Binary files /dev/null and b/en/gifs/P.pnm differ diff --git a/en/gifs/Q.pnm b/en/gifs/Q.pnm new file mode 100644 index 0000000000..30cdbe59f2 Binary files /dev/null and b/en/gifs/Q.pnm differ diff --git a/en/gifs/R.pnm b/en/gifs/R.pnm new file mode 100644 index 0000000000..bc20ab0d16 Binary files /dev/null and b/en/gifs/R.pnm differ diff --git a/en/gifs/S.pnm b/en/gifs/S.pnm new file mode 100644 index 0000000000..497387bbdb Binary files /dev/null and b/en/gifs/S.pnm differ diff --git a/en/gifs/T.pnm b/en/gifs/T.pnm new file mode 100644 index 0000000000..655d76929b Binary files /dev/null and b/en/gifs/T.pnm differ diff --git a/en/gifs/U.pnm b/en/gifs/U.pnm new file mode 100644 index 0000000000..d637e87cd6 Binary files /dev/null and b/en/gifs/U.pnm differ diff --git a/en/gifs/V.pnm b/en/gifs/V.pnm new file mode 100644 index 0000000000..8f7c98734d Binary files /dev/null and b/en/gifs/V.pnm differ diff --git a/en/gifs/W.pnm b/en/gifs/W.pnm new file mode 100644 index 0000000000..4bdea3ad61 Binary files /dev/null and b/en/gifs/W.pnm differ diff --git a/en/gifs/X.pnm b/en/gifs/X.pnm new file mode 100644 index 0000000000..9866bd970e Binary files /dev/null and b/en/gifs/X.pnm differ diff --git a/en/gifs/Y.pnm b/en/gifs/Y.pnm new file mode 100644 index 0000000000..407c575dcb Binary files /dev/null and b/en/gifs/Y.pnm differ diff --git a/en/gifs/Z.pnm b/en/gifs/Z.pnm new file mode 100644 index 0000000000..0167954961 Binary files /dev/null and b/en/gifs/Z.pnm differ diff --git a/en/send-pr.sgml b/en/send-pr.sgml index 68e7d9cca9..c9a49bb373 100644 --- a/en/send-pr.sgml +++ b/en/send-pr.sgml @@ -1,126 +1,124 @@ + &author;
&date;'> %includes; + ]> &header; Bugs - - - -

The web-based bug interface is currently disabled.

- -

If you have access to a FreeBSD system, you can use the - send-pr(1) - program to submit a bug report.

- &footer; diff --git a/tools/buildpnms.sh b/tools/buildpnms.sh new file mode 100755 index 0000000000..96c0f8f173 --- /dev/null +++ b/tools/buildpnms.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# Shell script to generate the .pnm files required for the send-pr +# mechanism. This is not used by the build process, as it requires +# X libraries for the gozer program; rather they are generated and +# committed into www/en/gifs/ + +GOZER=/usr/X11R6/bin/gozer +PNGTOPNM=/usr/local/bin/pngtopnm +VERBOSE=/usr/bin/false + +# Generate 8 character code from A-Z0-9 (no o,O,0) +availchars="A B C D E F G H I J K L M N P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9" + +for char in ${availchars} +do + ${VERBOSE} Making ${char}.png... + ${GOZER} -x 2 -t ${char} -f "#990000" -b "#ffffff" ${char}.png + ${VERBOSE} DONE + ${VERBOSE} Converting ${char}.pnm to ${char}.png... + ${PNGTOPNM} ${char}.png > ${char}.pnm + ${VERBOSE} DONE + ${VERBOSE} Removing ${char}.png... + rm ${char}.png + ${VERBOSE} DONE +done +