[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Persian page fail to build



On Sat, Apr 21, 2007 at 12:13:42AM +0200, Jens Seidel wrote:
> after adding the Persian translation of the website I found the
> following error in the log file:
> 
> wml -q -D CUR_YEAR=2007 -o UNDEFuFA:index.fa.html@g+w   index.wml
> ePerl:Error: Perl parsing error (interpreter rc=2)
> 
> ---- Contents of STDERR channel: ---------
> syntax error at /tmp/wml.SDs4aI/wml.3124.tmp1.wml line 382, near "{}"
> Execution of /tmp/wml.SDs4aI/wml.3124.tmp1.wml aborted due to
> compilation errors.
> ------------------------------------------
> ** WML:Break: Error in Pass 3 (rc=1).
> make[1]: *** [index.fa.html] Error 1
> make[1]: Leaving directory `/org/www.debian.org/webwml/persian'
> make: *** [persian-install] Error 2
> 
> I cannot reproduce it since it works for me. I have also no access to
> /tmp/wml.SDs4aI/wml.3124.tmp1.wml so I really do not know how to fix
> this. Any ideas?

Here's the file.

-- 
Matt
<:# line 0 "/tmp/ipp.ngr3CM/ipp.27999.tmp":>
<:# line 0 "/usr/share/wml/include/sys/bootp3.wml":>
<:
BEGIN {
    unshift @INC, qw(
        /usr/lib/wml/perl/lib
        /usr/lib/wml/perl/lib/i386-linux-thread-multi
    );

    $^W = 0;
}
:><:# line 1 "/tmp/ipp.ngr3CM/ipp.27999.tmp":>
<:# line 0 "/usr/share/wml/include/sys/bootp4.wml":>
m4_changequote()m4_changequote(`,')m4_dnl
m4_define(`m4_noquotes', `m4_changequote()')m4_dnl
m4_define(`m4_quotes',   `m4_changequote`'')m4_dnl
m4_noquotes()m4_dnl
m4_changecom()m4_dnl
<:# line 2 "/tmp/ipp.ngr3CM/ipp.27999.tmp":>
<:# line 0 "index.wml":>
<:# line 0 "../english/template/debian/mainpage.wml":>




<:# line 0 "../english/template/debian/common_translation.wml":>
<:# line 0 "../english/template/debian/common_tags.wml":>










   




   
   
   
   






<:# line 1 "../english/template/debian/common_translation.wml":>



























<:# line 17 "../english/template/debian/mainpage.wml":>
<:# line 0 "../english/template/debian/basic.wml":>
<:# line 0 "/usr/share/wml/include/std/tags.wml":>

<:# line 0 "/usr/share/wml/include/mod/version.wml":>



<:# line 7 "/usr/share/wml/include/std/tags.wml":>





  
  



















































































<:# line 1 "../english/template/debian/basic.wml":>
<:# line 0 "/usr/share/wml/include/std/box.wml":>

<:# line 7 "/usr/share/wml/include/std/box.wml":>





  
  





















<:# line 0 "/usr/share/wml/include/des/space.wml":>

<:# line 0 "/usr/share/wml/include/des/imgdot.wml":>

<:# line 8 "/usr/share/wml/include/des/imgdot.wml":>





  
  





















<:# line 11 "/usr/share/wml/include/des/imgdot.wml":>
<:# line 0 "/usr/share/wml/include/sup/hextriple.wml":>


<:
sub triple2rgb {
    my ($triple) = @_;
    my ($r, $g, $b);

    $triple =~ s|^#||;
    $triple =~ tr|A-F|a-f|;
    $triple =~ m|([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])|;
    ($r, $g, $b) = (hex($1), hex($2), hex($3));

    return ($r, $g, $b);
}

sub rgb2triple {
    my ($r, $g, $b) = @_;
    my ($triple);

    $triple = sprintf("%02x%02x%02x", $r, $g, $b);

    return $triple;
}
:>


<:# line 12 "/usr/share/wml/include/des/imgdot.wml":>


<:
use WML::GD;

sub imgdot {
    my ($base, $x, $y, $c, $r, $g, $b, $transp, $format) = @_;
    my ($file, $im, $col, $data);
    local (*FP);

    if ($base ne '' && $base !~ m|/$|) {
        if (-d $base) {
            $base .= '/';
        }
        else {
            $base .= '.';
        }
    }
    if ($main::DEBUG) {
        $c = 'DEBUG';
        ($r, $g, $b) =  (255, 64, 64);
        $transp = 0;
    }
    $file = "${base}imgdot-${x}x${y}-$c.$format";

    if (not -f $file) {
        $im = new WML::GD::Image($x, $y);
        $col = $im->colorAllocate($r, $g, $b);
        $im->transparent($col) if $transp;
        eval "\$data = \$im->$format";
        if ($@) {
            warn "Error: wml::des::imgdot: " . $@;
        }
        else {
            open(FP, ">$file");
            print FP $data;
            close(FP);
        }
    }
    return $file;
}
:>




<:# line 6 "/usr/share/wml/include/des/space.wml":>









<:# line 10 "/usr/share/wml/include/std/box.wml":>



<:# line 2 "../english/template/debian/basic.wml":>

<:# line 4 "../english/template/debian/basic.wml":>
<:# line 5 "../english/template/debian/basic.wml":>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd";>

<html lang=""[FA: dir="RTL":]>
{:
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=" >
  <title>Debian -- {: [[s/<q>/"/g]] [[s/<\/q>/"/g]] سیستم‌ عامل جهانی :}</title>
  <link rev="made" href="mailto:webmaster@debian.org"; >

  <link rel="shortcut icon" href="favicon.ico"  >
  <meta name="Keywords"  content="debian, GNU, linux, unix, open source, free, DFSG"  >


  <meta name="Description" content="Debian GNU/Linux is a free distribution of the GNU/Linux operating system. It is maintained and updated through the work of many users who volunteer their time and effort."  >

  <meta name="Generator" content="WML 2.0.8 (30-Oct-2001)" >
  <meta name="Modified"  content="2007-04-21 04:35:55" >
{#rss#}
{#style#}
{#style#:<link href="/debian.css" rel="stylesheet" type="text/css" >
  <link href="/debian-.css" rel="stylesheet" type="text/css" media="all">
:#style#}
</head>
<body>

<:# line 0 "../english/template/debian/navbar.wml":>
<:# line 1 "../english/template/debian/navbar.wml":>
<:# line 0 "../english/template/debian/mirrors.wml":>
<:# line 0 "../english/template/debian/countries.wml":>
<:# line 1 "../english/template/debian/countries.wml":>





<:
  $_ = <<'EOT';

    United Arab Emirates

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{AE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Albania

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{AL}{} = $_;
:>


<:
  $_ = <<'EOT';

    Armenia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{AM}{} = $_;
:>


<:
  $_ = <<'EOT';

    Argentina

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{AR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Austria

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{AT}{} = $_;
:>


<:
  $_ = <<'EOT';

    Australia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{AU}{} = $_;
:>


<:
  $_ = <<'EOT';

    Bosnia and Herzegovina

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BA}{} = $_;
:>


<:
  $_ = <<'EOT';

    Bangladesh

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BD}{} = $_;
:>


<:
  $_ = <<'EOT';

    Belgium

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Bulgaria

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BG}{} = $_;
:>


<:
  $_ = <<'EOT';

    Brazil

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Bahamas

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BS}{} = $_;
:>


<:
  $_ = <<'EOT';

    Belarus

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{BY}{} = $_;
:>


<:
  $_ = <<'EOT';

    Canada

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CA}{} = $_;
:>


<:
  $_ = <<'EOT';

    Switzerland

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CH}{} = $_;
:>


<:
  $_ = <<'EOT';

    Chile

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CL}{} = $_;
:>


<:
  $_ = <<'EOT';

    China

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CN}{} = $_;
:>


<:
  $_ = <<'EOT';

    Colombia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CO}{} = $_;
:>


<:
  $_ = <<'EOT';

    Costa Rica

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Czech Republic

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{CZ}{} = $_;
:>


<:
  $_ = <<'EOT';

    Germany

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{DE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Denmark

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{DK}{} = $_;
:>


<:
  $_ = <<'EOT';

    Dominican Republic

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{DO}{} = $_;
:>


<:
  $_ = <<'EOT';

    Ecuador

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{EC}{} = $_;
:>


<:
  $_ = <<'EOT';

    Estonia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{EE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Egypt

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{EG}{} = $_;
:>


<:
  $_ = <<'EOT';

    Spain

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{ES}{} = $_;
:>


<:
  $_ = <<'EOT';

    Ethiopia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{ET}{} = $_;
:>


<:
  $_ = <<'EOT';

    Finland

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{FI}{} = $_;
:>


<:
  $_ = <<'EOT';

    Faroe Islands

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{FO}{} = $_;
:>


<:
  $_ = <<'EOT';

    France

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{FR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Great Britain

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{GB}{} = $_;
:>


<:
  $_ = <<'EOT';

    Grenada

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{GD}{} = $_;
:>


<:
  $_ = <<'EOT';

    Greenland

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{GL}{} = $_;
:>


<:
  $_ = <<'EOT';

    Greece

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{GR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Guatemala

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{GT}{} = $_;
:>


<:
  $_ = <<'EOT';

    Hong Kong

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{HK}{} = $_;
:>


<:
  $_ = <<'EOT';

    Honduras

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{HN}{} = $_;
:>


<:
  $_ = <<'EOT';

    Croatia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{HR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Hungary

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{HU}{} = $_;
:>


<:
  $_ = <<'EOT';

    Indonesia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{ID}{} = $_;
:>


<:
  $_ = <<'EOT';

    Ireland

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{IE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Israel

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{IL}{} = $_;
:>


<:
  $_ = <<'EOT';

    India

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{IN}{} = $_;
:>


<:
  $_ = <<'EOT';

    Iceland

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{IS}{} = $_;
:>


<:
  $_ = <<'EOT';

    Italy

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{IT}{} = $_;
:>


<:
  $_ = <<'EOT';

    Jordan

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{JO}{} = $_;
:>


<:
  $_ = <<'EOT';

    Japan

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{JP}{} = $_;
:>


<:
  $_ = <<'EOT';

    Kenya

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{KE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Korea

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{KR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Kuwait

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{KW}{} = $_;
:>


<:
  $_ = <<'EOT';

    Sri Lanka

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{LK}{} = $_;
:>


<:
  $_ = <<'EOT';

    Lithuania

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{LT}{} = $_;
:>


<:
  $_ = <<'EOT';

    Luxembourg

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{LU}{} = $_;
:>


<:
  $_ = <<'EOT';

    Latvia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{LV}{} = $_;
:>


<:
  $_ = <<'EOT';

    Morocco

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{MA}{} = $_;
:>


<:
  $_ = <<'EOT';

    Mexico

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{MX}{} = $_;
:>


<:
  $_ = <<'EOT';

    Malaysia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{MY}{} = $_;
:>


<:
  $_ = <<'EOT';

    Nicaragua

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{NI}{} = $_;
:>


<:
  $_ = <<'EOT';

    Netherlands

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{NL}{} = $_;
:>


<:
  $_ = <<'EOT';

    Norway

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{NO}{} = $_;
:>


<:
  $_ = <<'EOT';

    New Zealand

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{NZ}{} = $_;
:>


<:
  $_ = <<'EOT';

    Panama

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{PA}{} = $_;
:>


<:
  $_ = <<'EOT';

    Peru

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{PE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Philippines

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{PH}{} = $_;
:>


<:
  $_ = <<'EOT';

    Pakistan

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{PK}{} = $_;
:>


<:
  $_ = <<'EOT';

    Poland

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{PL}{} = $_;
:>


<:
  $_ = <<'EOT';

    Portugal

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{PT}{} = $_;
:>


<:
  $_ = <<'EOT';

    Romania

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{RO}{} = $_;
:>


<:
  $_ = <<'EOT';

    Russia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{RU}{} = $_;
:>


<:
  $_ = <<'EOT';

    Saudi Arabia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{SA}{} = $_;
:>


<:
  $_ = <<'EOT';

    Sweden

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{SE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Singapore

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{SG}{} = $_;
:>


<:
  $_ = <<'EOT';

    Slovenia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{SI}{} = $_;
:>


<:
  $_ = <<'EOT';

    Slovakia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{SK}{} = $_;
:>


<:
  $_ = <<'EOT';

    El Salvador

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{SV}{} = $_;
:>


<:
  $_ = <<'EOT';

    Thailand

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{TH}{} = $_;
:>


<:
  $_ = <<'EOT';

    Tunisia

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{TN}{} = $_;
:>


<:
  $_ = <<'EOT';

    Turkey

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{TR}{} = $_;
:>


<:
  $_ = <<'EOT';

    Taiwan

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{TW}{} = $_;
:>


<:
  $_ = <<'EOT';

    Ukraine

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{UA}{} = $_;
:>


<:
  $_ = <<'EOT';

    United Kingdom

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{UK}{} = $_;
:>


<:
  $_ = <<'EOT';

    United States

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{US}{} = $_;
:>


<:
  $_ = <<'EOT';

    Uruguay

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{UY}{} = $_;
:>


<:
  $_ = <<'EOT';

    Venezuela

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{VE}{} = $_;
:>


<:
  $_ = <<'EOT';

    Vietnam

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{VN}{} = $_;
:>


<:
  $_ = <<'EOT';

    Serbia and Montenegro

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{YU}{} = $_;
:>


<:
  $_ = <<'EOT';

    South Africa

EOT
  s/^\s+//s;
  s/\s+$//s;
  $countries{ZA}{} = $_;
:>



<:
if ('' ne '') {
    open(GEN, "> countries.def");
    print GEN "#   File generated automatically.  Do not edit!\n";
    close(GEN);
}
:>

<:# line 1 "../english/template/debian/mirrors.wml":>
<:# line 0 "../english/template/debian/languages.wml":>
<:# line 1 "../english/template/debian/languages.wml":>
<:# line 0 "/usr/share/wml/include/sup/path.wml":>


<:
sub relpath {
    my ($from, $to) = @_;
    my (@F, @T, $i, $j, $path);

    $from .= '/' if ($from !~ m|/$|);
    $to   .= '/' if ($to   !~ m|/$|);
    $from = '' if ($from eq './');
    $to   = '' if ($to   eq './');
    $path = '';

    @F = split('/', $from);
    @T = split('/', $to);

    for ($i = 0; $i <= $#F; $i++) {
        last if ($F[$i] ne $T[$i]);
    }

    for ($j = $i; $j <= $#F; $j++) {
        $path .= '../';
    }

    for ($j = $i; $j <= $#T; $j++) {
        $path .= "$T[$j]/";
    }

    return $path;
}

sub canonpath {
    my ($path) = @_;

    $pathL = '';
    while ($path ne $pathL) {
        $pathL = $path;
        $path =~ s|/+|/|g;
        $path =~ s|/\./|/|g;
        $path =~ s|/\.$|/|;
        $path =~ s|^\./||;
        $path =~ s{(^|/)(\.\.)$}{$1$2/};
        $path =~ s{(^|/)([^/]+)(/\.\.)(?=/)}{$2 ne '..' ? $1.'./' : $1.$2.$3}eg;
    }
    $path = './' if $path eq '';
    return $path;
}

sub canonurl {
    my ($url) = @_;

    if ($url =~ m|^(.+?://)(.+)|) {
        $url = $1.&canonpath($2);
    }
    else {
        $url = &canonpath($url);
    }
    return $url;
}
:>


<:# line 2 "../english/template/debian/languages.wml":>
<:# line 3 "../english/template/debian/languages.wml":>
<:# line 0 "../english/template/debian/language_names.wml":>
<:# line 1 "../english/template/debian/language_names.wml":>
<:# line 2 "../english/template/debian/language_names.wml":>



<:
my %ctrans = (
	arabic     => q+Arabic+,
	armenian   => q+Armenian+,
	finnish    => q+Finnish+,
	croatian   => q+Croatian+,
	danish     => q+Danish+,
	dutch      => q+Dutch+,
	english    => q+English+,
	french     => q+French+,
	german     => q+German+,
	italian    => q+Italian+,
	japanese   => q+Japanese+,
	korean     => q+Korean+,
	spanish    => q+Spanish+,
	portuguese => q+Portuguese+,
	portuguese_br => q+Portuguese (Brazilian)+,
	chinese    => q+Chinese+,
	chinese_cn => q+Chinese (China)+,
	chinese_hk => q+Chinese (Hong Kong)+,
	chinese_tw => q+Chinese (Taiwan)+,
	chinese_big5 => q+Chinese (Traditional)+,
	chinese_gb => q+Chinese (Simplified)+,
	swedish    => q+Swedish+,
	polish     => q+Polish+,
	norwegian  => q+Norwegian+,
	turkish    => q+Turkish+,
	russian    => q+Russian+,
	czech	   => q+Czech+,
	esperanto  => q+Esperanto+,
	hungarian  => q+Hungarian+,
	romanian   => q+Romanian+,
	slovak     => q+Slovak+,
	greek      => q+Greek+,
  	catalan    => q+Catalan+,
	indonesian => q+Indonesian+,
	lithuanian => q+Lithuanian+,
	slovene    => q+Slovene+,
	bulgarian  => q+Bulgarian+,
	afrikaans	=> q+Afrikaans+,
	albanian	=> q+Albanian+,
	amharic		=> q+Amharic+,
	azerbaijani	=> q+Azerbaijani+,
	basque		=> q+Basque+,
	belarusian	=> q+Belarusian+,
	bengali		=> q+Bengali+,
	bosnian		=> q+Bosnian+,
	breton		=> q+Breton+,
	cornish		=> q+Cornish+,
	estonian	=> q+Estonian+,
	faeroese	=> q+Faeroese+,
	'gaelic (scots)'=> q+Gaelic (Scots)+,
	gallegan	=> q+Galician+,
	georgian	=> q+Georgian+,
	hebrew		=> q+Hebrew+,
	hindi		=> q+Hindi+,
	icelandic	=> q+Icelandic+,
	interlingua	=> q+Interlingua+,
	irish		=> q+Irish+,
	kalaallisut	=> q+Kalaallisut+,
	kannada		=> q+Kannada+,
	kurdish		=> q+Kurdish+,
	latvian		=> q+Latvian+,
	macedonian	=> q+Macedonian+,
	malay		=> q+Malay+,
	malayalam	=> q+Malayalam+,
	maltese		=> q+Maltese+,
	manx		=> q+Manx+,
	maori		=> q+Maori+,
	mongolian	=> q+Mongolian+,
	"norwegian bokm\xe5l"
			=> q+Norwegian Bokm&aring;l+,
	"norwegian nynorsk"
			=> q+Norwegian Nynorsk+,
	'occitan (post 1500)'=> q+Occitan (post 1500)+,
	persian		=> q+Persian+,
	serbian		=> q+Serbian+,
	slovenian	=> q+Slovenian+,
	tajik		=> q+Tajik+,
	tamil		=> q+Tamil+,
	thai		=> q+Thai+,
	tonga		=> q+Tonga+,
	twi		=> q+Twi+,
	ukrainian	=> q+Ukrainian+,
	vietnamese	=> q+Vietnamese+,
	welsh		=> q+Welsh+,
	xhosa		=> q+Xhosa+,
	yiddish		=> q+Yiddish+,
	zulu		=> q+Zulu+,
);

foreach (keys %ctrans) {
        $trans{$CUR_ISO_LANG}{$_} = $ctrans{$_};
}

if ('' ne '') {
    open(GEN, "> language_names.def");
    print GEN "#   File generated automatically.  Do not edit!\n";
    print GEN "<"."set-var _webwml_langs_=\"\" />\n";
}
:>
<:# line 4 "../english/template/debian/languages.wml":>

<:
   ${perl_var1} = '';

my %langs = (
  english    => "en",
  arabic     => "ar",
  bulgarian  => "bg",
  catalan    => "ca",
  czech	     => "cs",
  danish     => "da",
  german     => "de",
  greek      => "el",
  esperanto  => "eo",
  spanish    => "es",
  finnish    => "fi",
  french     => "fr",
  croatian   => "hr",
  hungarian  => "hu",
  armenian   => "hy",
  indonesian => "id",
  italian    => "it",
  japanese   => "ja",
  korean     => "ko",
  lithuanian => "lt",
  dutch      => "nl",
  norwegian  => "no",
  polish     => "pl",
  portuguese => "pt",
  romanian   => "ro",
  russian    => "ru",
  slovak     => "sk",
  swedish    => "sv",
  slovene    => "sl",
  turkish    => "tr",
  ukrainian  => "uk",
  chinese    => "zh",
);

my %selflang = (
  arabic     => '&#1593;&#1585;&#1576;&#1610;&#1577;',
  armenian   => '&#1344;&#1377;&#1397;&#1381;&#1408;&#1381;&#1398;',
  bulgarian  => '&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080;',
  catalan    => 'catal&agrave;',
  chinese    => '&#20013;&#25991;',
  chinese_cn => '&#31777;&#39636;&#20013;&#25991;',
  chinese_hk => '&#27491;&#39636;&#20013;&#25991;',
  chinese_tw => '&#27491;&#39636;&#20013;&#25991;',
  croatian   => 'hrvatski',
  czech	     => '&#269;esky',
  danish     => 'dansk',
  dutch      => 'Nederlands',
  english    => 'English',
  esperanto  => 'Esperanto',
  finnish    => 'suomi',
  french     => 'fran&ccedil;ais',
  german     => 'Deutsch',
  greek      => '&#917;&#955;&#955;&#951;&#957;&#953;&#954;&#940;',
  hungarian  => 'magyar',
  indonesian => 'Indonesia',
  italian    => 'Italiano',
  japanese   => '&#26085;&#26412;&#35486;',
  korean     => '&#54620;&#44397;&#50612;',
  lithuanian => 'Lietuvi&#371;',
  norwegian  => 'norsk&nbsp;(bokm&aring;l)',
  polish     => 'polski',
  portuguese => 'Portugu&ecirc;s',
  portuguese_br => 'Portugu&ecirc;s',
  romanian   => 'rom&acirc;n&#259;',
  russian    => '&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;',
  slovak     => 'slovensky',
  spanish    => 'espa&ntilde;ol',
  swedish    => 'svenska',
  slovene    => 'sloven&#353;&#269;ina',
  turkish    => 'T&uuml;rk&ccedil;e',
  ukrainian  => '&#1091;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;',
);

my %translit = (
  arabic   => "Arabiya",
  armenian => "hayeren",
  bulgarian=> "B&#601;lgarski",
  chinese  => "Zhongzu", # Not printed due to Chinese-specific code; kept for sort order
  chinese_cn => "Simplified Chinese",
  chinese_hk => "Traditional Chinese",
  chinese_tw => "Traditional Chinese",
  greek    => "Ellinika",
  japanese => "Nihongo",
  korean   => "Hangul", # Not sure. "Hanguk-Mal" (=Spoken Korean)?
  russian  => "Russkij",
  ukrainian => "ukrajins'ka",
);

my %translit2 = (
  czech    => "cesky",
);

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>



<:
   ${perl_var1} = '';

sub langcmp {
  my ($first, $second) = ($a, $b);

  $first = $translit{$sorted_langs{$a}} if defined $translit{$sorted_langs{$a}};
  $second = $translit{$sorted_langs{$b}} if defined $translit{$sorted_langs{$b}};

  $first = $translit2{$sorted_langs{$a}} if defined $translit2{$sorted_langs{$a}};
  $second = $translit2{$sorted_langs{$b}} if defined $translit2{$sorted_langs{$b}};

  if (substr($first,0,1) eq '&')
  {
    $first =~ s/^&/ZZZ&/;
  }
  if (substr($second,0,1) eq '&')
  {
    $second =~ s/^&/ZZZ&/;
  }
  my ($ufirst, $usecond) = (uc($first), uc($second));
  return $ufirst cmp $usecond;
}

sub languages {
  my $str = "";

  $base_url = "";
  $file = "index";
  $cur_lang = "";
  $cwd = $WML_SRC_DIRNAME;
  $full_base_url = &canonpath("$cwd/$base_url");
  $rel_dir = &relpath($full_base_url, $cwd);
  $rel_dir =~ s,/$,,;


  foreach(keys %langs) {
     if ( -f "$base_url/../$_/$rel_dir/$file.wml" ) {
        if ($_ ne lc($cur_lang) or $cur_lang eq "Chinese") {
           push @used_langs, $_;
        }
     }
  }

  if ($rel_dir eq "" && $file eq "sitemap") { # special case for the site map
    $str .= "<!--UdmComment-->\n";
    $str .= "<p>\n";
    $str .= q{This page is also available in the following languages:}."</p>\n";
    $str .= "<p class=\"navpara\">\n";
    foreach (keys %langs) {
      if ($_ ne lc($cur_lang) or $cur_lang eq "Chinese") {
        $sorted_langs{$selflang{$_}} = $_;
      }
    }
    foreach (sort langcmp keys %sorted_langs) {
      $cur_lang = $sorted_langs{$_};
      $tooltip = $trans{$CUR_ISO_LANG}{$cur_lang};
      if ($cur_lang ne "chinese") {
        $str .= " <a href=\"$file.$langs{$cur_lang}.html\" title=\"$tooltip\" hreflang=\"$langs{$cur_lang}\" lang=\"$langs{$cur_lang}\" rel=\"alternate\">$_";
        $str .= "&nbsp;($translit{$cur_lang})" if defined $translit{$cur_lang};
        $str .= "</a>\n";
      } else {
        $str .= " <a href=\"$file.$langs{$cur_lang}-cn.html\" title=\"$tooltip (China)\" hreflang=\"$langs{$cur_lang}-CN\" lang=\"$langs{$cur_lang}-CN\" rel=\"alternate\">$_(&#31616;)</a>\n";
        $str .= " <a href=\"$file.$langs{$cur_lang}-hk.html\" title=\"$tooltip (Hong Kong)\" hreflang=\"$langs{$cur_lang}-HK\" lang=\"$langs{$cur_lang}-HK\" rel=\"alternate\">$_(HK)</a>\n";
        $str .= " <a href=\"$file.$langs{$cur_lang}-tw.html\" title=\"$tooltip (Taiwan)\" hreflang=\"$langs{$cur_lang}-TW\" lang=\"$langs{$cur_lang}-TW\" rel=\"alternate\">$_(&#32321;)</a>\n";
      }
    }
     $str .= "</p>\n";
     $str .= "<!--/UdmComment-->\n";
  }
  elsif (@used_langs) {
     $str .= "<!--UdmComment-->\n";
     $str .= "<p>\n";
     $str .= q{This page is also available in the following languages:}."\n";
     $str .= "</p><p class=\"navpara\">\n";
     foreach (@used_langs) {
        $sorted_langs{$selflang{$_}} = $_;
     }
     foreach (sort langcmp keys %sorted_langs) {
        $cur_lang = $sorted_langs{$_};
        $tooltip = $trans{$CUR_ISO_LANG}{$cur_lang};
        if ($cur_lang ne "chinese") {
           $str .= " <a href=\"$file.$langs{$cur_lang}.html\" title=\"$tooltip\" hreflang=\"$langs{$cur_lang}\" lang=\"$langs{$cur_lang}\" rel=\"alternate\">$_";
           $str .= "&nbsp;($translit{$cur_lang})" if defined $translit{$cur_lang};
           $str .= "</a>\n";
        } else {
           $str .= " <a href=\"$file.$langs{$cur_lang}-cn.html\" title=\"$tooltip (China)\" hreflang=\"$langs{$cur_lang}-CN\" lang=\"$langs{$cur_lang}-CN\" rel=\"alternate\">$_(&#31616;)</a>\n";
           $str .= " <a href=\"$file.$langs{$cur_lang}-hk.html\" title=\"$tooltip (Hong Kong)\" hreflang=\"$langs{$cur_lang}-HK\" lang=\"$langs{$cur_lang}-HK\" rel=\"alternate\">$_(HK)</a>\n";
           $str .= " <a href=\"$file.$langs{$cur_lang}-tw.html\" title=\"$tooltip (Taiwan)\" hreflang=\"$langs{$cur_lang}-TW\" lang=\"$langs{$cur_lang}-TW\" rel=\"alternate\">$_(&#32321;)</a>\n";
        }
     }
     $str .= "\n</p><p>\n";
     $str .= q{How to set <a href=m4_HOME/intro/cn>the default document language</a>};
     $str .= "\n</p>\n<!--/UdmComment-->\n";
  }

  return $str;
}

sub languages_footer {
    if (my $lang_str = languages()) {
        $lang_str .= '<hr>';
    }
}


   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>
<:# line 2 "../english/template/debian/mirrors.wml":>
<:# line 3 "../english/template/debian/mirrors.wml":>
<:# line 4 "../english/template/debian/mirrors.wml":>
<:# line 5 "../english/template/debian/mirrors.wml":>




<:# line 2 "../english/template/debian/navbar.wml":>

<div id="header">
   <div id="upperheader">
   <div id="logo">
  <a href="/"><img src="/logos/openlogo-nd-50.png" width="50" height="61" alt="" ></a>
  <a href="/" rel="start"><img src="/debian.png" width="179" height="61" alt="Debian Project" ></a>
  </div> <!-- end logo -->
<div id="serverselect">

  
<!--UdmComment-->
<form method="get" action="http://cgi.debian.org/cgi-bin/redirect.pl";>
<p>
<:
   ${perl_var1} = '';
 
  my $rootdir = &canonpath('/org/www.debian.org/webwml/persian/');
  my $curdir = &relpath($rootdir, '/org/www.debian.org/webwml/persian');
  my $file = "/".$curdir."/".'index';
  (my $path = &canonpath($file)) =~ s/index$//;
  print "<input type=\"hidden\" name=\"page\" value=\"$path\"    >\n";

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>

Select a server near you
<br>
<select name="site">
<:
   ${perl_var1} = '';

my %mirrors = (
    "Austria" => "at",
    "Australia" => "au",
    "Bulgaria" => "bg",
    "Brazil" => "br",
    "China" => "cn",
    "Germany" => "de",
    "Spain" => "es",
    "France" => "fr",
    "Hong Kong" => "hk",
    "Indonesia" => "id",
    "Japan" => "jp",
    "Netherlands" => "nl",
    "Russia" => "ru",
    "Ukraine" => "ua",
    "United Kingdom" => "uk",
    "United States" => "us",
    "South Africa" => "za",
              );
foreach my $m (sort langcmp keys %mirrors) {
    my $s = " selected" if $mirrors{$m} eq "us";
    $s .= "=\"selected\"" if ($mirrors{$m} eq "us" && "" eq "xhtml");
    
print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';
   


${perl_var1} .= <<"EPERL_EOT";
<option value=\"$mirrors{$m}\"$s>$m</option>\n
EPERL_EOT
${perl_var1} =~ s/\n$//s;


print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


}

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:></select>
<input type="submit" value=" Go " >
</p>
</form>
<!--/UdmComment-->


</div> <!-- end serverselect -->
</div> <!-- end upperheader -->

<!--UdmComment-->
<div id="navbar">
<p class="hidecss"><a href="#inner">Skip Quicknav</a></p>
<ul>
   <li><a href="/about">About Debian</a></li>
   <li><a href="/News/">News</a></li>
   <li><a href="/">Getting Debian</a></li>
   <li><a href="/support">Support</a></li>
   <li><a href="/devel/">Developers'&nbsp;Corner</a></li>
   <li><a href="/sitemap">Site map</a></li>
   <li><a href="http://search.debian.org/";>Search</a></li>
</ul>
</div> <!-- end navbar -->
</div> <!-- end header -->
<!--/UdmComment-->
<:# line 37 "../english/template/debian/basic.wml":>
{#alternate_navbar#}
<div id="outer">
<div id="inner">
{#body#}
<div class="clr"></div>
</div> <!-- end inner -->
<div id="footer">
{#pre_footer#}
<:# line 0 "../english/template/debian/footer.wml":>
<:# line 0 "../english/template/debian/ctime.wml":>
<:# line 1 "../english/template/debian/ctime.wml":>
<:# line 2 "../english/template/debian/ctime.wml":>



<:
   ${perl_var1} = '';

use Time::Local;

@dow = (
                'Sun',
                'Mon',
                'Tue',
                'Wed',
                'Thu',
                'Fri',
                'Sat'
);

@moy = (
                'Jan',
                'Feb',
                'Mar',
                'Apr',
                'May',
                'Jun',
                'Jul',
                'Aug',
                'Sep',
                'Oct',
                'Nov',
                'Dec'
);

@longmoy = (
                'January',
                'February',
                'March',
                'April',
                'May',
                'June',
                'July',
                'August',
                'September',
                'October',
                'November',
                'December'
);

$dateform = 'q{[%]s, [%]s [%]2d [%]02d:[%]02d:[%]02d [%]s [%]04d}, $wday, $mon, $mday, $hour, $min, $sec, q{UTC}, 1900+$year';
$dateform =~ s/\[%\]/%/g;

$newsdateform = 'q{[%]02d [%]s [%]04d}, $mday, $mon_str, $year';
$newsdateform =~ s/\[%\]/%/g;

$spokendateform = 'q{[%]02d [%]s [%]d}, $mday, $mon_str, $year';
$spokendateform =~ s/\[%\]/%/g;

$spokendateform_noyear = 'q{[%]d [%]s}, $mday, $mon_str';
$spokendateform_noyear =~ s/\[%\]/%/g;

$rangeform_samemonth = 'q{[%]d-[%]d [%]s}, $sday, $eday, $smon_str';
$rangeform_samemonth =~ s/\[%\]/%/g;

$rangeform_severalmonths = 'q{[%]d [%]s-[%]d [%]s}, $sday, $smon_str, $eday, $emon_str';
$rangeform_severalmonths =~ s/\[%\]/%/g;


sub webwml_ctime {
	my ($time, $sec, $min, $hour, $mday, $monnr, $year, $wday, $yday, $isdst, $mon);
	if (defined ) {
		$WML_GEN_ISOTIME =~ /(\d+)-(..)-(\d+) (..):(..):(..)/;
		if ($1 <= 31) { # for WML 1.x
			$time = timelocal($6, $5, $4, $1, $2-1, $3);
		} else { # for WML 2.x
			$time = timelocal($6, $5, $4, $3, $2-1, $1);
		}
	}
	else {
		$WML_SRC_ISOTIME =~ /(\d+)-(..)-(\d+) (..):(..):(..)/;
		if ($1 <= 31) { # for WML 1.x
			$time = timelocal($6, $5, $4, $1, $2-1, $3);
		} else { # for WML 2.x
			$time = timelocal($6, $5, $4, $3, $2-1, $1);
		}
	}
	($sec, $min, $hour, $mday, $monnr, $year, $wday, $yday, $isdst) = gmtime($time);
	$wday = $dow[$wday];
	$mon = $moy[$monnr];
	return eval("sprintf($dateform)");
}

sub rdf_ctime {
	$WML_GEN_ISOTIME =~ /(\d+)-(..)-(\d+) (..):(..):(..)/;
	if ($1 <= 31) { # for WML 1.x
		$time = timelocal($6, $5, $4, $1, $2-1, $3);
	} else { # for WML 2.x
		$time = timelocal($6, $5, $4, $3, $2-1, $1);
	}
	my ($sec, $min, $hour, $mday, $monnr, $year, $wday, $yday, $isdst) = gmtime($time);
	$year += 1900;
	$monnr += 1;
	return sprintf( "%04d-%02d-%02dT%02d:%02d:%02d+00:00", $year, $monnr, $mday, $hour, $min, $sec );
}

sub newsdate {
	my ($year, $mon, $mday) = split /-/, $_[0];
	return $_[0] unless $mday;
	return $_[0] if ($year < 1900);

	$mon_str = $moy[$mon - 1];

	return eval("sprintf($newsdateform)");
}

sub englishsuffix {
	my $mday = shift;

	return 'st' if $mday % 10 == 1 && $mday != 11;
	return 'nd' if $mday % 10 == 2 && $mday != 12;
	return 'rd' if $mday % 10 == 3 && $mday != 13;
	return 'th';
}

sub contractcatalan {
	my $str = shift;
	$str =~ s/\bde ([a�����$1/g;
	return $str;
}

sub spokendate {
	my ($year, $mon, $mday) = split /-/, $_[0];
	my $appday;
	return $_[0] unless $mday;
	return $_[0] if ($year < 1900);

	$mon_str = $longmoy[$mon - 1];

	if ($CUR_ISO_LANG eq "en")
	{

		return sprintf("%s %d%s, %d", $mon_str, $mday, &englishsuffix($mday), $year);
	}
	elsif ($CUR_ISO_LANG eq "ca")
	{

		my $date = sprintf("%d de %s de %d", $mday, $mon_str, $year);
		return &contractcatalan($date);
	}
	else
	{
		return eval("sprintf($spokendateform)");
	}
}

sub spokendate_noyear {
	my (undef, $mon, $mday) = split /-/, $_[0];
	my $appday;

	$mon_str = $longmoy[$mon - 1];

	if ($CUR_ISO_LANG eq "en")
	{

		return sprintf("%s %d%s", $mon_str, $mday, &englishsuffix($mday));
	}
	elsif ($CUR_ISO_LANG eq "ca")
	{

		my $date = sprintf("%d de %s", $mday, $mon_str);
		return &contractcatalan($date);
	}
	else
	{
		return eval("sprintf($spokendateform_noyear)");
	}
}

sub daterange {
	my (undef, $smon, $sday) = split /-/, $_[0]; # Start date
	my (undef, $emon, $eday) = split /-/, $_[1]; # End date

	my $samemonth = $smon == $emon;

	if ($samemonth && $sday == $eday)
	{
		return spokendate_noyear($_[0]); # Single day
	}

	$smon_str = $longmoy[$smon - 1];
	$emon_str = $longmoy[$emon - 1];

	if ($CUR_ISO_LANG eq "en")
	{

		return sprintf("%s %d%s - %d%s", $smon_str,
		               $sday, &englishsuffix($sday),
		               $eday, &englishsuffix($eday))
			if $samemonth;

		return sprintf("%s %d%s - %s %d%s", $smon_str,
		               $sday, &englishsuffix($sday), $emon_str,
		               $eday, &englishsuffix($eday))
	}
	elsif ($CUR_ISO_LANG eq "ca")
	{

		my $str;
		$str = sprintf("%d-%d de %s", $sday, $eday, $smon_str)
			if $samemonth;
		$str = sprintf("%d de %s-%d de %s", $sday, $smon_str, $eday, $emon_str)
			if !$samemonth;

		return &contractcatalan($str);
	}
	else
	{
		return $samemonth ?
			eval("sprintf($rangeform_samemonth)") :
			eval("sprintf($rangeform_severalmonths)");
	}
}

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>
<:# line 1 "../english/template/debian/footer.wml":>
<:# line 2 "../english/template/debian/footer.wml":>










<div id="fineprint">

  <p>To report a problem with the web site, e-mail <a href="mailto:debian-www@lists.debian.org";>debian-www@lists.debian.org</a>.  For other contact information, see the Debian <a href="m4_HOME/contact">contact page</a>.</p>

<p>
Last Modified: <:= webwml_ctime () :>

  <br>
  Copyright &copy; <:
   ${perl_var1} = '';
$file = $WML_SRC_DIRNAME."/".$WML_SRC_FILENAME;if ($file =~ m,/(\d{4})/,) {$first = $1;} else {$first = "1997";}if (defined ) {$timevar = $WML_GEN_ISOTIME;} else {$timevar = $WML_SRC_ISOTIME;}$timevar =~ /^(\d+)-(..)-(\d+)/;if ($1 <= 31) { # for WML 1.x
  $second = $3;
} else { # for WML 2.x
  $second = $1;
}


if ($first eq $second) {
  print $first;
} else {
  print $first."-".$second;
}

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>
 <a href="http://www.spi-inc.org/";>SPI</a>; See <a href="m4_HOME/license" rel="copyright">license terms</a><br>
  Debian is a registered trademark of Software in the Public Interest, Inc.

</p>
</div>
<:# line 46 "../english/template/debian/basic.wml":>
{#post_footer#}
</div> <!-- end footer -->
</div> <!-- end outer -->
</body>
:}
</html>

{#body#:
<:# line 18 "../english/template/debian/mainpage.wml":>
<:# line 0 "../english/template/debian/links.tags.wml":>
<:# line 1 "../english/template/debian/links.tags.wml":>













































<:# line 19 "../english/template/debian/mainpage.wml":>
<:# line 20 "../english/template/debian/mainpage.wml":>



<div id="leftcol">
<!--UdmComment-->

    <ul>
    <li><a href="/about">About</a>
      <ul>
      <li><a href="/social_contract">Social&nbsp;Contract</a></li>
      <li><a href="/intro/free">Free&nbsp;Software</a></li>
      <li><a href="/partners/">Partners</a></li>
      <li><a href="/donations">Donations</a></li>
      <li><a href="/contact">Contact&nbsp;Us</a></li>
      </ul>
    </li>
    <li><a href="/News/">News</a>
      <ul>
      <li><a href="/News/weekly/">Weekly&nbsp;News</a></li>
      <li><a href="/events/">Events</a></li>
      </ul>
    </li>

    <li><a href="/">Getting Debian</a>
      <ul>
      <li><a href="CD/vendors/">CD vendors</a></li>
      <li><a href="CD/">CD ISO images</a></li>
      <li><a href="/netinst">Network install</a></li>
      <li><a href="/pre-installed">Pre-installed</a></li>
      </ul>
    </li>
    <li><a href="/packages">Debian&nbsp;Packages</a></li>

    <li><a href="/">Documentation</a>
      <ul>
      <li><a href="/releases/">Release&nbsp;Info</a></li>
      <li><a href="/releases/stable/installmanual">Installation&nbsp;manual</a></li>
      <li><a href="/books">Debian&nbsp;Books</a></li>
      </ul>
    </li>
    
    <li><a href="/support">Support</a>
      <ul>
      <li><a href="/international/">Debian&nbsp;International</a></li>
      <li><a href="/security/">Security&nbsp;Information</a></li>
      <li><a href="/">Bug reports</a></li>
      <li><a href="MailingLists/">Mailing&nbsp;Lists</a></li>
      <li><a href="http://lists.debian.org/";>Mailing&nbsp;List&nbsp;Archives</a></li>
      <li><a href="/ports/">Ports/Architectures</a></li>
      </ul>
    </li>

    <li><a href="/">Miscellaneous</a></li>

    <li><a href="/intro/help">Help Debian</a></li>

    <li><a href="/devel/">Developers'&nbsp;Corner</a></li>

    <li><a href="/sitemap">Site map</a></li>
    <li><a href="http://search.debian.org/";>Search</a></li>
    </ul>

    <form method="get" action="http://search.debian.org/";>
    <p>
    <input type="text" name="q" size="12" >
    </p>
    </form>

    <p>
    <a href="/sponsor.html"><img src="sponsor_img.jpg"  alt="Visit the site sponsor" width="102" height="60" ></a>
    </p>
    <p>
    <a href="http://validator.w3.org/check/referer";><img src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!" width="88" height="31"   ></a>
    </p>
    <p>
    <a href="http://jigsaw.w3.org/css-validator/check/referer";>
    <img src="http://jigsaw.w3.org/css-validator/images/vcss";
        alt="Valid CSS!" width="88" height="31" >
    </a>    
    </p>
<!--/UdmComment-->
</div> <!-- end leftcol -->
<div id="maincol">

{#check_trans#}

{#mainbody#}

</div> <!-- end maincol -->

{#pre_footer#:
  <hr class ="hidecss"  >
  <:= languages_footer() :>
<!--UdmComment-->
:#pre_footer#}
{#post_footer#:
<!--/UdmComment-->
:#post_footer#}
{#mainbody#:
<:# line 1 "index.wml":>
<:# line 0 "../english/template/debian/recent_list.wml":>
<:# line 1 "../english/template/debian/recent_list.wml":>
<:# line 2 "../english/template/debian/recent_list.wml":>
<:# line 0 "../english/template/debian/legal_tags.wml":>
<:# line 1 "../english/template/debian/legal_tags.wml":>
<:# line 2 "../english/template/debian/legal_tags.wml":>














<:# line 3 "../english/template/debian/recent_list.wml":>
<:# line 0 "../english/template/debian/openrecode.wml":>

<:
sub openrecode {
    local *FILE;
    my $path;
    if ($CUR_ISO_LANG eq 'ja')
    {
        while ($path = shift) {
            if (-e $path) {
                open(FILE,"/usr/bin/kcc -e $path |");
                return *FILE;
            }
        }
        return undef;
    }
    while ($path = shift) {
        if (-e $path) {
            open(FILE,"< $path");
            return *FILE;
        }
    }
    return undef;
}
:>
<:# line 4 "../english/template/debian/recent_list.wml":>

















<:
   ${perl_var1} = '';



my ($listhead, $listfoot, $elemhead, $elemdate, $elemfoot, $elememptyfoot, $elemrealfoot);
my $is_events = 0;
my $is_by_date = 0;

sub get_recent_list {
    $is_events = 0;
    $is_by_date = 0;

    my ($time, $minnum, $eng_dir, $format, $match) = @_;
    my $rel_path = ($time =~ s|^(?:\./)?([[:alpha:]]+)/?||) ? $1 : '';
    $rel_path .= '/' unless $rel_path eq '';
    my $open_by_path = 0;
    my ($year, $since_year, $since_date);
    unless (($time eq '.')
	    || (($time =~ /\d{4}/) && !$minnum)) {
	$year = $time;
	$since_year = $year;
	$since_date = timegm(0, 0, 0, 1, 0, $year) if $year =~ /\d+/;
	if ($format =~ /bydate/) {
	    $year = 2007 unless $year =~ /\d{4}/;
	    $since_date = parse_time($time);
	    $since_year = (gmtime($since_date))[5] + 1900;
	    if ($since_year > $year) {
		warn "since_year > year ($since_year > $year)\n";
	    }
	    $is_by_date = 1;
	}
	warn "don't know, what to do: year=$year time=$time\n"
	    unless $since_date =~ /\d+/;
    } else { $open_by_path = 1; }



    if ($format =~ order) {
	$listhead = '<ol>';
	$listfoot = '</ol>';
	$elemhead = '<li>';
	$elemfoot = '- ';
	$elememptyfoot = '</li>';
	$elemrealfoot = '</li>';
    } elsif ($format =~ bullet) {
	$listhead = '<ul>';
	$listfoot = '</ul>';
	$elemhead = '<li>';
	$elemfoot = '- ';
	$elememptyfoot = '</li>';
	$elemrealfoot = '</li>';
    } elsif ($format =~ list) {
	$listhead = '<dl>';
	$listhead = '<dl compact>' if $format eq "cdeflist";
	$listfoot = '</dl>';
	$elemhead = '<dt>';
	$elemfoot = '</dt><dd>';
	$elememptyfoot = '</dt>';
	$elemrealfoot = '</dd>';
    } elsif ($format =~ table) {
	$listhead = '<table>';
	$listfoot = '</table>';
	$elemhead = '<tr><td>';
	$elemdate = '</td><td>';
	$elemfoot = '';
	$elememptyfoot = '&nbsp;</td></tr>';
	$elemrealfoot = '</td></tr>';
    } else {
	$listhead = '';
	$listfoot = '';
	$elemhead = '';
	$elemfoot = '- ';
	$elememptyfoot = '';
	$elemrealfoot = '';
    }


    my @files;

    my @years;
    if ( $open_by_path ) { push @years, $time; }
    else { foreach (($since_year-1) .. $year) { push @years, $_; } }
    for my $act_year (@years) {
	opendir DIR, "$eng_dir/$rel_path$act_year"
	    or do {
		next;
	    };
	my @new_files = grep { /^$match.wml$/
				   && -f "$eng_dir/$rel_path$act_year/$_"
				   && ($_="$rel_path$act_year/$_")
			       } readdir(DIR);
	closedir DIR;
	@files = ( @files, @new_files );
    }

    @files = sort {
	($a =~ m,(?:^|/)dsa-(\d+),)[0] <=> ($b =~ m,(?:^|/)dsa-(\d+),)[0] || $a cmp $b
    } @files;


    my $str = grab_titles( $since_date, $minnum,
			   $eng_dir, $format, $match , @files);

    if ( !$is_events ) { # events already have their head and foot
 	$str = "$listhead$str$listfoot";
    }

    return $str;
}

sub grab_titles {
    my ($since_date, $minnum, $eng_dir,
	$format, $match, @files) = @_;
    my ($over, $current, $str);
    my (%str, %count, %over, %current);

    my $count = 0;
    foreach $file (@files) {
	(my $trans_title = $file) =~ s/wml/title/;
	$count++;
	my $str1 = "";
	my @str1 = (); # for bydate
	my $base = $1 if ($file =~ m|^([[:alpha:]./]*(\d{4})?/(?:$match)).wml|);

	my $fh = openrecode($file, $trans_title, "$eng_dir/$file")
	    or die "couldn't open $eng_dir/$file: $!\n";
	my $content;
	
	{
	    local $/;
	    $content = <$fh>;
	}
	
	close $fh;

	my $event = '';
	if ($WML_SRC_DIRNAME =~ /events/) { # shouldn't waste time if it's not events
	    $is_events = 1;
	    if ($base =~ /-report$/) { next; }
	    
		if ($content =~ /^#use wml::debian::past_event$/m) {
		    $event = "past";
		} elsif ($content =~ /^#use wml::debian::event$/m) {
		    $event = "current";
		}
	    
	 }

	my ($title, $date, $rdate, $rvdate, $hdate, $desc, $status,
	    $where, $moreinfo, $startdate, $enddate, $repfile, $just);
	my (@hdate, @rdate, @isodate) = ();
	
	if ($content =~ /^<define-tag pagetitle>\s*(.*?)\s*<\/define-tag>$/ms) {
	    $title = qq/$1/; }      # all
	if ($content =~ /^<define-tag release_date>(.*?)<\/define-tag>$/ms) {
	    $date = qq/$1/; }       # News
	if ($content =~ /^<define-tag where>(.*?)<\/define-tag>$/ms) {
	    $where = qq/$1/; }      # events
	if ($content =~ /^<define-tag date>(.*?)<\/define-tag>$/ms) {
	    $date = qq/$1/; }       # events
	if ($content =~ /^<define-tag description>(.*?)<\/define-tag>$/ms) {
	    $desc = qq/$1/; }       # security
	if ($content =~ /^<define-tag justification>\s*(.*?)\s*<\/define-tag>$/ms) {
	    $just = qq/$1/; }      # licenses
	if ($content =~ /^<define-tag moreinfo>(?:(.*?<\/p>)|(.*?)<\/define-tag>)$/ms) {
	    $moreinfo = qq/$1/; }   # dsa-long.XX.rdf
	if ($content =~ /^<define-tag status>(.*?)<\/define-tag>$/ms) {
	    $status = qq/$1/; }     # vote
	if ($content =~ /^<define-tag startdate>(.*?)<\/define-tag>$/ms) {
	    $startdate = qq/$1/; }	# startdate (events)
	if ($content =~ /^<define-tag enddate>(.*?)<\/define-tag>$/ms) {
	    $enddate = $1; }        # enddate (events)
	my ($shortfile) = $file =~ /^(?:.*\/)?(.*)\.wml$/;
	if ($content =~ /<a\s+href="($shortfile-report)"\s*>/ms) {
	    $repfile = $1; }        # Report (events)
	if ($content =~ /<report\s+href="([^"]*)\s*"\/?>/ms) { #"
            $repfile = $1; }        # Report (events)
	
	$hdate = $date || $startdate;
	if ($startdate && $enddate) { # Convert date range into printable string
	    $date = &daterange($startdate, $enddate);
	}
	if ($title && $date && $where) { # for events/
	    if ($date !~ /^[\d-\s]+$/ ) { # old events dates
		$hdate = "";
	    }
	    my $report = ($repfile)
		? " [<a href=\"$repfile\">Report</a>]"
		: '';
	    $str1 = "$elemhead<tt>[$date]</tt>$elemdate <strong><a href=\"$base\">$title</a></strong>, $elemfoot$where$report<br>$elemrealfoot\n";
	}
	elsif ($desc) { # for security/
	    open DATAFILE, "$eng_dir/$base.data"
		or do {
		    warn "couldn't open $eng_dir/$base.data: $!\n";
		    next;
		};
	    
	     foreach my $l (<DATAFILE>) {
		 if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/)
		 { $title = qq/$1/; }
		 elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>$/)
		 { $rdate = qq/$1/; }
	     }
	    
	    close DATAFILE;

	    @hdate = split ',', $rdate;
	    $hdate = $hdate[0];
	    $isodate = sprintf("%04d-%02d-%02d", split '-', $hdate[-1]);
	    $rdate = newsdate($hdate);
	    @rdate = map( newsdate($_), @hdate );
	    @isodate = map( sprintf("%04d-%02d-%02d", split '-', $_), @hdate );
	    $title =~ s/(DSA-\d{3,})-\d{1}/$1/; # strip off the revision in the DSA number
	    (my $rdfbase = $base) =~ s/^security\///;
	    if ($format =~ /\brdf\b/) {
		foreach (@isodate)
		{
		    push @str1, "\n"
			."<item rdf:about=\"http://www.debian.org";
			."/security/$rdfbase\">\n"
			."  <title>$title</title>\n"
			."  <link>http://www.debian.org/";
			."security/$rdfbase</link>\n"
			."  <description>\n"
			."    $desc\n"
			."  </description>\n"
			."  <dc:date>$_</dc:date>\n"
			."</item>\n";
                }
		$str1 = $str1[0];
	    } elsif ($format =~ /\brdflong\b/) {
                
                $moreinfo =~ s/(&[^#;]+;)/&decodehtmlentity($1)/ge;
                $moreinfo =~ s#<email "?([^>"]+)"?>#<a href="mailto:$1";>$1</a>#g;
                $moreinfo =~ s#<url "([^>]+)">#<a href="$1">$1</a>#g;
                $moreinfo =~ s/</&lt;/g;
                $moreinfo =~ s/>/&gt;/g;
                $moreinfo =~ s/"/&quot;/g; #"
                $moreinfo =~ s/\\\n//g;
                
		foreach (@isodate)
		{
		    push @str1, "\n"
			."<item rdf:about=\"http://www.debian.org";
			."/security/$rdfbase\">\n"
			."  <title>$title - $desc</title>\n"
			."  <link>http://www.debian.org";
			."/security/$rdfbase</link>\n"
			."  <description>\n"
			."    $moreinfo\n"
			."  </description>\n"
			."  <dc:date>$_</dc:date>\n"
			."</item>\n";
		}
	        $str1 = @str1[0];
	    } elsif ($format =~ /\brdfseq/){
		foreach (@isodate)
		{

		    push @str1, "<rdf:li resource=\"http://www.debian.org";
                        ."/security/$rdfbase\" />\n";

		}
		$str1 = $str1[0];
	    } else {
		foreach( @rdate ) {
		    push @str1, "$elemhead<tt>[$_]</tt> "
			."<strong><a href=\"$base\">$title</a></strong> "
			."$elemfoot$desc NEW_REVISION<br>$elemrealfoot\n";
		}
		$str1 = $str1[0];
	    }
	}
        elsif ($just) { # for licenses/
	    open DATAFILE, "$eng_dir/$base.data"
		or do {
		    warn "couldn't open $eng_dir/$base.data: $!\n";
		    next;
		};
	    
             my ( $free, $l_name );
	     foreach my $l (<DATAFILE>) {
		 if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/)
		 { $title = qq/$1/; }
		 if ($l =~ /^<define-tag license-name>(.*)<\/define-tag>$/)
		 { $l_name = qq/$1/; }
		 elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>$/)
		 { $rdate = qq/$1/; }
		 elsif ($l =~ /^<define-tag isfree>(.*)<\/define-tag>$/)
		 { $free = qq/$1/; }
	     }
	    
	    close DATAFILE;
            $rdate = newsdate($rdate);
            if ($free eq 'yes') {
                $free = '<font color="#00FF00">free</font>';
            } elsif ($free eq 'no') {
                $free = '<font color="#FF0000">non-free</font>';
            } elsif ($free eq 'non-dist') {
                $free = '<font color="#FF0000">not redistributable</font>';
            }
            $str1 = "$elemhead<tt>[$rdate]</tt> "
                ."<strong><a href=\"$base\">$title</a></strong>$elemfoot "
                ."$l_name &ndash; $free<br>$elemrealfoot\n";
        }
	elsif ($title && $date && !$is_events) { # for News/ and not events/
	    $date = newsdate($date);
	    $str1 = "$elemhead<tt>[$date]</tt> "
		."<strong><a href=\"$base\">$title</a></strong><br>"
		."$elemrealfoot\n";
	}

	elsif ($title && $status) { # for vote/
	    $str1 = "$elemhead<a href=\"$base\">$title</a> &mdash; ";
	    if ( $status eq "P" ) { $str1 .= "proposed"; }
	    elsif ( $status eq "D" ) { $str1 .= "in discussion"; }
	    elsif ( $status eq "V" ) { $str1 .= "voting open"; }
	    elsif ( $status eq "F" ) { $str1 .= "finished"; }
	    elsif ( $status eq "W" ) { $str1 .= "withdrawn"; }
	    else { $str1 .= "$status"; }
	    $str1 .= "<br>$elememptyfoot\n";
	}

	if (!$is_by_date || ($hdate eq "")) {
	    $hdate = $count;
	} else {
	    $hdate = iso2stamp( $hdate );
	    @hdate = map(iso2stamp($_), @hdate);
	}

	if ($event ne "") { # this file was for an event
	    if ( $event eq "past" ) {
		$over{$hdate} .= $str1;
		$count{$hdate}++;
	    }
	    elsif ( $event eq "current" ) {
		$current{$hdate} .= $str1;
		$count{$hdate}++;
	    }
	} else {
	    unless ( ($#hdate > 0) && $is_by_date ) {
		($str{$hdate} = $str1 . $str{$hdate}) =~ s/NEW_REVISION//;
		$count{$hdate}++;
	    } else {
		if ( $#hdate != $#str1 ) { warn '$#hdate != $#str1\n'; }
		($str{$hdate[0]} = $str1[0] . $str{$hdate[0]}) =~ s/NEW_REVISION//;
		for (1..$#str1) {
		    ($str{$hdate[$_]} = $str1[$_] . $str{$hdate[$_]})
			=~ s,NEW_REVISION,(new revision),;
		    $count{$hdate[$_]}++;
		}
	    }
	}
    } # for each file

    if ($is_events) {
	$str = "";
	$over = pick_recent( $since_date, $minnum, \%over, \%count);
	$current = pick_recent( $since_date, $minnum, \%current, \%count, "reverse:quietnull" );
	if ($current) {
	    $str = "<h2>Future events</h2>\n$listhead\n$current\n$listfoot\n";
	}
	if ($over) {
	    $str .= "<h2>Past events</h2>\n$listhead\n$over\n$listfoot\n";
	}
    } else {
	$str = pick_recent( $since_date, $minnum, \%str, \%count);
    }

return $str;
}

sub pick_recent {
    my ($since_date, $minnum, $str, $str_count, $sort) = @_;
    my $out_str = '';
    my $count = 0;

    my @keys;
    if (defined($sort) && ($sort =~ /reverse/)) {
	@keys = sort { $a <=> $b } keys %$str;
    } else {
	@keys = sort { $b <=> $a } keys %$str;
    }
    foreach (@keys) {
	if ($count >= $minnum) {
	    if( (!$is_by_date && $minnum)
		|| (($is_by_date || !$minnum)
		    && ($_ < $since_date)) ) {
		last;
	    }
	}
	$out_str .= ${$str}{$_};
	$count += ${$str_count}{$_};
    }

    if (($count eq 0) && ($sort !~ /quietnull/)) {
	$out_str = "No items for this year.\n";
	$out_str = $elemhead . $out_str . $elemrealfoot if $is_events;
    }

    return $out_str;
}

sub parse_time {
    my $time_str = shift;
    my $year = (gmtime())[5] + 1900;
    my $time = time();
    my $res;

    for ($time_str) {
	/\d{4}/ && do {
	    $res = timegm(0,0,0,1,0,$year);
	    last;
	};

	/(\d+)d/ && do {
	    $res = $time - 86400 * $1;
	    last;
	};

	/(\d+)w/ && do {
	    $res = $time - 86400 * 7 * $1;
	    last;
	};

	/(\d+)m/ && do {
	    $res = $time - 86400 * 30 * $1;
	    last;
	};

	/(\d+)y/ && do {
	    my $ryear = $year - $1 + 1; # the actual year count as a whole one
	    $res = timegm(0,0,0,1,0,$ryear); # 01.01.$ryear 00:00:00
	    last;
	};

    }

    return $res;
}

sub iso2stamp {
    my $time = shift;

    if ($time =~ /undated/) {
	return 0;
    }
    my ($year, $month, $day) = ($time =~ /(\d{4})-(\d{1,2})-(\d{1,2})/);
    unless ($year && $month && $day) { warn "not an ISO date: $time\n"; }

    return timegm( 59, 59, 23, $day, $month-1, $year);
}

sub decodehtmlentity {
  my $ent = shift;

  @entities = (
    '&nbsp;', '&iexcl;', '&cent;', '&pound;', '&curren;', '&yen;',
    '&brvbar;', '&sect;', '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;',
    '&shy;', '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;', '&sup3;',
    '&acute;', '&micro;', '&para;', '&middot;', '&cedil;', '&sup1;',
    '&ordm;', '&raquo;', '&frac14;', '&frac12;', '&frac34;', '&iquest;',
    '&Agrave;', '&Aacute;', '&Acirc;', '&Atilde;', '&Auml;', '&Aring;',
    '&AElig;', '&Ccedil;', '&Egrave;', '&Eacute;', '&Ecirc;', '&Euml;',
    '&Igrave;', '&Iacute;', '&Icirc;', '&Iuml;', '&ETH;', '&Ntilde;',
    '&Ograve;', '&Oacute;', '&Ocirc;', '&Otilde;', '&Ouml;', '&times;',
    '&Oslash;', '&Ugrave;', '&Uacute;', '&Ucirc;', '&Uuml;', '&Yacute;',
    '&THORN;', '&szlig;', '&agrave;', '&aacute;', '&acirc;', '&atilde;',
    '&auml;', '&aring;', '&aelig;', '&ccedil;', '&egrave;', '&eacute;',
    '&ecirc;', '&euml;', '&igrave;', '&iacute;', '&icirc;', '&iuml;',
    '&eth;', '&ntilde;', '&ograve;', '&oacute;', '&ocirc;', '&otilde;',
    '&ouml;', '&divide;', '&oslash;', '&ugrave;', '&uacute;', '&ucirc;',
    '&uuml;', '&yacute;', '&thorn;', '&yuml;'
  );

  for (my $i = 0; $i < $#entities; ++ $i)
  {
    return "&#".($i+160).";" if $entities[$i] eq $ent;
  }

  %entities = (
    '&OElig;' => '&#338;',
    '&oelig;' => '&#339;',
    '&Scaron;' => '&#352;',
    '&scaron;' => '&#353;',
    '&Yuml;' => '&#376;',
    '&circ;' => '&#710;',
    '&tilde;' => '&#732;',
    '&ensp;' => '&#8194;',
    '&emsp;' => '&#8195;',
    '&thinsp;' => '&#8201;',
    '&zwnj;' => '&#8204;',
    '&zwj;' => '&#8205;',
    '&lrm;' => '&#8206;',
    '&rlm;' => '&#8207;',
    '&ndash;' => '&#8211;',
    '&mdash;' => '&#8212;',
    '&lsquo;' => '&#8216;',
    '&rsquo;' => '&#8217;',
    '&sbquo;' => '&#8218;',
    '&ldquo;' => '&#8220;',
    '&rdquo;' => '&#8221;',
    '&bdquo;' => '&#8222;',
    '&dagger;' => '&#8224;',
    '&Dagger;' => '&#8225;',
    '&permil;' => '&#8240;',
    '&lsaquo;' => '&#8249;',
    '&rsaquo;' => '&#8250;',
    '&euro;' => '&#8364;',
    '&fnof;' => '&#402;',
    '&Alpha;' => '&#913;',
    '&Beta;' => '&#914;',
    '&Gamma;' => '&#915;',
    '&Delta;' => '&#916;',
    '&Epsilon;' => '&#917;',
    '&Zeta;' => '&#918;',
    '&Eta;' => '&#919;',
    '&Theta;' => '&#920;',
    '&Iota;' => '&#921;',
    '&Kappa;' => '&#922;',
    '&Lambda;' => '&#923;',
    '&Mu;' => '&#924;',
    '&Nu;' => '&#925;',
    '&Xi;' => '&#926;',
    '&Omicron;' => '&#927;',
    '&Pi;' => '&#928;',
    '&Rho;' => '&#929;',
    '&Sigma;' => '&#931;',
    '&Tau;' => '&#932;',
    '&Upsilon;' => '&#933;',
    '&Phi;' => '&#934;',
    '&Chi;' => '&#935;',
    '&Psi;' => '&#936;',
    '&Omega;' => '&#937;',
    '&alpha;' => '&#945;',
    '&beta;' => '&#946;',
    '&gamma;' => '&#947;',
    '&delta;' => '&#948;',
    '&epsilon;' => '&#949;',
    '&zeta;' => '&#950;',
    '&eta;' => '&#951;',
    '&theta;' => '&#952;',
    '&iota;' => '&#953;',
    '&kappa;' => '&#954;',
    '&lambda;' => '&#955;',
    '&mu;' => '&#956;',
    '&nu;' => '&#957;',
    '&xi;' => '&#958;',
    '&omicron;' => '&#959;',
    '&pi;' => '&#960;',
    '&rho;' => '&#961;',
    '&sigmaf;' => '&#962;',
    '&sigma;' => '&#963;',
    '&tau;' => '&#964;',
    '&upsilon;' => '&#965;',
    '&phi;' => '&#966;',
    '&chi;' => '&#967;',
    '&psi;' => '&#968;',
    '&omega;' => '&#969;',
    '&thetasym;' => '&#977;',
    '&upsih;' => '&#978;',
    '&piv;' => '&#982;',
    '&bull;' => '&#8226;',
    '&hellip;' => '&#8230;',
    '&prime;' => '&#8242;',
    '&Prime;' => '&#8243;',
    '&oline;' => '&#8254;',
    '&frasl;' => '&#8260;',
    '&weierp;' => '&#8472;',
    '&image;' => '&#8465;',
    '&real;' => '&#8476;',
    '&trade;' => '&#8482;',
    '&alefsym;' => '&#8501;',
    '&larr;' => '&#8592;',
    '&uarr;' => '&#8593;',
    '&rarr;' => '&#8594;',
    '&darr;' => '&#8595;',
    '&harr;' => '&#8596;',
    '&crarr;' => '&#8629;',
    '&lArr;' => '&#8656;',
    '&uArr;' => '&#8657;',
    '&rArr;' => '&#8658;',
    '&dArr;' => '&#8659;',
    '&hArr;' => '&#8660;',
    '&forall;' => '&#8704;',
    '&part;' => '&#8706;',
    '&exist;' => '&#8707;',
    '&empty;' => '&#8709;',
    '&nabla;' => '&#8711;',
    '&isin;' => '&#8712;',
    '&notin;' => '&#8713;',
    '&ni;' => '&#8715;',
    '&prod;' => '&#8719;',
    '&sum;' => '&#8721;',
    '&minus;' => '&#8722;',
    '&lowast;' => '&#8727;',
    '&radic;' => '&#8730;',
    '&prop;' => '&#8733;',
    '&infin;' => '&#8734;',
    '&ang;' => '&#8736;',
    '&and;' => '&#8743;',
    '&or;' => '&#8744;',
    '&cap;' => '&#8745;',
    '&cup;' => '&#8746;',
    '&int;' => '&#8747;',
    '&there4;' => '&#8756;',
    '&sim;' => '&#8764;',
    '&cong;' => '&#8773;',
    '&asymp;' => '&#8776;',
    '&ne;' => '&#8800;',
    '&equiv;' => '&#8801;',
    '&le;' => '&#8804;',
    '&ge;' => '&#8805;',
    '&sub;' => '&#8834;',
    '&sup;' => '&#8835;',
    '&nsub;' => '&#8836;',
    '&sube;' => '&#8838;',
    '&supe;' => '&#8839;',
    '&oplus;' => '&#8853;',
    '&otimes;' => '&#8855;',
    '&perp;' => '&#8869;',
    '&sdot;' => '&#8901;',
    '&lceil;' => '&#8968;',
    '&rceil;' => '&#8969;',
    '&lfloor;' => '&#8970;',
    '&rfloor;' => '&#8971;',
    '&lang;' => '&#9001;',
    '&rang;' => '&#9002;',
    '&loz;' => '&#9674;',
    '&spades;' => '&#9824;',
    '&clubs;' => '&#9827;',
    '&hearts;' => '&#9829;',
    '&diams;' => '&#9830;',
  );
  return $entities{$ent} if defined $entities{$ent};
  return '?'; # Say what?
}

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>

<:# line 2 "index.wml":>
<:# line 0 "./../english/releases/info":>
<:# line 1 "./../english/releases/info":>
<:# line 2 "./../english/releases/info":>


























<:# line 3 "index.wml":>
<:# line 0 "../english/template/debian/translation-check.wml":>
<:# line 1 "../english/template/debian/translation-check.wml":>
<:# line 2 "../english/template/debian/translation-check.wml":>
<:# line 3 "../english/template/debian/translation-check.wml":>








<:
   ${perl_var1} = '';



sub check_translation {

my ($translation, $file, $original, $mindelta, $maxdelta) = @_;

my $parents, $level, $relative_dir, $output;
my @relative_dir = ();

$max_versions = $maxdelta || 5;

$min_versions = $mindelta || 1;

$debug = 0;

$original_lang = $original ? $langs{$original} : "en";
$link = $file;
$link =~ s/\.(wml|src)$//;
$link .= ".$original_lang.html";

$original_dir = $original ? "$original" : "english";

@full_directory_name = split '/', $WML_SRC_DIRNAME;
$dir = pop @full_directory_name;
while ($dir) {
	if ($dir ne "webwml" && $dir ne "cdimage") { $level++; } else { last; }
	push @relative_dir, $dir;
	$dir = pop @full_directory_name;
}
for (; $level > 0; $level--) { $parents .= "../"; }
pop @relative_dir;
@relative_dir = reverse @relative_dir;
$relative_dir = join '/', @relative_dir;

if (open (CVS_ENTRY,"<$parents/$original_dir/$relative_dir/CVS/Entries")) {
    while (<CVS_ENTRY>) {
	($version) = $_ =~ m,/\Q$file\E/([\d\.]*),;
	last if $version;
    }
    close CVS_ENTRY;
} else {
    $version = "1.1";
}
if ($version ne "")
{
	print ${file} . "'s original CVS revision is: $version\n"
		if ($debug >= 1);

	@version_numbers = split /\./,$version;
	$major_number = @version_numbers[0];
	$last_number = pop @version_numbers;
	die "Invalid CVS revision for $file: $version\n"
		unless ($major_number =~ /\d+/ && $last_number =~ /\d+/);

	@translation_numbers = split /\./,$translation;
	$major_translated_number = @translation_numbers[0];
	$last_translated_number = pop @translation_numbers;
	die "Invalid translation revision for $file: $translation\n"
		unless ($major_translated_number =~ /\d+/ && $last_translated_number =~ /\d+/);
}


print "Comparing original $version to translation version $translation\n" if ($debug >= 1);


$output = '';
if ($version eq "") {
	$output = qq(
  <em>Note:</em> The original document of this translation no longer exists.
)
}
elsif ( $major_number != $major_translated_number ) {
	$output = qq(<strong>
  Warning! This translation is too out of date, please see the <a href="$link">original</a>.
</strong>)
}
elsif ( $last_number - $last_translated_number >= $max_versions ) {
	$output = qq(<strong>
  Warning! This translation is too out of date, please see the <a href="$link">original</a>.
</strong>)
}
elsif ( $last_number - $last_translated_number >= $min_versions ) {
	$output = qq(
  <em>Note:</em> The <a href="$link">original document</a> is newer than this translation.
)
}

if ($output ne "") {
	$output =~ s/^\s+//m; # removes whitespace at the beginning
	$output =~ s/\s+$//m; # removes whitespace at the end
	$output =~ s/\n/ /sg; # replaces linebreaks with whitespace
	print "<p>$output</p>";
}

}

   

   print  ${perl_var1} if ${perl_var1};
   ${perl_var1} = '';


   _:>

{#check_trans#:<: check_translation ("1.75","$WML_SRC_FILENAME","","","") :>:#check_trans#}

<:# line 4 "index.wml":>

<H2>دبیان چیست؟</H2>

<P>دبیان یک سیستم عامل <A href="intro/free">آزاد</A> برای 
کامپیوتر شما می‌باشد. یک سیستم‌ عامل مجموعه‌ای از برنامه‌ها 
و ابزارهای پایه می‌باشد که باعث اجرای کامپیوتر می‌شوند. دبیان از 
هسته <A HREF="http://www.kernel.org/";>لینوکس</A> (به عنوان 
هسته سیستم عامل) استفاده می‌کند، اما بیشتر ابزارهای پایه‌ای 
آن از <A HREF="http://www.gnu.org/";>پروژه گنو</A> می‌باشد؛ 
بنابراین اسم کامل آن گنو/لینوکس است.

<p>دبیان گنو/لینوکس بیشتر از یک سیستم عامل محض است. دبیان به همراه
 بیش از 18733 <A HREF="distrib/packages">بسته</A> 
نرم‌افزاری از پیش کامپایل‌شده ارائه می‌شود که به راحتی بر روی 
دستگاه شما نصب می‌شوند.

<P><A href="intro/about">اطلاعات بیشتر...</A>

<HR>

<H2>شروع</H2>

<p>آخرین <a href="releases/stable/">نسخه پایدار منتشر شده 
دبیان</a> نسخه <: $f = "4.0r0"; $f =~ s/r\d+$//; print $f :> است. 
آخرین به روز رسانی این نسخه در تاریخ <:=spokendate('2007-04-08'):> منتشر 
شده است. اطلاعات بیشتر درباره <a href="releases/">نسخه‌های مختلف دبیان</a>.</p>

<p>اگر می‌خواهید از دبیان استفاده کنید، می‌توانید به راحتی <a href="distrib/">یک 
نسخه از آن را تهیه کرده</a>، و سپس به کمک <a href="releases/stable/installmanual">راهنمای 
نصب</a> آن را نصب نمایید.</p>

<p>اگر در نظر دارید تا از نسخه‌های قبلی به آخرین نسخه پایدار به روز رسانی 
نمایید، لطفا قبل از انجام این کار <a href="releases/stable/releasenotes">یادداشت‌های 
انتشار</a> را مطالعه نمایید.</p>

<p>برای کسب اطلاعات بیشتر درباره نحوه راه‌اندازی و استفاده از دبیان 
صفحات <a href="doc/">مستندات</a> و <a href="support">پشتیبانی</a> 
ما را ببینید.</p>
<p>کاربرانی که به زبان‌هایی غیر از انگلیسی صحبت می‌کنند می‌توانند 
بخش <a href="international/">بین‌المللی</a> را مشاهده نمایند.</p>

<p>کاربرانی که از سیستم‌هایی غیر از اینتل x86 استفاده می‌کنند به 
بخش <a href="ports/">درگاه‌ها</a> مراجعه نمایند.</p>


<HR>

<H2>اخبار</H2>

<P><:= get_recent_list('News/2007', '6', '../english', '', '\d+\w*' ) :>

<P>برای دسترسی به اخبار گذشته <A href="/News/">صفحه 
اخبار</A> را ببینید. اگر مایلید که بوسیله پست الکترونیکی از اخبار جدید 
دبیان آگاه شوید، در <A href="MailingLists/debian-announce">لیست پستی 
اعلان‌های دبیان</A> عضو شوید. <A href="/News/weekly/">خبرنامه 
هفتگی دبیان</A> نیز خلاصه‌ای از اتفاقات هفته گذشته دنیای دبیان را منتشر می‌کند.

<HR>

<H2>مشاوره‌های امنیتی</H2>

<P><:= get_recent_list ('security/2w', '10', '../english', 'bydate', '(2000\d+\w+|dsa-\d+)' ) :>

<P>برای مشاوره‌های امنیتی گذشته <A href="/security/">صفحه 
امنیت</A> را ببینید. اگر مایلید که به محض انتشار اعلان‌های امنیتی آنها را دریافت 
کنید، در <a href="http://lists.debian.org/debian-security-announce/";>لیست 
پستی اعلان‌های امنیتی دبیان عضو شوید</a>.

{#rss#:
<link rel="alternate" type="application/rss+xml"
 title="مشاوره‌های امنیتی دبیان (فقط عنوان‌ها)" href="security/dsa">
<link rel="alternate" type="application/rss+xml"
 title="مشاوره‌های امنیتی دبیان (خلاصه)" href="security/dsa-long">
:#rss#}

Reply to: