config.sh
cache
tmp
+mirror
*~
*.ttc
+www-passwords
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
--- /dev/null
+
+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
+
--- /dev/null
+#! /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);
+
--- /dev/null
+#!/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"
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
}
}
$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,
apache.conf
ttreerc
maintainer
+maintainer.cdb
crontab
+rbllist
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]
--- /dev/null
+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
# 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
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_sid="${arch_squeeze} avr32 hurd-i386 m68k powerpcspe sh4 sparc64"
+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_wheezy} alpha avr32 hppa 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"
# security archive
#
-for dist in etch lenny
+for dist in lenny squeeze
do
echo "retrieve Release(.gpg) $dist"
test -d security/${dist} || mkdir -p security/${dist}
# 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
+++ /dev/null
-#! /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
-
--- /dev/null
+#! /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
# volatile archive
#
-for dist in etch lenny
+for dist in lenny
do
echo "retrieve Release(.gpg) $dist-volatile"
test -d volatile/${dist}-volatile || mkdir -p volatile/${dist}-volatile
--- /dev/null
+#! /bin/bash
+
+. `dirname $0`/../config.sh
+
+cd ${bindir}
+${bindir}/build-maintainerdb
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,
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);
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;
#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) {
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;
}
--- /dev/null
+callout_users
+grey_users
+rhsbllist
--- /dev/null
+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
--- /dev/null
+# 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
+
-topdir=/srv/packages.debian.org
-site=packages.debian.net
+topdir=/org/packages.debian.org
+site=packages.debian.org
Copyright (C) 2006, 2007 Frank Lichtenheld <frank@lichtenheld.de>
</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 %]
--- /dev/null
+[% 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&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 & Artificial Intelligence Lab</a></td>
+</tr>
+</table>
+
+[% PROCESS 'html/foot.tmpl'
+ langs.size = 0 %]
-/* 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;
}
--- /dev/null
+/*
+ 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;
+}
-.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;
+}
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'
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'
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('.'),
standard_priority = 'optional'
suite_aliases = {
- etch => 'oldstable',
- lenny => 'stable',
- squeeze => 'testing',
+ lenny => 'oldstable',
+ squeeze => 'stable',
+ wheezy => 'testing',
sid => 'unstable',
}
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/",
[% 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);
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 %]
[% END %]
</div> <!-- end fineprint -->
</div> <!-- end footer -->
-</div> <!-- end outer -->
</body>
</html>
<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' Corner</a></li>
+</ul>
+</div> <!-- end navbar -->
+
+<div id="pnavbar">
+ / <a href="[% packages_homepage %]" title="[% g('%s Packages Homepage', organisation) %]">[% g('Packages') %]</a>
+[% FOREACH n IN navigation %]
+ / [% 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">
- >> <a href="[% project_homepage %]" title="[% g('%s Homepage', organisation) %]">[% organisation %]</a>
- >> <a href="[% packages_homepage %]" title="[% g('%s Packages Homepage', organisation) %]">[% g('Packages') %]</a>
-[% FOREACH n IN navigation %]
- >> [% 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>
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',
<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') %]">
[% END %]
<option value="all" selected="selected">[% g('any') %]</option>
</select>
+</p>
</form>
<p>[% g('There are shortcuts for some searches available:') %]</p>
<ul>
<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>
[% 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' %]
[% 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>]
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>]
<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 %]
[% 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 %]
[% 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>
<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>