]> git.deb.at Git - deb/packages.git/commitdiff
Merge branch 'master' into debian-master
authorGerfried Fuchs <rhonda@debian.org>
Thu, 24 Mar 2011 09:56:04 +0000 (10:56 +0100)
committerGerfried Fuchs <rhonda@debian.org>
Thu, 24 Mar 2011 09:56:04 +0000 (10:56 +0100)
53 files changed:
.gitignore
README
README.Mirror [new file with mode: 0644]
bin/build-maintainerdb [new file with mode: 0755]
bin/create_mirror [new file with mode: 0755]
bin/daily.sed.in
bin/extract_files
conf/.gitignore
conf/apache.conf.sed.in
conf/maintainerdb.override [new file with mode: 0644]
config.sh.sed.in
cron.d/100syncarchive
cron.d/100syncarchive_backports
cron.d/100syncarchive_m68k [deleted file]
cron.d/100syncarchive_maintainers [new file with mode: 0755]
cron.d/300maintainerdb [new file with mode: 0755]
debian/control
lib/Deb/Versions.pm
lib/Packages/Dispatcher.pm
lib/Packages/DoSearchContents.pm
lib/Parse/DebianChangelog/ChangesFilters.pm
mail/.gitignore [new file with mode: 0644]
mail/aliases [new file with mode: 0644]
mail/dot.forward-default [new file with mode: 0644]
setup-site.conf
static/Pics/admon-important.png [new file with mode: 0644]
static/Pics/admon-note.png [new file with mode: 0644]
static/Pics/admon-tip.png [new file with mode: 0644]
static/Pics/admon-warning.png [new file with mode: 0644]
static/Pics/dep.png [new file with mode: 0644]
static/Pics/gradient-flipped.png [new file with mode: 0644]
static/Pics/gradient.png [new file with mode: 0644]
static/Pics/greydot.png [new file with mode: 0644]
static/Pics/openlogo-50.png [new file with mode: 0644]
static/Pics/openlogo-nd-25.png
static/Pics/rec.png [new file with mode: 0644]
static/Pics/reddot.png [new file with mode: 0644]
static/Pics/sug.png [new file with mode: 0644]
static/about/index.tmpl
static/about/sponsors.tmpl [new file with mode: 0644]
static/debian.css
static/debpkg.css [new file with mode: 0644]
static/favicon.ico [new file with mode: 0644]
static/packages-site.css
templates/config.tmpl
templates/config/archive_layout.tmpl
templates/config/mirrors.tmpl
templates/html/foot.tmpl
templates/html/head.tmpl
templates/html/homepage.tmpl
templates/html/search.tmpl
templates/html/search_contents.tmpl
templates/html/show.tmpl

index 87f52c229abbcd9dc4e952404657f91cd00c7ad5..5204c115cd67800b0d9f9a713f531fc085ac9b52 100644 (file)
@@ -5,5 +5,7 @@ archive
 config.sh
 cache
 tmp
+mirror
 *~
 *.ttc
+www-passwords
diff --git a/README b/README
index 7f3e443b0bc54fe4af2bc30746e4164384aa396c..6e3601898b3f225da86d119f58cf3875987eac1a 100644 (file)
--- a/README
+++ b/README
@@ -46,7 +46,6 @@ Cron
 100syncarchive_backports   -- retrieve data from backports.debian.org
 100syncarchive_debports    -- retrieve data from debian-ports.org (m68k)
 100syncarchive_installer   -- retrieve d-i data
-100syncarchive_m68k        -- retrieve data for etch-m68k
 100syncarchive_maintainers -- retrieve maintainer index
 100syncarchive_volatile    -- retrieve data from volatile.d.o
 110debtags                 -- retrieve debtags vocabular
diff --git a/README.Mirror b/README.Mirror
new file mode 100644 (file)
index 0000000..479f459
--- /dev/null
@@ -0,0 +1,29 @@
+
+To only operate a mirror of packages.d.o, the following packages
+need to be installed:
+
+ liblocale-maketext-lexicon-perl
+ libi18n-acceptlanguage-perl
+ libnumber-format-perl
+ libcompress-zlib-perl
+ libhtml-parser-perl
+ libmldbm-perl
+ libtext-iconv-perl
+ libclass-accessor-perl
+ liburi-perl
+ libtemplate-perl
+ liblingua-stem-perl
+ libsearch-xapian-perl (bpo)
+
+ apache2-mpm-worker
+ libapache2-mod-perl2
+
+The following apache modules need to be active
+
+  rewrite
+  expires
+  perl
+  setenvif
+  alias
+  negotiation
+
diff --git a/bin/build-maintainerdb b/bin/build-maintainerdb
new file mode 100755 (executable)
index 0000000..91f3932
--- /dev/null
@@ -0,0 +1,256 @@
+#! /usr/bin/perl
+
+#   build-maintainerdb - convert several Packages files to maintainer database
+#   Copyright (c) 1998,9,2001,3,4,6  Martin Schulze <joey@debian.org>
+#   Copyright (C) 2007 Joerg Jaspert <joerg@debian.org>
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+#   Todo:
+#    . Read maintainer changes from overrides file(s), need to rub
+#      out all existing entries
+
+use strict;
+use warnings;
+use DB_File;
+
+use lib '../lib';
+
+use Deb::Versions;
+
+# read the configuration
+if (!open (C, "../config.sh")) {
+    print "\nInternal Error: Cannot open configuration file.\n\n";
+    exit 0;
+}
+my $topdir = "/org/packages.debian.org";
+while (<C>) {
+    $topdir = $1 if (/^\s*topdir="?(.*)"?\s*$/);
+}
+close (C);
+
+#my $maildomain = "packages.debian.org";
+my $ptsdomain = "packages.qa.debian.org";
+
+
+my $maintainerfile = "$topdir/../mirrors/ftp.debian.org/indices/Maintainers";
+my $maintainerdb = "$topdir/conf/maintainer";
+my $overridefile = "$topdir/conf/maintainerdb.override";
+my $rblfile = "$topdir/conf/rbllist";
+my $rhsblfile = "$topdir/mail/rhsbllist";
+my $calloutfile = "$topdir/mail/callout_users";
+my @postcall = ( "/usr/sbin/postmap", $maintainerdb );
+my $opt_verbose = 0;
+my $dbdir = "$topdir/files/db";
+
+my %maint;
+my %binsrc;
+
+# Lets take pdo database input files for the source mapping
+sub read_bin_src_mapping
+{
+    tie my %src_packages, 'DB_File', "$dbdir/sources_small.db",
+    O_RDONLY, 0666, $DB_BTREE
+       or die "couldn't tie DB $dbdir/sources_small.db: $!";
+    tie my %src2bin, 'DB_File', "$dbdir/sources_packages.db",
+    O_RDONLY, 0666, $DB_BTREE
+       or die "couldn't open $dbdir/sources_packages.db: $!";
+
+    my %bin;
+    while (my ($source, $data) = each %src_packages) {
+       my @src = map { [ split(/\s+/) ] } split( /\0/, $data );
+       my $newest = (sort( { version_cmp($b->[-1],$a->[-1]) } @src))[0];
+       my ($section, $version) = @{$newest}[2,5];
+       
+       my $bin_data = $src2bin{$source};
+       unless ($bin_data) {
+           warn "no binary data found for $source\n";
+           # source packages without binaries have most
+           # likely been succeded
+           next;
+       }
+       
+       my @bin = map { [ split(/\s+/) ] } split( /\0/, $bin_data );
+       my %seen;
+       foreach (@bin) {
+           my ($pkg, $ver) = @{$_}[2,3];
+           next if $seen{"$pkg/$ver"}++; # weed out multiple arches/suites faster
+           if ($bin{$pkg}
+               && ($bin{$pkg}{source} ne $source)
+               && (version_cmp($bin{$pkg}{version},$ver) > 0)) {
+               next;
+           } else {
+               $bin{$pkg} = { version => $ver, source => $source,
+                              target => "$section" };
+               $binsrc{$pkg} = $source;
+           }
+       }
+       $binsrc{$source} = $source;
+    }
+}
+
+sub package_maintainer
+{
+    my $pkg = shift;
+    my $login = shift;
+    my $addr = shift;
+    my $home = "/debian/home/$login";
+
+    if (-d $home) {
+       if (-f "$home/.forward-$pkg") {
+           return "$login-$pkg\@master.debian.org";
+       }
+    }
+    return $addr;
+}
+
+sub read_maintainer
+{
+    my $file = shift;
+    my $package;
+    my $maintainer;
+    my $maint;
+
+    open (F, "$file") || die "Can't open $file, $!";
+    printf "Reading %s\n", $file if ($opt_verbose);
+    while (<F>) {
+       next if (/^#/);
+       next if (/^$/);
+       /(\S+)\s+(.*)/;
+       $package=$1; $maint=$2;
+       if (! exists $maint{$package}) {
+           printf "  EVAL (%s, \"%s\")\n", $package, $maint if ($opt_verbose > 2);
+
+               if (exists $maint{$package}) {
+                   $maint{$package} .= " ";
+                   printf "  EXPAND (%s)\n", $package if ($opt_verbose > 2);
+               }
+               if ($maint =~ /.*<(.*)>/) {
+                   $maint{$package} .= $1;
+                   printf "  ADD (%s, %s)\n", $package, $1 if ($opt_verbose > 2);
+               } elsif ($maint =~ /\s*(\S+)\s+\(.*\)/) {
+                   $maint{$package} .= $1;
+                   printf "  ADD (%s, %s)\n", $package, $1 if ($opt_verbose > 2);
+               } else {
+                   $maint{$package} .= $maint;
+                   printf "  ADD (%s, %s)\n", $package, $maint if ($opt_verbose > 2);
+               }
+
+           printf "  %s: %s\n", $package, $maint{$package} if ($opt_verbose > 1);
+
+# Short what? Whats this supposed to do, except creating new (and 99% broken) something -> email mappings?
+#          my $pkgshort = "";
+#          if ($package =~ /(.*[^\d\.]+)([\d\.]*\d)$/) {
+#              $pkgshort = $1;
+#              print "Short what? $pkgshort (long is $package)\n";
+#              $maint{$pkgshort} = $maint{$package} if (! exists $maint{$pkgshort});
+#              printf "  %s: %s\n", $pkgshort, $maint{$package} if ($opt_verbose > 1);
+#          }
+#          if ($maint{$package} =~ /([^\@]+)\@(master\.)?debian\.org/) {
+#              my $addrsave = $maint{$package} if ($opt_verbose > 1);
+#              $maint{$package} = package_maintainer ($package, $1, $maint{$package});
+#              printf "  Changed to %s\n", $maint{$package} if ($opt_verbose > 1 && ($addrsave ne $maint{$package}));
+#              if (length ($pkgshort) > 0) {
+#                  $maint{$pkgshort} = package_maintainer ($pkgshort, $1, $maint{$pkgshort});
+#              }
+#          }
+       } else {
+           printf "Skipping double $package\n" if ($opt_verbose);
+           printf "LINE: $_" if ($opt_verbose > 2);
+       }
+    }
+    close (F);
+}
+
+
+
+sub write_maintainer
+{
+    my $file = shift;
+
+    printf "Writing to %s.new\n", $file if ($opt_verbose > 0);
+    open (CONF, ">$file.new") || die "Can't open $file.new, $!";
+    open (WRITE, "| cdbmake $file.cdb $file.cdb.tmp") || die "Can't talk to cdbmake, $!";
+    open (RBL, ">$rblfile.new") || die "Can't open $file.new, $!";
+    open (RHSBL, ">$rhsblfile.new") || die "Can't open $file.new, $!";
+    open (CALLOUT, ">$calloutfile.new") || die "Can't open $file.new, $!";
+    my $forward;
+    foreach my $package (sort(keys(%maint))) {
+# It is possible that we do not know a source package -> in that case fall back to old behaviour
+# and only mail the maintainer. Can happen when pdo doesnt know the suite the source is in, like
+# it doesnt know oldstable-proposed-updates at date of writing this code.
+       $forward = "$maint{$package}";
+       if ($binsrc{$package}) {
+           $forward .= ", $binsrc{$package}_contact\@$ptsdomain";
+       }
+       printf "%s -> %s\n", $package, $forward if ($opt_verbose);
+       printf CONF "%s:\t%s\n", $package, $forward;
+       printf WRITE "+%d,%d:%s->%s\n", length($package), length($forward), $package, $forward;
+       printf RBL "%s : zen.spamhaus.org : cbl.abuseat.org\n", $package; 
+       printf RHSBL "%s : bogusmx.rfc-ignorant.org/\$sender_address_domain : dsn.rfc-ignorant.org/\$sender_address_domain\n", $package;
+       printf CALLOUT "%s\n", $package;
+#      printf "%s -> %s and pts: %s\n", $package, $maint{$package}, $binsrc{$package} if ($opt_verbose);
+#      printf CONF "%s@%s\t%s, %s_contact@%s\n", $package, $maildomain, $maint{$package}, $binsrc{$package}, $ptsdomain;
+    }
+    print WRITE "\n";
+    close (CONF);
+    close (WRITE);
+    close (RBL);
+    close (RHSBL);
+    close (CALLOUT);
+    printf "Renaming the new files\n" if ($opt_verbose > 0);
+    system "mv -f $file.new $file";
+    system "mv -f $rblfile.new $rblfile";
+    system "mv -f $rhsblfile.new $rhsblfile";
+    system "mv -f $calloutfile.new $calloutfile";
+#    printf "Executing @postcall\n" if ($opt_verbose > 0);
+#    system @postcall;
+}
+
+sub help
+{
+    print "build-maintainerdb - Build the maintainer db for packages.debian.org.\n";
+    print "-d     debug, changes output file to ./maintainerdb\n";
+    print "-h     This help\n";
+    print "-v     Increase verbosity by 1\n";
+    print "-vv    Increase verbosity by 2\n";
+    print "-vvv   Increase verbosity by 3\n";
+}
+
+# 
+# Main program
+#
+while ($#ARGV > -1) {
+    if ($ARGV[0] eq "-v") {
+       $opt_verbose++;
+    } elsif ($ARGV[0] eq "-vv") {
+       $opt_verbose+= 2;
+    } elsif ($ARGV[0] eq "-vvv") {
+       $opt_verbose+= 3;
+    } elsif ($ARGV[0] eq "-h") {
+       help();
+    } elsif ($ARGV[0] eq "-d") {
+       $maintainerdb = "./maintainerdb";
+    }
+    shift;
+}
+
+&read_bin_src_mapping();
+
+&read_maintainer ($overridefile);
+&read_maintainer ($maintainerfile);
+
+&write_maintainer ($maintainerdb);
+
diff --git a/bin/create_mirror b/bin/create_mirror
new file mode 100755 (executable)
index 0000000..6ce4860
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+set -e
+
+topdir="$1"
+[ -n "$topdir" -a -d "$topdir" ] || exit 1
+mirror="$topdir/mirror"
+
+mkdir -p "$mirror"
+
+STAMP=$(date "+%Y%m%d%H%M")
+new="$mirror/$STAMP"
+mkdir $new
+
+if lockfile -! -l 3600 -r2 -300 "$mirror/mirror.lock"
+then
+    echo "couldn't aquire mirror.lock in due time"
+    exit 1;
+fi
+
+mkdir -p "$new/cache"
+chmod 777 "$new/cache"
+
+cd "$new"
+ln -f "$topdir/config.sh"
+ln -f "$topdir/README.Mirror"
+
+mkdir -p "$new/bin"
+cd "$new/bin"
+ln -f "$topdir/bin/mod_perl-startup"
+
+mkdir -p "$new/conf"
+cd "$new/conf"
+ln -f "$topdir/conf/apache.conf"
+
+mkdir -p "$new/cgi-bin"
+cd "$new/cgi-bin"
+ln -f "$topdir/cgi-bin/dispatcher.pl"
+
+for d in lib files templates po www
+do
+  mkdir -p "$new/$d"
+  rsync -avH --link-dest "$topdir/$d" \
+      --exclude '*.new' --exclude '*.sed.in' \
+      --exclude '*.slices' --exclude '*~' \
+      --exclude '*.lock' --exclude '*.ttc' --exclude 'logs/' \
+      --exclude 'packages/*/' --exclude 'changelogs.*.dump' \
+      --exclude 'changelogs.cache' --exclude 'changelogs/**/log' \
+      --exclude "/auto" --exclude "/Search" --exclude "/perl" \
+      --delete-excluded --delete-after \
+      "$topdir/$d/" "$new/$d/"
+done
+LC_ALL=POSIX LANG=POSIX date -u > "$new/www/Pics/.trace"
+
+ln -sfT $new $mirror/current
+find $mirror -mindepth 1 -maxdepth 1 -not -name "${STAMP}" -type d -print0 \
+       | xargs --no-run-if-empty -0 rm -rf
+
+rm -f "$mirror/mirror.lock"
index 28c8333c24368fa295056d3fabefead8f2744da3..fe220b5505550d1fb122a1dd5033467fff025aba 100755 (executable)
@@ -53,3 +53,7 @@ else
     echo "couldn't aquire changelogs lock file in due time"
 fi
 date
+
+$topdir/bin/create_mirror $topdir
+sudo -H -u archvsync /home/archvsync/bin/pushpdo &
+date
index 5c57bab417108d227d82aefd7c10de83572e6d0e..a94fba06bd87d5a3161fdde213935392cb6d086f 100755 (executable)
@@ -564,6 +564,10 @@ sub read_deb {
        }
     }
     $cache{$debname} ||= qx/dpkg-deb --info "$debname" control/;
