\documentclass{beamer}
%\documentclass[draft]{beamer}

\usepackage[german]{babel}
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage{url}

\mode<presentation>{
  \usetheme{Madrid}
  \hypersetup{pdfpagemode=FullScreen}
  \usecolortheme{albatross}
  \useinnertheme[shadow]{rounded}
  \usefonttheme{serif}
  \usefonttheme{structurebold}
% \beamerdefaultoverlayspecification{<+-| alert@+>}
%  \setbeamercovered{transparent}
}

\title[FTPTeam]{The Debian FTP Team}
\subtitle{Masters, Assistants, Trainees \\ \alert{Motto: Fuck it! What could possibly go wrong?}}

\author[Joerg Jaspert]{Joerg Jaspert \\ \texttt{joerg@debian.org}}
\date{Cáceres, July 2009}

\institute[DebConf9]{Debian Conference 2009}

% \AtBeginSection[]
% {
%   \begin{frame}<beamer>{Outline}
%     \tableofcontents[currentsection] %,currentsubsection]
%   \end{frame}
% }


\begin{document}

\setbeamertemplate{navigation symbols}{}
{\setbeamertemplate{background}{\includegraphics[width=\paperwidth]{background.jpg}}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}[allowframebreaks,allowdisplaybreaks]{Outline}
\tiny
  \tableofcontents
\end{frame}

\section{History}
\subsection{Software / Hosting}
\begin{frame}{History - Scripts}{\alert{Motto: Fuck it! What could possibly go wrong?}}
  \begin{itemize}
  \item Ian Murdock/Jackson makeshift scripts
  \item Monolithic perl dinstall written by Guy Maor
    \begin{itemize}
    \item Not exactly secure: upload, shipit
    \item Not even using PGP either.
    \end{itemize}
  \item Katie: a rewrite in python. Known as DAK.
  \end{itemize}
\end{frame}

\begin{frame}{History - Hosting}{\alert{Oh fuck, what just went wrong?}}
  \begin{itemize}
  \item Under a desk @ cmich.edu
  \item First master.d.o by Bdale @ HP

{\tiny It was an HP Vectra 486 tower system with 66mhz CPU upgrade, an
  Adaptec 1740A EISA SCSI controller and two disk drives.  A 330Mb
  root disk and a 660Mb disk to hold the archive.  Both were 5.25"
  full-height drives.  All the pieces came off pallets of materials
  heading out for scrap. Before it left Bdale the archive disk got
  swapped out for a 1.3Gb drive, also 5.25" full height scsi and a
  cast-off heading for scrap.

  The first machine to host .debian.org using Debian.}

\pause

  \item Moved to I-Connect
  \item Then to Novare for several years
  \item Then to Visi.Net, as 'ftp-master.d.o'
  \item Relocated to above.net
  \item Then to the HP DC in Ft. Collins
  \item Currently at Brown.edu
  \end{itemize}

\end{frame}


\subsection{Archive}
\begin{frame}{History - Archive}{\alert{That guy impressed me and I am not easily impressed. Wow. BLUE Hair }}
  \begin{itemize}
    \item Architectures / Releases:
      \begin{description}
        \item[Bo] 1: i386
        \item[Hamm] 2: + m68k
        \item[Slink] 4: + sparc, alpha
        \item[Potato] 6: + powerpc, arm
        \item[Woody] 11: + mips, mipsel, hppa, ia64, s390
        \item[Sarge] 11 (unofficial amd64 release)
        \item[Etch] 11: + amd64, - m68k (there is a semi-official etch-m68k release)
        \item[Lenny] 12: + armel
        \item[Squeeze] ?: + kfreebsd-i386, kfreebsd-amd64, - arm, ...
      \end{description}

    \item  Proposed Architectures:
      \begin{itemize}
      \item avr32
      \item sh\{3,4\}
      \end{itemize}
    \end{itemize}
\end{frame}

\begin{frame}{History - Archive size}{\alert{Ganneff - if it goes wrong, we make it ``Fuck it what do we care?'', but dont tell anyone.}}
  \begin{itemize}
  \item Releases:
    \begin{description}
    \item[Buzz] 229Mb
    \item[Rex] 306Mb
    \item[Bo] 1.2Gb
    \item[Hamm] 2.1Gb
    \item[Slink] 4.1Gb
    \item[Potato] 6.7Gb
    \item[Woody] 27Gb
    \item[Sarge] 57Gb
    \item[Etch] 82Gb
    \item[Lenny] 125Gb
    \item[squeeze+X] 1Tb?
    \end{description}

\pause

  \item Daily pushes:
    \begin{description}
    \item[2005] 200Mb up to 2Gb, average 1Gb. Once a day.
    \item[2009] 1Gb up to 6Gb, average 2Gb. 4 times a day.
    \end{description}
  \end{itemize}
\end{frame}