+    unless ( $cache{$debname} ) {
+       do_warning( "extracting control information of file $debname failed" );
+       return;
+    }
     my $control = $cache{$debname};
 
     unless ( $raw_data = $parser->parse_mem( $control,
index 135b043fae7829a51f8c95edaf405ac70b6d27f0..4ecbfe7260d8e461e17c81616dc4bf19b0e5a394 100644 (file)
@@ -1,4 +1,6 @@
 apache.conf
 ttreerc
 maintainer
+maintainer.cdb
 crontab
+rbllist
index fb36e4a2b753cbb069bd5768e2a0f5a52a58f171..eac75bce3ef77b20063bbfadac203a5b41b19100 100644 (file)
@@ -69,6 +69,7 @@
    ServerAdmin webmaster@debian.org
    DocumentRoot %TOPDIR%/www/
    ServerName %SITE%
+   ServerAlias packages-piatti.debian.org packages-powell.debian.org packages-rore.debian.org
    ErrorLog /var/log/apache2/%SITE%-error.log
    CustomLog /var/log/apache2/%SITE%-access.log combined
 
    RewriteRule ^/favicon.ico$ - [L]
    RewriteRule ^/robots.txt$ - [L]
 
-#   RewriteRule ^/$ http://www.debian.org/distrib/packages
-   RewriteRule ^/$                     /index [L]
+   RewriteRule ^/$ http://www.debian.org/distrib/packages
+#   RewriteRule ^/$ /index [L]
    RewriteRule ^/([^/+]*)([+])([^/]*)$ "/$1%%{%}2B$3" [N]
    RewriteRule ^/changelog:(.+)$       /changelogs/${changelog-url:$1} [R,L,NE]
    RewriteRule ^/src:([^/]+)$          /search?searchon=sourcenames&keywords=$1 [R,L,NE]
diff --git a/conf/maintainerdb.override b/conf/maintainerdb.override
new file mode 100644 (file)
index 0000000..0f6f11d
--- /dev/null
@@ -0,0 +1,8 @@
+packages.debian.org  Martin Schulze <joey@debian.org>
+nonus.debian.org     Archive Maintenance <ftp.debian.org@packages.debian.org>
+nonus                NonUS Archive <nonus.debian.org@packages.debian.org>
+non-us               NonUS Archive <nonus.debian.org@packages.debian.org>
+bugs                 Bug Tracking System <bugs.debian.org@packages.debian.org>
+egcs                 debian-gcc@lists.debian.org
+gcc                  debian-gcc@lists.debian.org
+glibc               debian-glibc@lists.debian.org
index 09d080cb7638dee1065c96df2c3026d1ffab38bd..719949c138c3d2970e90bf0e69e0fb9b907f8290 100644 (file)
@@ -19,7 +19,7 @@ cachedir=${topdir}/cache
 # unset this if %SITE% moves somewhere where the packages files
 # cannot be obtained locally
 #
-#localdir=/org/ftp.debian.org/debian
+localdir=/srv/mirrors/ftp.debian.org
 
 # path to private ftp directory
 #ftproot=/org/ftp.root
@@ -45,18 +45,17 @@ ddtplangs="ca cs da de eo es eu fi fr hu it ja km ko nl pl pt pt-br ru sk sv uk
 archives="us security debports backports volatile"
 sections="main contrib non-free"
 parts="$sections"
-suites="etch etch-m68k etch-volatile etch-backports lenny lenny-volatile lenny-backports squeeze squeeze-backports sid experimental"
+suites="lenny lenny-volatile lenny-backports lenny-backports-sloppy squeeze squeeze-updates squeeze-backports wheezy sid experimental"
 priorities="required important standard optional extra"
 dists="$suites"
 architectures="alpha amd64 arm armel avr32 hppa hurd-i386 i386 ia64 kfreebsd-i386 kfreebsd-amd64 m68k mips mipsel powerpc powerpcspe s390 sh4 sparc sparc64"
-arch_etch="alpha amd64 arm hppa i386 ia64 mips mipsel powerpc s390 sparc"
-arch_lenny="${arch_etch} armel"
-arch_squeeze="alpha amd64 armel hppa i386 ia64 kfreebsd-i386 kfreebsd-amd64 mips mipsel powerpc s390 sparc"
+arch_lenny="alpha amd64 arm armel hppa i386 ia64 mips mipsel powerpc s390 sparc"
+arch_squeeze="amd64 armel i386 ia64 kfreebsd-i386 kfreebsd-amd64 mips mipsel powerpc s390 sparc"
+arch_wheezy="${arch_squeeze}"
 arch_sid="${arch_squeeze} avr32 hurd-i386 m68k powerpcspe sh4 sparc64"
 arch_experimental="${arch_sid}"
 arch_lenny_proposed_updates="${arch_lenny}"
-arch_etch_proposed_updates="${arch_etch}"
 
 # Miscellaneous
 #
-admin_email="djpig@debian.org"
+admin_email="webmaster@debian.org"
index d8b9f79bc28b8248fd63b67c1c2af7d6068bd5e1..5738151ae023ac4a4a3ea6c7b9980c0279c43086 100755 (executable)
@@ -81,7 +81,7 @@ fi
 
 # security archive
 #
-for dist in etch lenny
+for dist in etch lenny squeeze
 do
     echo "retrieve Release(.gpg) $dist"
     test -d security/${dist} || mkdir -p security/${dist}
index 9acc155cb7bdf8afecaa26b226ca37681fad2462..35ad9d7c6619a46edfea8f67c7faf8ee47a3a2d8 100755 (executable)
@@ -7,35 +7,35 @@ cd ${archivedir}
 
 # backports archive
 #
-for dist in etch lenny squeeze
+for dist in lenny-backports lenny-backports-sloppy squeeze-backports
 do
-  echo "retrieve Release(.gpg) $dist-backports"
-  test -d backports/${dist}-backports || mkdir -p backports/${dist}-backports
-  (cd backports/${dist}-backports &&
-           $wget_cmd -N ${backports_ftpsite}/dists/${dist}-backports/Release &&
-           $wget_cmd -N ${backports_ftpsite}/dists/${dist}-backports/Release.gpg )
+  echo "retrieve Release(.gpg) $dist"
+  test -d backports/${dist} || mkdir -p backports/${dist}
+  (cd backports/${dist} &&
+           $wget_cmd -N ${backports_ftpsite}/dists/${dist}/Release &&
+           $wget_cmd -N ${backports_ftpsite}/dists/${dist}/Release.gpg )
 
-    foo=\$arch_${dist//-/_}
+    foo=\$arch_${dist%-*}
     for arch in `eval echo $foo`
     do
       for part in ${parts}
       do
-       echo retrieve Packages $dist-backports/$part/$arch
-       test -d backports/${dist}-backports/${part}/binary-${arch} || mkdir -p backports/${dist}-backports/${part}/binary-${arch}
-       (cd backports/${dist}-backports/${part}/binary-${arch} &&
-           $wget_cmd -N ${backports_ftpsite}/dists/${dist}-backports/${part}/binary-${arch}/Packages.gz)
+       echo retrieve Packages $dist/$part/$arch
+       test -d backports/${dist}/${part}/binary-${arch} || mkdir -p backports/${dist}/${part}/binary-${arch}
+       (cd backports/${dist}/${part}/binary-${arch} &&
+           $wget_cmd -N ${backports_ftpsite}/dists/${dist}/${part}/binary-${arch}/Packages.gz)
       done
-      echo retrieve Contents $dist-backports/$arch
-      (cd backports/${dist}-backports &&
-         $wget_cmd -N ${backports_ftpsite}/dists/${dist}-backports/Contents-${arch}.gz)
+      echo retrieve Contents $dist/$arch
+      (cd backports/${dist} &&
+         $wget_cmd -N ${backports_ftpsite}/dists/${dist}/Contents-${arch}.gz)
     done
     for part in ${parts}
     do
-        echo retrieve Sources $dist-backports/$part
-        test -d backports/${dist}-backports/${part}/source || mkdir -p backports/${dist}-backports/${part}/source
-        (cd backports/${dist}-backports/${part}/source &&
-            $wget_cmd -N ${backports_ftpsite}/dists/${dist}-backports/${part}/source/Sources.gz)
+        echo retrieve Sources $dist/$part
+        test -d backports/${dist}/${part}/source || mkdir -p backports/${dist}/${part}/source
+        (cd backports/${dist}/${part}/source &&
+            $wget_cmd -N ${backports_ftpsite}/dists/${dist}/${part}/source/Sources.gz)
     done
 
-    $check_release_cmd $archivedir/backports/${dist}-backports/Release
+    $check_release_cmd $archivedir/backports/${dist}/Release
 done
diff --git a/cron.d/100syncarchive_m68k b/cron.d/100syncarchive_m68k
deleted file mode 100755 (executable)
index 3dcf954..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#! /bin/bash
-
-. `dirname $0`/../config.sh
-
-test -d ${archivedir} || mkdir -p ${archivedir}
-cd ${archivedir}
-
-# Main archive
-#
-arch=m68k
-if [ -z "${localdir}" ]
-then
-    echo using remote mirror
-    for dist in etch
-    do
-        echo "retrieve Release(.gpg) $dist"
-       test -d us/${dist}-${arch} || mkdir -p us/${dist}-${arch}
-       (cd us/${dist} &&
-           $wget_cmd -N ${ftpsite}/dists/${dist}-${arch}/Release &&
-           $wget_cmd -N ${ftpsite}/dists/${dist}-${arch}/Release.gpg )
-        
-#      foo=\$arch_${dist//-/_}
-#      for arch in `eval echo $foo`
-#      do
-           for part in ${parts}
-           do
-               echo retrieve Packages $dist-${arch}/$part/$arch
-               test -d us/${dist}-${arch}/${part}/binary-${arch} || mkdir -p us/${dist}-${arch}/${part}/binary-${arch}
-               (cd us/${dist}-${arch}/${part}/binary-${arch} &&
-                   $wget_cmd -N ${ftpsite}/dists/${dist}-${arch}/${part}/binary-${arch}/Packages.gz)
-           done
-           #FIXME: no Contents files for p-u
-           echo retrieve Contents $dist/$arch
-           (cd us/${dist}-${arch} &&
-               $wget_cmd -N ${ftpsite}/dists/${dist}-${arch}/Contents-${arch}.gz)
-#      done
-       for part in ${parts}
-       do
-           echo retrieve Sources $dist-${arch}/$part
-           test -d us/${dist}-${arch}/${part}/source || mkdir -p us/${dist}-${arch}/${part}/source
-            (cd us/${dist}-${arch}/${part}/source &&
-                $wget_cmd -N ${ftpsite}/dists/${dist}-${arch}/${part}/source/Sources.gz)
-       done
-
-       $check_release_cmd $archivedir/us/${dist}-${arch}/Release
-    done
-else
-    echo using local mirror
-    for dist in etch
-    do
-        echo "retrieve Releases(.gpg) $dist"
-       test -d us/${dist}-${arch} || mkdir -p us/${dist}-${arch}
-       (cd us/${dist}-${arch} &&
-           rsync -t ${localdir}/dists/${dist}-${arch}/Release &&
-           rsync -t ${localdir}/dists/${dist}-${arch}/Release.gpg )
-
-#      foo=\$arch_${dist//-/_}
-#      for arch in `eval echo $foo`
-#      do
-           for part in ${parts}
-           do
-               echo retrieve Packages $dist-${arch}/$part/$arch
-               test -d us/${dist}-${arch}/${part}/binary-${arch} || mkdir -p us/${dist}-${arch}/${part}/binary-${arch}
-               rsync -t ${localdir}/dists/${dist}-${arch}/${part}/binary-${arch}/Packages.gz \
-                   us/${dist}-${arch}/${part}/binary-${arch}/Packages.gz
-           done
-           #FIXME: no Contents files for p-u
-           echo retrieve Contents $dist-${arch}/$arch
-           rsync -t ${localdir}/dists/${dist}-${arch}/Contents-${arch}.gz \
-               us/${dist}-${arch}/Contents-${arch}.gz
-#      done
-       for part in ${parts}
-        do
-           echo retrieve Sources $dist-${arch}/$part
-            test -d us/${dist}-${arch}/${part}/source || mkdir -p us/${dist}-${arch}/${part}/source
-            rsync -t ${localdir}/dists/${dist}-${arch}/${part}/source/Sources.gz \
-               us/${dist}-${arch}/${part}/source/Sources.gz
-       done
-       $check_release_cmd $archivedir/us/${dist}-${arch}/Release
-    done
-fi
-
diff --git a/cron.d/100syncarchive_maintainers b/cron.d/100syncarchive_maintainers
new file mode 100755 (executable)
index 0000000..9055606
--- /dev/null
@@ -0,0 +1,21 @@
+#! /bin/bash
+
+. `dirname $0`/../config.sh
+
+test -d ${archivedir} || mkdir -p ${archivedir}
+cd ${archivedir}
+
+# scp -q auric:/org/ftp.debian.org/ftp/indices/Maintainers .
+
+if [ -f /org/ftp.root/debian/indices/Maintainers ]
+then
+    if [ ! -s Maintainers -a -L Maintainers ]
+    then
+       ln -s /org/ftp.root/debian/indices/Maintainers .
+    fi
+else
+    if [ ! -L Maintainers ]
+    then
+       $wget_cmd -O Maintainers $ftpsite/indices/Maintainers
+    fi
+fi
diff --git a/cron.d/300maintainerdb b/cron.d/300maintainerdb
new file mode 100755 (executable)
index 0000000..898a4c0
--- /dev/null
@@ -0,0 +1,6 @@
+#! /bin/bash
+
+. `dirname $0`/../config.sh
+
+cd ${bindir}
+${bindir}/build-maintainerdb
index 3af54e020d187d0622dc790cc11fef08415b7168..5ca566ae37baafa43b75ae3cda4dbc2e6357e404 100644 (file)
@@ -1,5 +1,5 @@
 Source: packages
-Build-Depends: git-core, rsync, dpkg-dev, procmail, gettext,
+Build-Depends: rsync, dpkg-dev, procmail, gettext,
  liblocale-maketext-lexicon-perl, libi18n-acceptlanguage-perl, libnumber-format-perl,
  libcompress-zlib-perl, libhtml-parser-perl, libio-stringy-perl,
  libmldbm-perl, libtext-iconv-perl, libhtml-template-perl,
index 706f017f20c185f25beab1cb6cae6b1d7864622f..0e37ab272d5fdadb22be1f75345ee6292370891d 100644 (file)
@@ -174,10 +174,11 @@ our @SUITES_SORT = qw(
                        sarge
                        oldstable
                        etch etch-m68k
-                       stable stable-proposed-updates
                        lenny
-                       testing testing-proposed-updates
+                       stable stable-proposed-updates
                        squeeze
+                       testing testing-proposed-updates
+                       wheezy
                        sid unstable experimental
                        warty hoary breezy dapper edgy feisty gutsy hardy
                        intrepid jaunty karmic lucid maverick);
index 08c6f96a1c7cee40a1985e2a88eeb3006908f27f..67488e9794e65f3749468f206c7a270555f82f27 100755 (executable)
@@ -64,12 +64,12 @@ sub do_dispatch {
     delete $ENV{'LC_ALL'};
     delete $ENV{'LC_MESSAGES'};
 
-    my %SUITES_ALIAS = ( oldstable => 'etch',
-                        stable => 'lenny',
-                        testing => 'squeeze',
+    my %SUITES_ALIAS = ( oldstable => 'lenny',
+                        stable => 'squeeze',
+                        testing => 'wheezy',
                         unstable => 'sid',
-                        '4.0' => 'etch',
-                        '5.0' => 'lenny' );
+                        '5.0' => 'lenny',
+                        '6.0' => 'squeeze' );
 
     # Read in all the variables set by the form
     my $input;
index a51ee8e01330dc223a9cb0e38edefb4f475e863b..ec3ab8b082043a2afe2f6873d68ffd7a7d2bd497 100644 (file)
@@ -33,7 +33,7 @@ sub do_search_contents {
     #FIXME: that's extremely hacky atm
     if ($params->{values}{suite}{no_replace}[0] eq 'default') {
        $params->{values}{suite}{no_replace} =
-           $params->{values}{suite}{final} = $opts->{suite} = [ 'lenny' ];
+           $params->{values}{suite}{final} = $opts->{suite} = [ 'squeeze' ];
     }
 
     if (@{$opts->{suite}} > 1) {
index 8434770c704a213cd9139c16f1bbbf6eec5428bb..4dfab20593870fdb01b1cae9c24b6a697e2ce169 100644 (file)
@@ -102,7 +102,7 @@ sub cve_to_mitre {
     my ($text, $cgi) = @_;
 
     $text =~ s!\b(?:CVE|CAN)-\d{4}-\d{4}\b
-        !$cgi->a({ -href=>"http://cve.mitre.org/cgi-bin/cvename.cgi?name=$&" }, $&)
+        !$cgi->a({ -href=>"http://security-tracker.debian.org/tracker/$&" }, $&)
        !xego;
     return $text;
 }
diff --git a/mail/.gitignore b/mail/.gitignore
new file mode 100644 (file)
index 0000000..6600526
--- /dev/null
@@ -0,0 +1,3 @@
+callout_users
+grey_users
+rhsbllist
diff --git a/mail/aliases b/mail/aliases
new file mode 100644 (file)
index 0000000..ace74b6
--- /dev/null
@@ -0,0 +1,14 @@
+root: joey@debian.org
+admin: joey@debian.org
+sysop: joey@debian.org
+debian: debian@debian.org
+postmaster: joey@debian.org
+MAILER_DAEMON: joey@debian.org
+usenet: joey@debian.org
+news: joey@debian.org
+newsmaster: joey@debian.org
+joey: joey@debian.org
+
+submit: submit@bugs.debian.org
+
+base: base-files@packages.debian.org, base-passwd@packages.debian.org
diff --git a/mail/dot.forward-default b/mail/dot.forward-default
new file mode 100644 (file)
index 0000000..76b8f82
--- /dev/null
@@ -0,0 +1,13 @@
+# Exim Filter
+# /org/packages.debian.org/mail/.forward-default
+
+# This filter looks up the package name in the maintainer database, if it is
+# not found then a bounce message is generated. Although the docs say you
+# can put spaces in the $lookup stuff you can't, don't try it.
+if ${lookup{${local_part}}lsearch{/org/packages.debian.org/files/maintainerdb}{$value}{unknown}} is "unknown"
+then
+   save /dev/null
+else
+   seen deliver ${lookup{${local_part}}partial-lsearch{/org/packages.debian.org/files/maintainerdb}{$value}}
+endif
+
index edaf9b67f8eabc3aa37f68f685f4cc8ef4420501..c50889e0eca36c8ef91614319dbe39c2ffafa7cd 100644 (file)
@@ -1,2 +1,2 @@
-topdir=/srv/packages.debian.org
-site=packages.debian.net
+topdir=/org/packages.debian.org
+site=packages.debian.org
diff --git a/static/Pics/admon-important.png b/static/Pics/admon-important.png
new file mode 100644 (file)
index 0000000..c5726d5
Binary files /dev/null and b/static/Pics/admon-important.png differ
diff --git a/static/Pics/admon-note.png b/static/Pics/admon-note.png
new file mode 100644 (file)
index 0000000..d01b8c6
Binary files /dev/null and b/static/Pics/admon-note.png differ
diff --git a/static/Pics/admon-tip.png b/static/Pics/admon-tip.png
new file mode 100644 (file)
index 0000000..2ac5747
Binary files /dev/null and b/static/Pics/admon-tip.png differ
diff --git a/static/Pics/admon-warning.png b/static/Pics/admon-warning.png
new file mode 100644 (file)
index 0000000..f5c7a6f
Binary files /dev/null and b/static/Pics/admon-warning.png differ
diff --git a/static/Pics/dep.png b/static/Pics/dep.png
new file mode 100644 (file)
index 0000000..cc2a137
Binary files /dev/null and b/static/Pics/dep.png differ
diff --git a/static/Pics/gradient-flipped.png b/static/Pics/gradient-flipped.png
new file mode 100644 (file)
index 0000000..b4c10b2
Binary files /dev/null and b/static/Pics/gradient-flipped.png differ
diff --git a/static/Pics/gradient.png b/static/Pics/gradient.png
new file mode 100644 (file)
index 0000000..33009da
Binary files /dev/null and b/static/Pics/gradient.png differ
diff --git a/static/Pics/greydot.png b/static/Pics/greydot.png
new file mode 100644 (file)
index 0000000..ec23c01
Binary files /dev/null and b/static/Pics/greydot.png differ
diff --git a/static/Pics/openlogo-50.png b/static/Pics/openlogo-50.png
new file mode 100644 (file)
index 0000000..350e156
Binary files /dev/null and b/static/Pics/openlogo-50.png differ
index 5ad44879c5adb47e1f07175a0c74fcec6c69d098..8732e7081033fb6f2070762f752e268fbbc0929b 100644 (file)
Binary files a/static/Pics/openlogo-nd-25.png and b/static/Pics/openlogo-nd-25.png differ
diff --git a/static/Pics/rec.png b/static/Pics/rec.png
new file mode 100644 (file)
index 0000000..2376fc5
Binary files /dev/null and b/static/Pics/rec.png differ
diff --git a/static/Pics/reddot.png b/static/Pics/reddot.png
new file mode 100644 (file)
index 0000000..76cc993
Binary files /dev/null and b/static/Pics/reddot.png differ
diff --git a/static/Pics/sug.png b/static/Pics/sug.png
new file mode 100644 (file)
index 0000000..d7ba341
Binary files /dev/null and b/static/Pics/sug.png differ
index 78eb26a9a2178db7068c626f3404e5701aa69053..5d25ca0331997b4a498d31afe68f1ccc8eb0637a 100644 (file)
@@ -93,6 +93,10 @@ Copyright (C) 2006 Jeroen van Wolffelaar &lt;jeroen@wolffelaar.nl&gt;
 Copyright (C) 2006, 2007 Frank Lichtenheld &lt;frank@lichtenheld.de&gt;
 </pre>
 
+<h3>Sponsors</h3>
+
+<p><a href="sponsors.html">See our separate Sponsors page</a></p>
+
 [% PROCESS 'html/foot.tmpl'
        langs.size = 0
        footer.doNotDisplayCopyright = 1 %]
diff --git a/static/about/sponsors.tmpl b/static/about/sponsors.tmpl
new file mode 100644 (file)
index 0000000..312a62f
--- /dev/null
@@ -0,0 +1,36 @@
+[% PROCESS 'html/head.tmpl' 
+       title_tag = "$organisation Packages - Sponsors"
+       page_title = "$organisation Packages - Sponsors"
+       keywords = "$organisation, Sponsoring, Hardware, Hosting"
+%]
+
+<h2>Sponsors of <tt>packages.debian.org</tt></h2>
+
+<p>Providing this popular service wouldn't be possible
+without the help of the following companies and organisations:</p> 
+
+<table id="sponsorslist">
+<tr>
+ <th>Machine</th> <th>Purpose</th> <th>Sponsor Hardware</th> <th>Sponsor Hosting</th>
+</tr>
+<tr>
+ <td><a href="http://db.debian.org/machines.cgi?host=powell">powell.debian.org</a></td>
+ <td>Main Web/Data Server, Mail Handling</td>
+ <td colspan="2"><a href="http://1und1.de/">1&amp;1 Internet AG</a></td>
+</tr>
+<tr>
+ <td><a href="http://db.debian.org/machines.cgi?host=piatti">piatti.debian.org</a></td>
+ <td>Mirror</td>
+ <td><a href="http://www.hp.com/">Hewlett-Packard</a></td>
+ <td><a href="http://cs.helsinki.fi/index.en.html">University of Helsinki - Department of Computer Science</a></td>
+</tr>
+<tr>
+ <td><a href="http://db.debian.org/machines.cgi?host=rore">rore.debian.org</a></td>
+ <td>Mirror</td>
+ <td><a href="http://www.hp.com/">Hewlett-Packard</a></td>
+ <td><a href="http://www.csail.mit.edu/">MIT Computer Science &amp; Artificial Intelligence Lab</a></td>
+</tr>
+</table>
+
+[% PROCESS 'html/foot.tmpl'
+       langs.size = 0 %]
index fce9493b3312b7867ae98ff9905d14daba9eb389..6aeb222515a894da2b9404428609a0cb5b024325 100644 (file)
-/* css file for debian web site - Jutta Wrage 2004 */
-
-/* all pages have a header, outer inner and footer
-leftcol and maincol can be omitted, there will be other boxes
-to replace later (eg. two content columns)
-normal page:
-<div id="header">
-  <div id="upperheader">
-     <div id="logo">
-     </div> <!-- end logo -->
-     <div id="serverselect">
-     </div> <!-- end serverselect -->
-  </div> <!-- end upperheader -->
-  <div id="navbar">
-  </div> <!-- end navbar -->
-</div> <!-- end header -->
-<div id="outer">
-  <div id="inner">
-    <div id="leftcol">
-      Leftcol is for menus - if omitted, maincol can be omitted, too
-    </div> <!-- end leftcol -->
-    <div id="maincol">
-      Maincol with margin left is for the content
-      But content may go directly to inner
-    </div> <!-- end maincol -->
-  </div> <!-- end inner -->
-  <div id="footer">
-    <hr class="hidecss"> This line is a divider for lynx
-  </div> <!-- end footer -->
-</div> <!-- end outer -->
-color logo #C60036
-cd-pages: bgcolor="#e09e86" - navbar
-*/
+/*
+       http://www.debian.org Stylesheet
 
-/* { border: 1px solid yellow; } */
-html, body {
-       color: #000000;
-       background-color: #FFFFFF;
-       margin: 0 4px 0 4px;
-       padding: 0;
-       text-align: left;
-       font-family: Arial, Helvetica, sans-serif;
-       /* min-width: 440px - commented out due to mozilla problems*/
-}
-/* direction directive reverses the navbar, too */
-/* html[lang|=ar] {
-      direction: rtl !important;
-      text-align: right !important;
-} */
+       Copyright 2011 Kalle Söderman
 
-img { border: 0; }
+       This stylesheet is free software; you can redistribute it and/or modify it
+       under the terms of the GNU General Public License, version 2, as published by
+       the Free Software Foundation.
 
-h1 { text-align: center; }
+       This program is distributed in the hope that it will be useful, but WITHOUT ANY
+       WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+       PARTICULAR PURPOSE. See the GNU General Public License for more details.
 
-acronym {
-       border-bottom: 1px dotted #000000;
-}
+       You should have received a copy of the GNU General Public License along with
+       this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+       Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
-hr.hidecss {
+       The license text can also be found at http://www.gnu.org/copyleft/gpl.html and
+       /usr/share/common-licenses/GPL-2 on Debian GNU/Linux.  
+*/
+       
+/*     
+       Font size table (Browser default 16px)
+
+       pixels      relative
+       --------------------
+       36px        2.25em
+       31px        0.5161em
+       24px        1.5em
+       21px        1.3125em
+       18px        1.125em
+       16px        1em
+       14px        0.875em
+       12px        0.75em
+       11px        0.6875em
+       10px        0.625em
+       9px         0.5625em
+       --------------------
+*/
+
+/* Reset */
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
+blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
+font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl,
+dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody,
+tfoot, thead, tr, th, td { 
+       margin: 0;
+       padding: 0;
        border: 0;
+       outline: 0;
+       font-weight: inherit;
+       font-style: inherit;
+       font-size: 100%;
+       font-family: inherit;
+       vertical-align: baseline;
+}
+
+body            { line-height: 1; color: black; background: white; }
+ol, ul          { list-style: none; }
+table           { border-collapse: separate; border-spacing: 0; }
+blockquote, q   { quotes: "" ""; }
+html            { background-color: transparent; }
+:focus          { outline: 0; }
+caption, th, td { text-align: left; font-weight: normal; }
+blockquote:before, blockquote:after, q:before, q:after { content: ""; }
+
+/* Main */
+
+body {
+       margin: 0;
+       font: normal 100% sans-serif;
+       line-height: 1.5;
+       color: #222;
+       background-color: white;
+       background-image:url('Pics/gradient.png');
+       background-position: 0 0;
+       background-repeat: repeat-x;
+       /* Uncomment to show baseline grid 
+       background-image: url('24grid.png');
+       background-position: 30px 9px; 
+       */
+}
+#content {
+       margin: 0 10px 0 52px;
 }
-
-hr {
-       border-bottom: 0;
-       border-top: 1px solid #BFC3DC;
+#inner {
+       position: relative;
+}
+#maincol {
+       margin: 0 15em 1.5em 0;
 }
 
-samp {
-       display: block;
-       margin-left: 2em;
+/* Header */
+
+#header {
+       margin:0;
+       padding:0 10px 0 52px; 
 }
-div.sampleblock {
-       width: 80%;
-       margin: auto;
-       font-family:courier, serif;
-       font-size: 90%;
+#header a:link
+, #header a:visited
+, #second-nav a:link
+, #second-nav a:visited {
+       text-decoration: none;
 }
-div.quoteblock {
-       width: 75%;
-       margin: auto;
-       font-size: 90%;
-       text-align: justify;
+#header a:hover
+, #second-nav a:hover {
+       text-decoration: underline;
+}
+#breadcrumbs {
+       margin:0;
+       font-size: 0.75em;
+       text-transform: lowercase;
+       line-height: 2;
+       background-color: transparent;
+       background-color: #f5f6f7;
+       border-bottom: 1px solid #d2d3d7 ;
+       min-height: 20px;
+}
+#breadcrumbs:before {
+       content: "/";
+       margin-left: 0.5em;
+       margin-right: 0.5em;
 }
-
-.quoteblock div.preimg {
+p.section {
+       margin: 0;
+       padding: 0 5px 0 5px;
+       font-family:monospace;
+       line-height: 16px;
+       color:white;
+       text-transform: uppercase;
+       letter-spacing: 0.08em;
+       position:absolute;
+       top: 0px;
+       left:52px;
+       background-color: #c70036;
+}
+p.section a {
+       color: white;
+       text-decoration: none;
+}
+p.section a:hover {
+       color:white;
+       text-decoration: underline;
+}
+#navbar {
+       background-color: transparent;
+       list-style:none;
+       display:block;
+       border-bottom:1px solid #c70036;
+       text-indent:0;
+       padding: 0;
+       margin-top:0;
+       margin-bottom:0;
+}
+#navbar ul {
+       margin: 0;
+       padding: 0;
+       clear: both;
+       overflow: hidden;
+       min-height: 45px;
+}
+#navbar li {
+       list-style: none;
        float: left;
-       margin-top: 0.2em;
+       padding: 0;
+       margin: 0;
 }
-.quoteblock cite {
+#navbar a:link
+, #navbar a:visited {
+       padding: 1.75em 0.5em 0.25em 0.5em;
+       border-left: 1px solid transparent;
+       border-right: 1px solid transparent;
        display: block;
-       text-align: right;
+       text-decoration: none;
 }
-blockquote.question {
-       font-style: italic;
+#navbar a:visited {
+       color: #54638c;
 }
-blockquote.question p span {
-       font-style: normal;
-       width: 10%;
+#navbar a:hover
+, #navbar a:visited:hover {
+       background-color: #f5f6f7;
+       border-left: 1px solid  #d2d3d7;
+       border-right: 1px solid #d2d3d7;
+       text-decoration: underline;
 }
-#pagewidth {
-       width: 100%;
-       text-align: left;
+ul.subnav {
+       list-style: none;
+       margin-left: 0;
+       padding-left: 0;
+       margin-top: 0;
 }
-
-/* now the header*/
-#header {
-       margin-left: -3px;
-       width: 100%;
-       height: auto;
+ul.subnav li {
+       display: inline;
+       margin-right: 1em;
+}
+#searchbox {
+       text-align:left;
+       line-height: 1;
+       margin: 0 10px 0 0.5em;
+       padding: 1px 0 1px 0;
+       position: absolute;
+       top:0;
+       right:0;
+       font-size: 0.75em;
+}
+#searchbox p {
+       margin: 0;
+       padding: 0;
 }
-
-/* upper nested header box*/
 #upperheader {
-       width: 100%;
-       margin-top: 11px;
-       height: auto;
-       /* height: 4.8em; */
-       background: #FFFFFF;
+       margin:0;
+       padding:0;
 }
-
 #logo {
-       float: left;
-       margin-left: 6px;
-       background: #FFFFFF;
-}
-
-#serverselect {
-       float: right;
+       position:absolute;
+       top:0;
+       left:0;
+       padding: 0;
+       background-color: transparent;
+       border: 1px solid transparent;
+       border-top: 0;
+       width: 50px;
+       height: 5.07em;
+       min-height: 65px;
+}
+#logo a {
        display: block;
-       padding-top: 1px;
-       margin-right: 6px;
-       margin-left: auto;
-       text-align: right;
-       top: 0;
-       right: 0;
-}
-
-#serverselect:lang(de) {
-       width: 15em;
+       position: relative;
+       padding: 0;
+       height: 100%;
+       min-height: 65px;
 }
-#serverselect:lang(en) {
-       width: 13em;
+#logo img {
+       margin-top: 5px;
+       position: absolute;
+       bottom: 0.3em;
+       overflow: auto;
 }
-
-#serverselect p {
-       color: #990000;
-       font-size: 0.8em;
-       font-weight: normal;
+#logo:hover {
+       border: 1px solid #d2d3d7 ;
+       border-top: 0;
+       background-color: #f5f6f7;
 }
 