\subsection{Team}
\begin{frame}{History - Team}{\alert{sgran - the world B.G. (Before Ganneff)}}
  \begin{itemize}
  \item Ian Murdock
  \item + later Ian Jackson, Bruce Perens, Bdale Garbee
  \item Guy Maor takes over (moved to dinstall) [somewhere 1995/1996]
  \item Richard Braakman and James Troup push in [July 1998] % <elmo> so 1998-07-09, looks like a good date for Richard + Me
  \item James recruits Antti-Juhani Kaijanaho and Gergely Madarasz [Dec 1999]
  \item Michael Beattie tricks his way in [August 2000]
  \item Richard becomes inactive [August 2000]
  \item Work on katie starts (named da-katie) [2000]
  \item Anthony Towns joins [January 2001]
  \item Guy becomes inactive [February 2001]
  \item Ryan Murray is added [June 2001]
  \item Randall Donald joins [November 2001]
  \item Daniel Silverstone follows [August 2003]
  \end{itemize}
\end{frame}

% Help from elmo for the dates:

% From: Guy Maor <maor@debian.org>
% Subject: Re: ftpmaster-y stuff
% To: James Troup <james@nocrew.org>
% Date: 21 Nov 1999 17:03:08 -0800

% James Troup <james@nocrew.org> writes:

% > I've started being a bit pro-active with ftpmaster stuff, e.g. getting
% > Gorgo and Ibid on board and announcing it and stuff.  I'm doing this
% > on the basis that, you don't mind, and if you did you'd say.  Of
% > course this fails a bit miserably if you don't [say, that is], so
% > please do tell me if I'm overstepping my bounds...

% I trust you and Richard completely with the ftpmaster stuff.  You have
% the authority to do anything as far as I'm concerned.

% ------------------------------------------------------------------------

% Guy

% From: Richard Braakman <dark@xs4all.nl>
% Subject: Re: New ftpmaster (?) Michael Beattie (aka Omnic)
% To: James Troup <james@nocrew.org>
% Date: Wed, 16 Aug 2000 13:27:29 +0200

% On Sun, Aug 06, 2000 at 10:29:27PM +0100, James Troup wrote:
% > person... Omnic is excessively keen and seems to have lots of free
% > time... unless you have any objections? I'll ask him to join the team
% > in a couple of days.

% No.  In fact I'm almost writing my retirement notice now -- I'm just working
% through the current pile of mail before sending anything.


\begin{frame}{History - Team}{\alert{mhy - commit it (RE: team motto)}}
  \begin{itemize}
  \item Team restructured, Assistants role added [March 2005]
  \item Joerg Jaspert and Jeroen van Wolffelaar join as Assistants [March 2005]
  \item Kalle Kivimaa and Thomas Viehmann join as Assistants [February 2008]
  \item Joerg Jaspert promoted to FTP Master [April 2008]
  \item Anthony Towns and James Troup leave [April/May 2008]
  \item Mark Hymers joins as Assistant [July 2008]
  \item Frank Lichtenheld joins as Assistant [December 2008]
  \item Thomas Viehmann resigned [December 2008]
  \item Mike O'Connor joins as Assistant [January 2009]
  \item Ryan Murray becomes inactive and leaves [March 2009]
  \item Mark Hymers promoted to FTP Master [March 2009]
  \item Kalle Kivimaa leaves [July 2009]
  \end{itemize}
\end{frame}