-#serverselect p select {
-       font-size: 88%;
-}
+/* Links */
 
-#serverselect p input {
-       font-size: 88%;
+a:link {
+       color: #0035c7;
+       text-decoration: underline;
 }
-.centerlogo {
-       margin-left: 260px;
-       margin-right: auto;
-       width: 125px;
-       text-align: center;
-       vertical-align: bottom;
+a:visited {
+       color: #54638c;
 }
-#cdlogo {
+a:link:hover {
+       text-decoration: none;
+       color: #00207a;
 }
-
-#navbar {
-       /* margin-top: 1em; */
-       clear: both;
-       padding-left: 0px;
-       /* margin-top: 5px; */
-       padding-top: 6px;
-       padding-bottom: 4px;
-       width: 100%;
-       height: auto;
-       text-align: center;
-       background: #DF0451;
+a:visited:hover {
+       text-decoration: none;
 }
-#navbar ul {
-       display: inline;
-       list-style-type: none; 
-       padding-left:  0px;
-       line-height: 1.5em;
+a:active {
+       color:#c2c3c7;
 }
-#navbar ul li {
-       display: inline;
-       margin: 0;
-       white-space: nowrap;
+a img {
+       border:0;
 }
-#navbar a {
-       color: #FFFFFF;
-       text-decoration: none;
-       padding: 0.2em 0.4em 0.2em 0.4em;
-       background-color: #000084;
-       border: 1px solid #000084;
-       font-family: Arial, Helvetica, sans-serif;
+a.rss_logo {
+       font-size: 0.75em;
+       float: right;
+       width: 35px;
+       line-height: 10px;
+       color: #ffffff;
+       background-color: #ff6600;
        font-weight: bold;
-       font-size: 0.9em;
-}
-#navbar a:hover {
-       background: #0000CC;
-}
-#navbar .hidecss, .hidecss {
-       display: none;
+       font-family: sans-serif;
+       text-align: center;
+       text-decoration: none;
+       padding: 0.25em;
+       margin-left: 0.25em;
+       border: 1px solid #ff6600;
 }
 
-/* the rest of page out of two nested boxes around */
+a.rss_logo:hover {
+       background-color: white;
+       border: 1px solid #ff6600;
+       color: #ff6600;
+}
 
-#outer {
-       background-color: #FFFFFF;
-       width: auto;
-       /* border:solid white 2px; */
+a.rss_logo.generic {
+       background-color: #ff8800;
 }
 
-#inner {
-       margin: -2px;
-       margin-top: 0;
-       width: 100%;
-       background: #FFFFFF;
-       /* overflow: auto; */
+a.rss_logo.generic:hover {
+       background-color: #ee7700;
 }
 
-#leftcol {
-       float: left;
-       margin: 0em 0.4em 0 0;
-       padding-left: 0;
-       padding-bottom: 1em;
-       width: auto;
-       background: #BBDDFF;
-       font-size: 0.9em;
-       font-family: Arial, Helvetica, sans-serif;
-       border: 1px solid #BBDDFF;
-       /* overflow: auto; */
+
+/* Secondnav */
+
+#second-nav {
+       width: 16em;
+       font-size: 0.75em;
+       line-height: 1.5;
+       float: right;
+       top: 0;
+       right: 0;
+       margin: 3em 0 0 0;
+       padding: 0 0 0 1em;
+       border-left: 1px solid #d2d3d7 ;
 }
-#leftcol a:link, #leftcol a:visited {
-       display: block;
+#second-nav ul {
+       padding:0;
+       margin:0;
+       list-style:none;
 }
-#leftcol a:hover {
-       background-color: #DDEEFF;
-       /* background-color: #FFFFFF; */
+#second-nav ul ul {
+       margin-left: 1em;
 }
-#leftcol ul {
-       margin: 2px;
-       padding: 0;
-       list-style-type: none;
+#second-nav li {
+       font-weight: normal;
+       margin:0;
+       padding:0;
+}
+#second-nav p {
+       line-height: 2;
        font-weight: bold;
+       margin: 0;
 }
-#leftcol ul.votemenu {
-       width: 11em;
+#second-nav h2 {
+       margin:0;
 }
-#leftcol ul.cdmenu {
-       width: 12em;
+
+/* Typography */
+
+p {
+       margin: 1.5em 0 1.5em 0;
 }
-#leftcol ul.votemenu ul li, #leftcol ul.cdmenu ul li {
-       padding-bottom: 0.4em;
+strong {
+       font-weight: bold;
 }
-#leftcol li ul {
-       display: inline;
+em {
+       font-style: italic;
+       color: #444;
 }
-#leftcol ul li {
-       padding: 0.2em 0;
+small {
+       font-size: 0.75em;
 }
-#leftcol ul ul {
-       font-size: 0.9em;
-       margin: 0;
+sup {
+       font-size: 0.75em;
+       vertical-align:top;
 }
-#leftcol ul li a {
-       line-height: 1.2em;
-       padding-right: 0.5em;
-       /* padding: 0.2em 0 0.3em 0em; */
+h1
+, h2
+, h3
+, h4
+, h5
+, h6 {
+       font-weight: 600;
+       color: black;
 }
-#leftcol ul ul li a {
+h1 {
        font-weight: normal;
-       padding: 0.1em 0.5em;
-       line-height: 1.1em;
+       font-size: 1.8em;
+       line-height: 0.83333;
+       margin: 0.83333em 0 0.83333em 0;
 }
-#leftcol ul ul li {
-       padding-top: 0;
+h2 {
+       font-size: 1.4em;
+       font-weight: normal;
+       line-height: 1.0714286;
+       margin: 1.0714286em 0 1.0714286em 0;
 }
-#leftcol p {
-       margin-left: 2px;
-       margin-right: 2px;
+h3 {
+       font-size: 1.125em;
+       line-height: 1.333em;
+       margin: 1.333em 0 0 0;
 }
-#leftcol p a {
-       display: block;
-       margin: 0;
+h4 {
+       font-weight: normal;
+       font-style: italic;
+       margin: 1.5em 0 1.5em 0;
+       color: #444;
 }
-#leftcol p img {
-       margin-left: 1em;
+h5 {
+       font-style: italic;
+       font-size: 0.75em;
+       margin: 2em 0 2em 0;
 }
-
-#maincol {
-       background: #FFFFFF;
-       margin-left: 12em;
-       margin-right: 0.5em;
-       margin-bottom: 1em;
+ol,ul {
+       padding-left: 1.5em;
+       margin-left:0;
+       margin: 1.5em 0 1.5em 0;
 }
-
-#maincol:lang(en), #maincol:lang(cz), #maincol:lang(ko),
-       #maincol:lang(no), #maincol:lang(sk), #maincol:lang(tr),
-       #maincol:lang(zh-CN), #maincol:lang(zh-HK), #maincol:lang(zh-TW) {
-       margin-left: 10em;
+ol>ol, ul>ul, li>ol, li>ul {
+       margin: 0;
 }
 
-#lefthalfcol {
-       float: left;
-       margin-left: 0em;
-       width: 49%;
+ol {
+       list-style-type: decimal;
 }
-
-#lefthalfcol dl {
-       margin-top: 0em;
+ul {
+       list-style-type: disc;
 }
-
-#righthalfcol {
-       margin-left: 50%;
-       width: 50%;
+th {
+       font-weight: bold;
+       margin: 1.5em 0 1.5em 0;
 }
-
-#righthalfcol dl {
-       margin-right: 0.2em;
+hr {
+       border: none;
+       background-color: #bbb;
+       height: 1px;
+       margin: 1.4375em 0 1.5em 0;
 }
-
-#footer {
-       clear: both;
-       width: 100%;
-       padding-top: 3px;
-       bottom: 0;
-       text-align: center;
-       margin: 1em 0 0 0;
-       border-top: 1px solid #BFC3DC;
+pre {
+       margin: 1.5em 0 1.5em 0;
+       overflow: auto;
+       font-family: monospace;
+       white-space: pre;
+       color: black;
 }
-
-#fineprint {
-       margin-top: 0.2em;
-       padding-top: 3px;
-       text-align: center;
-       font-size: 0.85em;
+tt, code {
+       font-family: monospace;
+       white-space: pre;
+       color: black;
 }
-
-.bordertop { border-top: 1px solid #BFC3DC; }
-
-dl.gloss dt {
+dt {
+       margin: 1.5em 0 0 0;
        font-weight: bold;
 }
-
-#footer ul {
-       display: inline;
-       list-style-type: none;
+dd {
+       margin:  0 0 0 1.5em;
 }
-
-#footer ul li {
-       display: inline;
+blockquote {
+       font-size: 0.75em;
+       margin: 2em;
+       line-height: 2;
 }
-
-#footer ul li a, table.y2k td {
-       white-space: nowrap;
+cite {
+       font-style: italic;
+       color: #444;
 }
-
-#footer p {
-       margin: 0px;
+acronym, abbr {
+       text-transform: uppercase;
+       font-size: 0.9em;
 }
-
-#main {
-       background: #bbddff;
-       padding: 1em 0; /* have some padding to get rid of collapsed margins */
+.toc {
+       font-size: 0.75em;
+       list-style:none;
+       background-image: url('Pics/greydot.png');
+       background-position: bottom left;
+       background-repeat: repeat-x;
+       line-height:1.833;
+       padding: 0;
+       max-width: 62%;
+       margin: 2em 0 2em 0;
+}
+.toc li {
+       background-image: url('Pics/greydot.png');
+       background-position: top left;
+       background-repeat: repeat-x;
+       padding: 0.0833em 0 0.0833em 0;
+ }
+.toc a {
+       display:block;
+       text-decoration: none;
+}
+.toc a:hover {
+       display:block;
+       background-color: #f0f0f4;
+       text-decoration: underline;
+}
+.toc dt {
+       margin: 0;
+       background-image: url('Pics/greydot.png');
+       background-position: top left;
+       background-repeat: repeat-x;
+       padding: 0.0833em 0 0.0833em 0;
 }
 
-/* classes for cards */
+/* Sitemap */
 
-.cardleft {
-       margin: 0 0 1em;
-       float: left;
-       width: 49%;
+.card {
+       clear:both;
+       margin:1.5em 0 1.5em 0;
+       background-position: 0 -50px;
+       background-repeat: repeat-x;
+       padding:0;
 }
-.cardright {
-       margin-left: 50%
-       /*margin: 0 1% 2em 50%; */
+.card ul {
 }
-.card {
-       clear: left;
-       margin: 0 0 1em;
+.card ul li {
+       list-style:none;
+}
+.card h2 {
+}
+.lefthalf {
+       float:left;
+}
+.righthalf {
+       margin-left:50%;
+}
+.lefthalf ul {
+       margin-top:0;
 }
 
-.cardleft h2, .cardright h2, .card h2 {
-       font-size: 120%;
-       background: #000000;
-       color: #FFD400;
+/* Footer */
+
+#footer {
+       font-size: 0.75em;
+       border: 1px solid #dfdfe0;
+       padding:1em;
+       background-color: #f5f6f7;
+       margin: 0 10px 0 52px;
+       line-height: 1.5em;
+       border-left: 0;
+       border-right: 0;
+}
+#content #footer {
+       margin-left: 0;
+}
+#footer p {
+       margin: 1em 0 1em 0;
+}
+#footer hr {
+       border-top: 1px solid #d2d3d7;
+       border-bottom: 1px solid white;
+       height: 0;
+}
+#footer .editbar li {
        display: inline;
-       padding: 0.2em 0.4em;
-       margin: 0 10px;
-       font-family: Arial, Helvetica, sans-serif;
-       letter-spacing: 0.2em;
+       margin-right: 2em;
 }
-
-.cardleft dl dd, .cardright dl dd , .card dl dd {
-       padding-bottom: 0.5em;
+#footer .info {
 }
-
-.cardleft div, .cardright div, .card div {
-       border: 2px solid #000000;
-       background: #FFFFFF;
-       padding: 0.5em;
-       margin: 2px 10px;
-       /* the next two lines xpand the div to heigth of left inner div */
-       overflow: auto;
+#fineprint {
+       margin-bottom: 1em;
 }
-
-div.lefthalf {
-       float: left;
-       width: 49%;
-       border: 0;
-       margin: 0; 
+#footermap {
+       list-style:none;
+       margin: 0 0 0 0;
        padding: 0;
-}
-
-div.righthalf {
+       width:100%;
+       overflow: hidden;
        border: 0;
-       margin: 0;
-       padding: 0;
 }
-/* colors for packages, warnings and news in ports */
-.warning, dt.new, .no {
-       color: red; /* FF0000 */
+ul#footermap-cola a
+, ul#footermap-colb a
+, ul#footermap-colc a
+, ul#footermap-cold a
+, ul#footermap-cole a {
+       padding-left: 0;
 }
-
-.psmallcenter, .psmalltrademark {
-       clear: both;
-       font-size: 0.85em;
-       text-align: center;
+ul#footermap-cola
+, ul#footermap-colb
+, ul#footermap-colc
+, ul#footermap-cold
+, ul#footermap-cole {
+       float:left;
+       width: 19%;
+       min-width: 11em;
+       height: 12em;           /* Update when adding items */
+       margin:0 1% 0 0;
+       padding: 2em 0 0 0;
+       list-style: none;
+}
+ul#footermap-cole {
+       width: 18.9%;
+       margin-right:0;
+}
+#footermap-wrap {
+       padding:2em;
+       border-top: 1px solid white;
+}
+#footermap a {
+       margin: 0;
 }