\subsection{Present}
\begin{frame}{The Team}{\alert{Me fail English? That's unpossible.}}
  FTP Masters
  \begin{itemize}
  \item Joerg Jaspert - Ganneff
  \item Mark Hymers - mhy
  \end{itemize}

  FTP Assistants
  \begin{itemize}
  \item Frank Lichtenheld - djpig
  \item Mike O'Connor - stew
  \end{itemize}

  FTP Trainee
  \begin{itemize}
  \item Barry deFreese - bdefreese
  \item You?!
  \end{itemize}

  Since April 2008 we almost always had people in the FTP Trainee role.
\end{frame}

\section{The roles}
\subsection{FTP Master}
\begin{frame}{FTP Master}{\alert{Don't you kids take anything. I'm watching you. I've got eye implants in the back of my head.}}
The FTP Master role, unix group \alert{debadmin}, is ...
 \begin{block}{(Lets cite Matthew Garrett)}
   ... responsible for maintaining the infrastructure
   required to support the archive. This takes the form of the scripts used
   for processing uploaded packages, but also the flow of packages between
   distributions.
 \end{block}
 \begin{itemize}
 \item Keep the archive running
 \item Keep the archive legal
 \item Support the teams that depend on it (Release, Security, soon backports/volatile)
 \item Keep the archive uptodate with the requirements of the project
 \end{itemize}
\end{frame}

\subsection{FTP Assistant}
\begin{frame}{FTP Assistant}{\alert{Ganneff - see topic. our motto. yeah.}}
The FTP Assistant role, group \alert{ftpteam}, created 2005, allows
additions of people to the FTP Team without having to hand out full FTP
Master rights.

It allows
\begin{itemize}
\item to process NEW,
\item to handle overrides,
\item to remove packages.
\end{itemize}

Thus the most common actions can be done but the possible damage that
can happen by accident is limited.
\end{frame}

\subsection{FTP Trainee}
\begin{frame}{FTP Trainee}{\alert{Kids, you tried your best and you failed miserably. The lesson is, never try. \tiny \\ Hello i18n cabal. :)}}
The FTP Trainee role, group \alert{ftptrainee}, was created in 2008 to
allow easy training and testing of future team members.

\begin{itemize}
\item Initially called ``slave\_NEW''

\pause

\item 6 people trained so far
\item 2 promoted to Assistants
\end{itemize}

Trainees can look at NEW and do the usual package checks, but they can
not actually accept or reject a package. Instead they leave a note,
which an Assistant or Master reads and acts on.
\end{frame}

\section{The job}
\subsection{Archives}
\begin{frame}{Archives}{\alert{You can't keep blaming yourself. Just blame yourself once, and move on.}}
  \begin{itemize}
  \item The main archive, ftp.debian.org
  \item The security archive, security.debian.org
  \item (Soon) The volatile archive, volatile.debian.org (integrated
    into main archive)
  \item (Soon) The backports.org archive, www.backports.org (-> backports.debian.org)
  \end{itemize}
\end{frame}

\subsection{Removals and Overrides}
\begin{frame}{Removals and Overrides}{\alert{mhy - I was upset to discover (via grepping my logs) that I actually said that quote in one of the subtitles verbatim}}
  \begin{itemize}
  \item Removals
    \begin{itemize}
    \item (Semi)-Automagic via cruft-report
    \item Manual, with help from a nice html page
    \end{itemize}
  \item Overrides
    \begin{itemize}
    \item Priority / Section
    \item Override disparity
    \item Currently by mail, should be changed to using BTS
    \end{itemize}
  \end{itemize}
\end{frame}

\subsection{NEW}
\begin{frame}{NEW}{\alert{mhy - Ganneff airlines: departing from a window near you}}

NEW checking is about three things. In order of priority:
\begin{itemize}
\item trying to keep the archive legal,
\item trying to keep the package namespace sane,
\item trying to reduce the number of bugs in Debian.
\end{itemize}

A small list of most common checks
\begin{itemize}
\item Check the source for license problems
  \begin{itemize}
  \item incompatibility
  \item non-free license terms
  \end{itemize}
\item (sane) package renames / splits
\item Policy violation
\item source for everything included?
\item ...
\end{itemize}
\end{frame}

\subsection{Code}
\begin{frame}{Code}{\alert{Oh, so they have Internet on computers now!}}
git clone https://ftp-master.debian.org/git/dak.git

\begin{itemize}
\item Python
\item and some Shell
\item and some Perl
\item at least 9 years old
\item at minimum 40 different authors
\end{itemize}
\end{frame}

\section{How to help / join}

\subsection{QA Team}
\begin{frame}{Join the Army, err, QA Team}{\alert{mhy - oh god. Ganneff has been on TV? I'm surprised the sets didn't all explode}}
  \begin{itemize}
  \item Do QA work
  \item File removal bugs for unmaintained, outdated or otherwise no longer needed packages
  \end{itemize}
\end{frame}

\subsection{Bug triage}
\begin{frame}{Bug triage}{\alert{I am so smart! I am so smart! S-M-R-T! I mean S-M-A-R-T...}}
  \begin{itemize}
  \item Retitle bugs to fit our removal format
  \item Close bugs that don't apply (anymore)
  \item Make sure removals can happen (rev-deps anyone?)
  \end{itemize}
\end{frame}

\subsection{Write Code}
\begin{frame}{Write Code}{\alert{I'm normally not a praying man, but if you're up there, please save me Superman.}}

\end{frame}

\subsection{Join the team}
\begin{frame}{Join the team}{\alert{Hi, my name's Moe. Or as the ladies like to refer to me, 'hey you in the bushes'}}
Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}.

Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}.

Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}.

Join us. Mail \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org} NOW.
\end{frame}

\section{Final}

\subsection{The future}
\begin{frame}{The future}{\alert{Facts are meaningless. You could use facts to prove anything that's even remotely true!}}
  \begin{itemize}
  \item Replace database code in dak with sqlalchemy
  \item source v3
  \item Split long description out of Packages files, make it nothing
    than another translation
  \item debtags integration, sections death
  \item tdebs
  \item ddebs
  \item lintian autorejects
  \item autosigning
  \item binary throw away
  \item ...
  \end{itemize}
\end{frame}


\begin{frame}{Thank you for sleeping through this talk}{\alert{Ganneff - (trust full, when had i been that drunk?)}}
  \begin{center}
  Joerg Jaspert \\
  \href{mailto:ftpmaster@debian.org}{ftpmaster@debian.org}

  \href{http://ftp-master.debian.org/}{http://ftp-master.debian.org/}

  \href{https://ftp-master.debian.org/git/dak.git}{https://ftp-master.debian.org/git/dak.git}



  \vfill


  \end{center}
\end{frame}


\end{document}