-
-.psmalltrademark {
-       color: green;
+#footermap ul{
+       list-style: none;
+       padding:0;
 }
-table.ridgetable, table.reltable {
-       border-width: 4px;
-       border-color: gray;
-       margin: 0 1em 1em 1em;
-       border-style: ridge;
-       border-collapse: collapse;
+#footermap li {
+       text-indent:0;
+       background-color: transparent;
+       font-weight:bold;
 }
-table.vote {
-       margin: 0 auto;
-       border-width: 3px;
-       border-color: gray;
-       border-style: ridge;
-       border-collapse: collapse;
+#footermap li ul {
+       margin: 0;
+       padding: 0;
 }
-#pcontentsres col, #pcontentsres th, #pdownload th, #pdownload td, table.ridgetable th, table.ridgetable td,
-       table.reltable td, table.reltable th {
-       border: 2px #BFC3DC;
-       border-style: ridge;
-       padding: 0.1em;
+#footermap li li {
+       margin:0;
+       text-indent:0;
+       padding:0;
+       font-weight:normal;
+       border:0;
+       background-image:none;
+       background-color:transparent;
 }
-table.reltable th {
-       background-color: #44CCCC;
+#serverselect {
 }
-table.vote th {
-       border: 1px solid gray;
-       background-color: #DDDDDD;
+#serverselect input
+, #serverselect option 
+, #serverselect select {
 }
-table.vote td {
-       border: 1px solid gray;
-       padding: 4px;
+#serverselect ul {
+       display: inline;
+       margin-left: 2em;
 }
-table.reltable tr.odd {
-       background-color: #FFFFFF;
+#serverselect li {
+       list-style: none;
+       display: inline;
+       padding:0 1em 0 1em;
+       margin:0;
 }
-table.reltable tr.even {
-       background-color: #DDDDDD;
+#serverselect form p {
+       margin:0;
+       padding:0;
+       line-height: 1;
 }
-table.stattrans {
-       margin: 0 auto;
-       width: 95%;
-       border: 1px solid black;
-       background-color: #cdc9c9;
+.lcol50 {
+       float: left;
+       width: 49%;
+       font-size:0.75em;
+       margin:0 0 0 0;
+       padding:0 0.5em 0 0;
 }
-table.stattrans th {
-       text-align: center;
-       padding: 2px;
+.lcol50 h2 {
+       margin-top:0;
 }
-table.stattrans td {
-       text-align: right;
-       padding: 2px;
+.rcol50 {
+       margin:0 0 0 51%;
+       padding:0;
+       font-size:0.75em;
 }
-table.stattrans tbody th {
-       text-align: left;
-       font-weight: normal;
+form#pageLang {
+       display: inline;
 }
 
-/* partners */
-.partnertype {
-       background-color: #DD0000;
-       padding: 0.2em 0 0.2em 1em;
-       color: #FFFFFF;
+/* Extras */
 
+input:focus {
+       background-color:#FFFFCB;
+       
 }
-div.partnerlogo {
-       display: table-cell;
-       vertical-align: middle;
-       text-align: center;
-       width: 30%;
+.hidecss {
+       display: none;
 }
-div.partnerdesc {
-       display: table-cell;
-       font-size: 85%;
+.clear {
+       clear:both
 }
-div.cdflash {
-       background-color: #E09E86;
-       width: 80%;
-       margin: auto;
-       text-align: center;
+#clear {
+       clear:both;
+       border:0;
+       height:1px;
+       display:block;
 }
-.cdrsync {
-       color: #6B1300;
+.quicklist:before {
+       content: "Quick Links: ";
+       font-weight: bold;
 }
-/* debian installer */
-
-.dierror {
-       background-color: #FF6060;
+.quicklist {
+       list-style: none;
+       font-size: 0.75em;
+       margin: 2em 0 2em 0;
+       padding:0;
+       text-indent:0;
+       line-height: 2em;
 }
-.dibad {
-       background-color: #F7FF60;
+.quicklist li  {
+       display:inline;
 }
-.digood {
-       background-color: #7AFF71;
+.item p{
+       margin: 0;
 }
-
-/* useful classes */
-
-th.eventheader {
-       background-color: #BBDDFF;
+.item h2
+, .item p
+, .item ul{
+       margin-right: 10px 
 }
-.center {
-       text-align: center;
+.item h2
+, .item h3
+, .item h4
+, .item h5 {
+       margin-top: 0;
+}
+.line {
+       padding: 0;
+       width: auto;
+       overflow: hidden;
+       }
+div.downloads {
+       border-top: 0.17em solid #339900;
+       margin: 1.33em 0 0 0; 
+}
+.downloads ul.downlist {
+       margin:0;
+}
+div.downloads .col50 { 
+       border-top: 0.15em solid #339900;
+}
+ul.downlist {
+       padding-left: 30px;
+       text-indent:0;
+       background: url('Pics/emblem-downloads.png') no-repeat 0 0.15em;
+       /* 
+        * border-top: 0.17em solid #339900;
+        */
+}
+ul.quicklist.downlist {
+       border-top: 0.17em solid #339900;
+       padding-top: 0.25em;
+       margin-top: 1.6em;
+}
+ul.downlist li {
+       display: inline;
+}
+ul.downlist li:after {
+       content: ', ';
+}
+ul.downlist li:last-child:after {
+       content: '';
+}
+div.tip
+, div.important
+, div.warning
+, div.note 
+, p.trans-note {
+       padding:0 2em 0 4em;
+       margin: 1.85em 0 1.85em 0;
+       background-repeat: no-repeat;
+       background-position: 0.5em 1em;
+       font-size: 0.75em;
+       line-height: 2em;
+       background-color:#FFFFCB;
+       border:0.15em solid #CCCCA3;
 }
-.right {
-       text-align: right;
+div.tip p
+, div.important p
+, div.warning p
+, div.note p {
+       margin: 1em 0 1em 0;
 }
-ul.circlelist {
-       list-style-type: circle;
+div.tip
+, p.trans-note {
+       background-image: url('Pics/admon-tip.png');
 }
-.centerdiv table {
-       margin-left: auto;
-       margin-right: auto;
+div.important{
+       background-image: url('Pics/admon-important.png');
 }
-ul.discless {
-       list-style-type: none;
+div.warning {
+       background-image: url('Pics/admon-warning.png');
 }
-.top, img.ico {
-       vertical-align: top;
+div.note {
+       background-image: url('Pics/admon-note.png');
 }
-img.ico {
+
+/* Layout Elements */
+
+.col50
+, .cardleft
+, .cardright {
+       width:47.5%;
        float: left;
-       margin: 0 0.2em 0 0;
+       padding-bottom: 1.5em;
 }
-img.rightico {
-       float: right;
-       vertical-align: top;
-       margin: 0 0 0 0.2em;
+.lastcol
+, .cardright {
+       margin: auto;
+       width: 47.5%;
+       float:left;
+       padding-right: 0;
+       margin-left: 5%;
 }
-img.cve {
-       vertical-align: -25px;
+.lastcol h2
+, .lastcol p
+, .lastcol ul {
+       margin-right:0;
 }
-.y2kok, .yes {
-       color: #00BB00;
+.cardleft h2 {
+       margin-right: 1em;
 }
-.y2kok2 {
-       color: #00BBBB;
+.cardright div {
+       margin-left: 1.5em;
 }
-.bluehead {
-       color: #0000FF !important;
+.cardright h2 {
+       margin-left: 1em;
 }
-span.halfsize {
-       font-size: 80%;
+.votemenu a {
+       display:block;
 }
-span.ddpbooktitle, span.merchtitle {
-       font-size: larger;
+table.vote td, table.vote th {
+       padding-right: 1.5em;
 }
-a:link { color: #0000FF; }
-a:visited { color: #800080; }
-a:hover { color: #F000FF; }
-a:active { color: #FF0000; }
-
-.navpara a, col.y2k {
-       white-space: nowrap;
-       /* this is to keep from breaking at whitespace in anchors */
+#maincol.with-toolbox {
+       margin-right: 14em;
 }
-
-/* language dependent stuff */
-/* quotes */
-html[lang="de"] q:before {
-       content: "\00BB";
+div.tabular table, table.tabular, table.vendors {
+/*     border-bottom: 1px solid #a9abb3;
+       border-top: 1px solid #a9abb3; */
+       border-bottom: 0.15em solid #666;
+       border-top: 0.15em solid #666;
+       width: auto;
+       font-size: 0.75em;
+       line-height: 2em;
+       margin-bottom: 4em;
+       margin-top: -0.169em;
 }
-html[lang="de"] q:after {
-       content: "\00AB";
+table td {
+       padding-right: 1.5em;
 }
-html[lang="de"] q q:before {
-       content: "\203A";
+div.tabular table tr, table.tabular tr, table.vendors tr {
+       width: 100%;
 }
-html[lang="de"] q q:after {
-       content: "\2039";
+table th {
+       padding-right: 1.5em;
 }
-html[lang="pl"] q:before { content: "\201E"; }
-html[lang="pl"] q:after { content: "\201D"; }
-html[lang="pl"] q q:after { content: "\2019"; }
-html[lang="pl"] q q:before { content: "\201A"; }
-
-html[lang="fr"] q:before { content: "\00AB\00A0"; }
-html[lang="fr"] q:after { content: "\00A0\00BB"; } 
-html[lang="fr"] q q:before { content: "\2039\00A0"; }
-html[lang="fr"] q q:after { content: "\00A0\203A"; }
-
-#leftcol:lang(ja) ul ul {
-       font-size: 0.95em;
+div.tabular table td, table.tabular td, table.vendors td {
+       background-image: url(Pics/greydot.png);
+       background-position: top left;
+       background-repeat: repeat-x;
 }
-html[lang|="zh"] strong {
-       /* color: #FFFFFF; */
-       background-color: yellow;
+div.tabular table > td:fist-child, table.tabular  > td:fist-child, table.vendors  > td:fist-child {
+       background-image: none;
 }
-.underline { text-decoration: underline; }
-.clr { clear:both; }
-/*.content{padding:5px;} */ /*padding for content */
-/* #header .content{padding-bottom:0;} */ /*padding bottom 0 to remove space in IE5 Mac*/
-
-/* for l10n-arabic */
-.bidi {
-       direction: rtl;
-       text-align: right;
+#pageLang p, #pageLang form {
+       display: inline;
 }
-
-#leftcol, #navbar, #navbar a {
-       -moz-border-radius: 15px;
-       /* this goes to the end as the css validator does not like it
-       will be replaced by border-radius with css3 */
+.inline  a {
+       float: left;
+       margin-right: 1em;
+}
+
+#langSelector {
+/*      color: #0035c7;
+        text-decoration: underline; */
+}
+#langSelector:hover {
+/*      cursor: pointer;
+        text-decoration: none; */
+}
+#langContainer {
+       padding-top: 0.5em;
+/*     #background-color: #f5f6f7;
+        background-color: white;
+        background-image:url('Pics/gradient-flipped.png');
+        background-position: bottom;
+        background-repeat: repeat-x;
+        display: none;
+        position: absolute;
+        left: -1em;
+        border-bottom: 1px solid #dfdfe0;
+        margin-right: -1em;
+        min-width: 100%; */    /* make it reach the right edge if only a few
+                                   languages are available */
+       }
+#langContainer a {
+        margin-right: 1em;
+}
+#pageLang:hover #langContainer {
+    display: block;
 }
diff --git a/static/debpkg.css b/static/debpkg.css
new file mode 100644 (file)
index 0000000..aa484e5
--- /dev/null
@@ -0,0 +1,316 @@
+/*
+       http://www.debian.org Stylesheet
+
+       Copyright 2011 Kalle Söderman
+
+       This stylesheet is free software; you can redistribute it and/or modify it
+       under the terms of the GNU General Public License, version 2, as published by
+       the Free Software Foundation.
+
+       This program is distributed in the hope that it will be useful, but WITHOUT ANY
+       WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+       PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License along with
+       this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+       Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+       The license text can also be found at http://www.gnu.org/copyleft/gpl.html and
+       /usr/share/common-licenses/GPL-2 on Debian GNU/Linux.  
+*/
+
+@import url("debian.css");
+
+#footer {
+       padding-right: 10px;
+       margin-left: 52px;
+       clear: both; /* added because right sidebar overlaps footer */
+}
+#pnavbar {
+       font-size: 0.75em;
+       background-color: transparent;
+       background-color: #f5f6f7;
+       margin:0;       
+       padding: 6px 0.25em 7px  0.25em;
+       border-bottom: 1px solid #d2d3d7 ;
+       text-transform:lowercase;
+       line-height: 1;
+}
+#pmoreinfo {
+       width: 20em;
+       float:right;
+       padding:0 0 0 0.5em;
+       margin: 0 0 10px 0.5em;
+       border-left:1px solid #a9abb3;
+       font-size: 0.75em;
+       line-height: 1.5;
+}
+#pmoreinfo a {
+       text-decoration: none;
+}
+#pmoreinfo div.screenshot {
+       min-height: 120px;
+}
+#pmoreinfo a:hover {
+       text-decoration: underline;
+}
+#pmoreinfo ul {
+       list-style:none;
+       margin: 0;
+}
+#pmoreinfo ul ul {
+       margin:0;
+}
+#pmoreinfo li {
+       font-weight: normal;
+}
+#pmoreinfo p {
+}
+#pmoreinfo h2 {
+       font-size: 1em; 
+       font-weight: bold;
+       line-height: 2;
+       margin:0;
+}
+#pmoreinfo h3 {
+       font-size: 1em;
+       font-weight: normal;
+       line-height: 2;
+       margin:0;
+}
+#packagesearch #breadcrumbs {
+       margin-bottom: 0;
+}
+       
+#hpacketsearch form {
+       margin:0; padding:0;
+}
+#hpacketsearch {
+       background: transparent;
+       display:block;
+       padding: 1px 3px 1px 0;
+       text-align: right;
+}
+.perror
+, #psearchtoomanyhits {
+       padding:0 2em 0 4em;
+       margin: 1.85em 0 1.85em 0;
+       background-repeat: no-repeat;
+       background-position: 0.5em 1em;
+       font-size: 0.75em;
+       line-height: 2em;
+       background-color:#FFFFCB;
+       border:0.15em solid #CCCCA3;
+}
+#psearchtoomanyhits {
+       background-image: url('Pics/admon-note.png');
+}
+.perror p {
+       margin-bottom: 0;
+}
+div.warning {
+       background-image: url('Pics/admon-warning.png');
+}
+#psearchres h2 {
+       background-image: url('Pics/reddot.png');
+       background-repeat: repeat-x;
+       background-position: top left;
+       padding: 0.5em 0 0 0;
+       margin: 0.5em 0 1em 0;
+}
+#psearchres
+, #pcontentsres {
+       padding-top: 0;
+}
+#pcontentsres tr {
+       text-align: left;
+}
+#pcontentsres td {
+       padding-right: 1.5em;
+}
+#pcontentsres {
+       margin-bottom: 1.5em;
+       }
+#psearchres ul{
+       margin-top:0;
+}
+#psearchres ul li{
+}
+.file {
+       font-family: monospace;
+}
+div#pothers {
+       margin-top:0.25em;
+       float: right;
+}
+#pothers a, #pothers strong {
+}
+#psearchsug {
+       font-size: 0.75em;
+       margin: 0;
+       line-height: 2;
+       background-image: url('Pics/reddot.png');
+       background-repeat: repeat-x;
+       background-position: bottom left;
+}      
+#psearchsug p {
+       margin: 0;
+}
+#psearchsug ul {
+       margin: 1em 0 1em 0;
+       }
+
+/* Package sidebar */
+#ptablist {
+}
+
+/*     Package dependencies */
+
+#pdeplegend {
+       font-weight:bold;
+       padding: 0 0.5em 0 0;
+       border:1px solid #a9abb3;
+}
+#pdeplegend img {
+       margin-left: 1em;
+}
+#pdeplegend tr,#pdeplegend ul,#pdeplegend li {
+       margin:0; padding:0;
+}
+#pdeplegend td {
+       padding-left: 1.5em;
+       padding-right: 1em;
+}
+#pdeps dd {
+       margin:0;
+       padding:0;
+}
+#pdeps dt {
+}
+
+#pdeplegend ul.uldep
+, #pdeplegend ul.uladep
+, #pdeplegend ul.ulrec
+, #pdeplegend ul.ulidep
+, #pdeplegend ul.ulsug {
+       margin-left: 0.5em;
+       list-style-position: inside;
+}
+
+#pdeps ul.uldep, #pdeps ul.uladep {
+       list-style-type: disc;
+       list-style-image: url(Pics/dep.png);
+}
+#pdeps ul.ulrec, #pdeps ul.ulidep {
+       list-style-type: square;
+       list-style-image: url(Pics/rec.png);
+}
+#pdeps ul.ulsug {
+       list-style-type: circle;
+       list-style-image: url(Pics/sug.png);
+}
+#pdownload {
+       text-align: left;
+       margin-right: 18em;
+}
+#pdownload table {
+       text-align:left;
+       margin-bottom: 2em;
+       border-bottom: 1px solid #a9abb3;
+       border-top: 1px solid #a9abb3;
+       width: 100%;
+       font-size: 0.75em;
+}
+#pdeplegend td li {
+       padding-left:0;
+}
+#pdeplegend td
+ ,#pdeplegend tr
+ ,#pdeplegend table
+ ,#pdeplegend ul
+ ,#pdeplegend li
+ ,#pdeplegend tbody {
+       margin:0;
+       padding:0;
+}
+.pkgreport #pdeplegend td li {
+       margin:0.25em 0 0 2em;
+}
+#ptags {
+       font-size: 0.75em;
+       margin: 0 22em 0 2em;
+       line-height: 2;
+}
+.card {
+       clear:both;
+       margin:2em 0 2em 0;
+       background-position: 0 -50px;
+       background-repeat: repeat-x;
+       padding:8px 0 8px 0;
+}
+.card ul {
+       margin:0.5em 0 1em 0;
+}
+.card ul li {
+       list-style:none;
+}
+.card h2 {
+       margin:0;
+}
+#lefthalfcol {
+       float:left;
+       width: 50%;
+       padding-right: 1em;
+       margin:0;
+}
+#righthalfcol {
+       margin:0;
+       margin-left:50%;
+       padding-left: 1em;
+}
+#lefthalfcol dl
+, #righthalfcol dl {
+       margin-top: 0;
+}
+#lefthalfcol dd
+, #righthalfcol dd {
+       margin-bottom: 1em;
+}      
+.lefthalf ul {
+       margin-top:0;
+}
+strong.pmarker {
+       padding: 0 0.25em 0 0.25em;
+}
+span.keyword {
+               color: #444;
+               font-weight: bold;
+               letter-spacing: 0.05em;
+}
+h1 strong.pmarker {
+       font-weight: normal;
+}
+.psearch-other-hits {
+               margin-top: 1em;
+}
+table {
+       border-bottom: 1px solid #a9abb3;
+       border-top: 1px solid #a9abb3;
+       }
+
+td {
+               background-image: url(Pics/greydot.png);
+               background-position: top left;
+               background-repeat: repeat-x;
+}
+th {
+}
+.vcurrent {
+       background-color: #bfb;
+}
+.volder {
+       background-color: #ffb;
+}
+.vold {
+       background-color: #fbb;
+}
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644 (file)
index 0000000..8f4e75c
Binary files /dev/null and b/static/favicon.ico differ
index dc09e55c72fe48cfa924dc0f36653470cdac14da..a089e4eac3ba8681d1a724c71abdd27fb5e6bd2c 100644 (file)
@@ -1,4 +1,17 @@
-.sarge-volatile, .sarge-backports, .etch-m68k, .etch-backports,
-.lenny-volatile, .lenny-backports .squeeze-backports {
+.lenny-volatile, .lenny-backports, .lenny-backports-sloppy,
+.squeeze-updates, .squeeze-backports {
        font-size: smaller;
 }
+
+table#sponsorslist {
+       text-align: center;
+       border: 1px solid black;
+       padding: 1em;
+       border-collapse: collapse;
+       empty-cells: show;
+}
+
+#sponsorslist th, #sponsorslist td {
+       border: 1px solid black;
+       padding: .5em;
+}
index 4d24e05b74a8bd566bdc84ca3aadbd15e18c3aa1..ae5773ee6328cc4349350ec2088c0eef9ca347a2 100644 (file)
@@ -6,7 +6,7 @@
    organisation = 'Debian'
    project_homepage = 'http://www.debian.org/'
    packages_homepage = '/'
-   packages_homepage_abs = 'http://packages.debian.net/'
+   packages_homepage_abs = 'http://packages.debian.org/'
    old_releases = 'http://archive.debian.net/'
    searchformurl = packages_homepage
    search_url = '/search'
@@ -19,7 +19,7 @@
    security_mirror = 'security.debian.org'
    security_mirror_url = security_mirror _ '/debian-security'
    security_suite_suffix = '/updates'
-   changelogs_url = 'http://packages.debian.org/changelogs/'
+   changelogs_url = '/changelogs/'
    policy_url = 'http://www.debian.org/doc/debian-policy/'
    cn_help_url = project_homepage _ 'intro/cn'
    patch_tracking_url = 'http://patch-tracker.debian.org/package'
@@ -27,7 +27,7 @@
    screenshots_thumb_url = 'http://screenshots.debian.net/thumbnail-with-version/'
    logo = {
        url => project_homepage,
-        src => '/Pics/openlogo-nd-25.png',
+        src => '/Pics/openlogo-50.png',
         alt => organisation,
    }
    copyright = {
    trademarknotes = g('%s is a <a href="%s">trademark</a> of %s', organisation, trademark.url, trademark.name)
    sponsors = [
    {
-       url => 'http://example.invalid/',
-       name => 'Example Sponsor, Inc.',
+       url => 'http://1und1.de/',
+       name => '1&1 Internet AG',
    },
    {
-       url => 'http://example2.invalid/',
-       name => 'Example2 Sponsor, Inc.',
+       url => 'http://www.hp.com/',
+       name => 'Hewlett-Packard',
+   },
+   {
+       url => 'http://cs.helsinki.fi/index.en.html',
+       name => 'University of Helsinki - Department of Computer Science',
+   },
+   {
+       url => 'http://www.csail.mit.edu/',
+       name => 'MIT Computer Science & Artificial Intelligence Lab',
    },
    ]
 -%]
 [%-
    # possible values for importance: high, normal, low
-   sitewidemsg = { importance => "high",
-                  txt => g('Please note that this is an experimental version of <a href="http://%s/">%s</a>. Errors and obsolete information should be expected', 'packages.debian.org', 'packages.debian.org') }
+#   sitewidemsg = { importance => "high",
+#                 txt => g('Please note that this is an experimental version of <a href="http://%s/">%s</a>. Errors and obsolete information should be expected', 'packages.debian.org', 'packages.debian.org') }
+#                 txt => "Site maintainance in progress, some temporary problems might occour." }
 -%]
 [%# @translators: . = decimal_point , = thousands_sep, see Number::Format %]
 [%- USE num = Number.Format( decimal_point => g('.'),
index c563e6e3386ee8971711ce1d5eb98727c7c46327..0cad75b213b1e4d322aa3f932bf3ee011971ff94 100644 (file)
@@ -4,9 +4,9 @@
    standard_priority = 'optional'
 
    suite_aliases = {
-               etch => 'oldstable', 
-               lenny => 'stable',
-               squeeze => 'testing',
+               lenny => 'oldstable', 
+               squeeze => 'stable',
+               wheezy => 'testing',
                sid => 'unstable',
                   }
 
index 3969496eb52a973db9ccac04e43063997847bff8..79ee6f4b8bf4166acf0b73403de64330c851dd9e 100644 (file)
@@ -134,7 +134,7 @@ mirrors = {
        backports => {
                url => 'http://backports.debian.org/',
                title => g('newer packages that have been adapted to stable releases of Debian'),
-               mirror_list => 'http://www.backports.org/debian/README.mirrors.html',
+               mirror_list => 'http://backports.debian.org/Mirrors/',
                europa => [
                        "backports.debian.org/debian-backports",
                        "ftp.at.debian.org/debian-backports/",
index 7944c674cfd3dde188e62a65afb3a414580b7b9c..c333989ac32c190c70c82ac302377c992413d7c6 100644 (file)
@@ -8,8 +8,10 @@ Total page evaluation took [% benchmark %]<br>
 [% IF langs && langs.size > 0 %]
 <hr class="hidecss">
 <!--UdmComment-->
+<div id="pageLang">
+<div id="langSelector">
 <p>[% g('This page is also available in the following languages (How to set <a href="%s">the default document language</a>):', cn_help_url) %]</p>
-<p class="navpara">
+<div id="langContainer">
 [% FOREACH l IN langs %]
 <a href="[% IF keyword_esc;
                make_search_url('',"keywords=$keyword_esc",'lang',l.lang);
@@ -18,7 +20,9 @@ Total page evaluation took [% benchmark %]<br>
            END %]" title="[% l.tooltip %]" hreflang="[% l.lang %]" lang="[% l.lang %]" rel="alternate">[% l.selfname %]
 [%- IF l.transliteration %] ([% l.transliteration %])[% END %]</a>
 [% END %]
-</p>
+</div>
+</div>
+</div>
 <!--/UdmComment-->
 [% END %]
 
@@ -43,6 +47,5 @@ Total page evaluation took [% benchmark %]<br>
 [% END %]
 </div> <!-- end fineprint -->
 </div> <!-- end footer -->
-</div> <!-- end outer -->
 </body>
 </html>
index f8d520bedd8bf74f95ff953283b9c30cb8f0d276..fadca95c8df26f7af554472c61bde3400f015670 100644 (file)
@@ -9,29 +9,42 @@
 <meta name="Keywords" content="[% organisation %],  [% keywords %]">
 [% html_meta %]
 
-<link href="/debian.css" rel="stylesheet" type="text/css" media="all">
-<link href="/packages.css" rel="stylesheet" type="text/css" media="all">
-<link href="/packages-site.css" rel="stylesheet" type="text/css" media="all">
+<link href="/debpkg.css" rel="stylesheet" type="text/css" media="all">
 [% IF rss_alternate %]
 <link rel="alternate" type="application/rss+xml" title="RSS" href="[% rss_alternate %]">
 [% END %]
 <script src="/packages.js" type="text/javascript"></script>
 </head>
 <body>
-[%- IF sitewidemsg -%]
-<div id="psitewidemsg" class="[% sitewidemsg.importance %]">
-[%- IF sitewidemsg.title -%]<h2>[% sitewidemsg.title %]</h2>[% END %]
-[% sitewidemsg.txt %]
-</div>
-[%- END -%]
 <div id="header">
    <div id="upperheader">
 
    <div id="logo">
   <!-- very Debian specific use of the logo stuff -->
-  <a href="[% logo.url %]"><img src="[% logo.src %]" alt=""></a>
-  <a href="[% logo.url %]"><img src="/Pics/debian-small.png" alt="[% logo.alt %]" width="90" height="31"></a>
+<a href="[% logo.url %]"><img src="[% logo.src %]" alt="Debian" with="50" height="61"></a>
 </div> <!-- end logo -->
+<p class="hidecss"><a href="#inner">[% g('skip the navigation') %]</a></p>
+<p class="section"><a href="/">Packages</a></p>
+</div> <!-- end upperheader -->
+<!-- navbar -->
+<div id="navbar">
+<ul>
+   <li><a href="http://www.debian.org/intro/about">About Debian</a></li>
+   <li><a href="http://www.debian.org/distrib/">Getting Debian</a></li>
+   <li><a href="http://www.debian.org/support">Support</a></li>
+   <li><a href="http://www.debian.org/devel/">Developers'&nbsp;Corner</a></li>
+</ul>
+</div> <!-- end navbar -->
+
+<div id="pnavbar">
+ &nbsp;&#x2F; <a href="[% packages_homepage %]" title="[% g('%s Packages Homepage', organisation) %]">[% g('Packages') %]</a>
+[% FOREACH n IN navigation %]
+ &#x2F; [% IF n.url %]<a href="[% n.url %]" [% IF n.title %]title="[% n.title %]"[% END %]>[% n.name %]</a>[% ELSE %][% n.name %][% END %] 
+[% END %]
+</div> <!-- end navbar -->
+
+</div> <!-- end header -->
+<div id="content">
 
 [%- IF print_search_field %]
 [% checked = 'checked="checked"'
 </div> <!-- end hpacketsearch -->
 </form>
 [% END %]
+[%- IF sitewidemsg -%]
+<div id="psitewidemsg" class="[% sitewidemsg.importance %]">
+[%- IF sitewidemsg.title -%]<h2>[% sitewidemsg.title %]</h2>[% END %]
+[% sitewidemsg.txt %]
+</div>
+[%- END -%]
 
-</div> <!-- end upperheader -->
-
-<p class="hidecss"><a href="#inner">[% g('skip the navigation') %]</a></p>
-<div id="pnavbar">
- &gt;&gt; <a href="[% project_homepage %]" title="[% g('%s Homepage', organisation) %]">[% organisation %]</a>
- &gt;&gt; <a href="[% packages_homepage %]" title="[% g('%s Packages Homepage', organisation) %]">[% g('Packages') %]</a>
-[% FOREACH n IN navigation %]
- &gt;&gt; [% IF n.url %]<a href="[% n.url %]" [% IF n.title %]title="[% n.title %]"[% END %]>[% n.name %]</a>[% ELSE %][% n.name %][% END %] 
-[% END %]
-</div> <!-- end navbar -->
-
-</div> <!-- end header -->
-<div id="outer">
-<div id="inner">
 
 [%- IF page_title %]
   <h1>[% page_title %]</h1>
index bdb8f3c7efacbd58699af14e1096ebc44981da1f..8ef6fae0861ca66c95b0c8387451dc13c6bf48fd 100644 (file)
@@ -4,12 +4,12 @@
        keywords = g('Packages')
 -%]
 [%-
-    all_suites = [ 'etch', 'etch-m68k', 'etch-volatile', 'etch-backports',
-                  'lenny', 'lenny-volatile', 'lenny-backports', 'squeeze', 'squeeze-backports', 'sid' ]
+    all_suites = [ 'lenny', 'lenny-volatile', 'lenny-backports', 'lenny-backports-sloppy', 'squeeze', 'squeeze-updates', 'squeeze-backports', 'wheezy', 'sid' ]
     version_numbers = { sarge => '3.1',
                        etch  => '4.0',
-                       lenny => '5.0' }
-    current_release = 'lenny'
+                       lenny => '5.0',
+                       squeeze => '6.0' }
+    current_release = 'squeeze'
     all_sections = [ 'main', 'contrib', 'non-free' ]
     all_architectures = [   'alpha', 'arm', 'armel', 'amd64', 'avr32', 'hppa', 'i386',
                             'ia64', 'kfreebsd-amd64', 'kfreebsd-i386', 'mips',
@@ -41,6 +41,7 @@
 <h3>[% g('Search package directories') %]</h3>
 
 <form method="GET" action="/search">
+<p>
 <label for="kw">[% g('Keyword:') %]</label>
 <input type="text" size="30" name="keywords" id="kw">
 <input type="submit" value="[% g('Search') %]"> <input type="reset" value="[% g('Reset') %]">
@@ -70,6 +71,7 @@ Distribution:
 [% END %]
   <option value="all" selected="selected">[% g('any') %]</option>
 </select>
+</p>
 </form>
 <p>[% g('There are shortcuts for some searches available:') %]</p>
 <ul>
@@ -83,6 +85,7 @@ Distribution:
 
 <p>[% g('This search engine allows you to search the contents of %s distributions for any files (or just parts of file names) that are part of packages. You can also get a full list of files in a given package.', organisation) %]<br>
 <form method="GET" action="/search">
+<p>
 <input type="hidden" name="searchon" value="contents">
 
 <label for="keyword">[% g('Keyword:') %]</label>
@@ -116,6 +119,7 @@ Distribution:
 [% END %]
   <option value="any" selected="selected">[% g('any') %]</option>
 </select>
+</p>
 </form>
 
-[% PROCESS 'html/foot.tmpl' page_name=packages_homepage copyright.years = '1997 - 2009' %]
+[% PROCESS 'html/foot.tmpl' page_name=packages_homepage copyright.years = '1997 - 2010' %]
index 683d8bc0435673a6dda87ca2ae0cfaf701f18eb7..317d424ccfea4a0700ae1a618a43debaba739b1d 100644 (file)
@@ -38,7 +38,7 @@
        [% END %]
 [% END %]
 
-<p>[% g('Search in specific suite:') %]
+<p>[% g('Limit to suite:') %]
 [% FOREACH s IN all_suites %]
        [% IF s != suite_str %]
        [<a href="[% make_search_url('',"keywords=$keyword_esc",'suite',s) %]">[% s %]</a>]
@@ -51,7 +51,7 @@
        make_search_url('',"keywords=$keyword_esc",'suite','all')) %]
 [% END %]
 
-<p>[% g('Limit search to a specific architecture:') %]
+<p>[% g('Limit to a architecture:') %]
 [% FOREACH a IN all_architectures %]
    [% IF a != arch_str %]
    [<a href="[% make_search_url('',"keywords=$keyword_esc",'arch',a) %]">[% a %]</a>]
@@ -70,7 +70,6 @@
 <p>[% g('<a href="%s">Some</a> results have not been displayed due to the search parameters.',
        "$search_url?keywords=$keyword_esc") %]</p>
 [% END %]
-</div>
 
 [%- PROCESS 'html/messages.tmpl' -%]
 
 
 [% IF too_many_hits %]
 [% IF opts.searchon != "names" %]
-<p id="psearchtoomanyhits">[% g("Note that this only shows the best matches, sorted by relevance. If the first few packages don't match what you searched for, try using more keywords or alternative keywords.") %]</p>
+<div class="note">
+<p>[% g("Note that this only shows the best matches, sorted by relevance. If the first few packages don't match what you searched for, try using more keywords or alternative keywords.") %]</p>
+</div>
 [% ELSE %]
-<p id="psearchtoomanyhits">
+<div class="note">
+<p>
 [%- IF results %]
 [% g("Your keyword was too generic, for optimizing reasons some results might have been suppressed.<br>Please consider using a longer keyword or more keywords.") %]
 [%- ELSE -%]
 [% g("Your keyword was too generic.<br>Please consider using a longer keyword or more keywords.") %]
 [% END -%]
 </p>
+</div>
 [% END; END %]
 
 [% UNLESS results || too_many_hits %]
index 3388fe3a2cf5a69f67fac699f49493106a854bd0..a5ed01c8bd7e595671a784a327dfa61c288cebc8 100644 (file)
@@ -55,7 +55,7 @@
 [% END %]
 
 [% UNLESS search_architectures.size == 1 || all_architectures.size == 1 %]
-<p>[% g('Limit search to a specific architecture:') %]
+<p>[% g('Limit to a architecture:') %]
 [% FOREACH a IN all_architectures %] [<a href="[% make_search_url('',"keywords=$keyword_esc",'arch',a) %]">[% a %]</a>][% END %]
 [% END %]
 
@@ -85,7 +85,9 @@
 [% g('Found <strong>%u results</strong>.', results.size) %]
 
 [% IF too_many_hits %]
-<p id="psearchtoomanyhits">[% g('Note: Your search was too wide so we will only display only the first about 100 matches. Please consider using a longer keyword or more keywords.') %]</p>
+<div class="note">
+<p>[% g('Note: Your search was too wide so we will only display only the first about 100 matches. Please consider using a longer keyword or more keywords.') %]</p>
+</div>
 [% END %]
 
 <table>
index ebbba777fb86e0d39bd39ab8bfd7a5f471d2447a..c380d9f30d2e2af28fa11f5ed9885cd34fd5dddf 100644 (file)
@@ -64,7 +64,9 @@
 <div id="pmoreinfo">
 <h2>[% g('Links for %s', pkg) %]</h2>
 [% IF screenshots_url && screenshots_thumb_url && !is_source %]
+<div class="screenshot">
 <a id="screenshot" href="[% screenshots_url _ pkg %]"><img src="[% "$screenshots_thumb_url/$pkg/$version" %]" alt="Screenshot" border="0"/></a>
+</div>
 [% END %]
 <h3>[% g('%s Resources:', organisation) %]</h3>
 <ul>
 </ul>
 
 [% IF src %]
-  <p>[% g('Download Source Package <a href="%s">%s</a>:', src.url, src.pkg) %]
+  <h3>[% g('Download Source Package <a href="%s">%s</a>:', src.url, src.pkg) %]</h3>
   [% FOREACH src.downloads %]
     [% '<ul>' IF loop.first %]
     <li><a href="[% server _ path %]">[[% name %]]</a></li>