\documentclass{beamer}
\usetheme{Warsaw}
\usecolortheme{beetle}
\setbeamercolor{block title}{bg=beetle@other}
\setbeamercolor{block body}{bg=normal text.bg!85!white}
\usepackage[german]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage{url}
\setbeamercovered{transparent}

\title{Debian Backports}
\author{Norbert Tretkowski \texttt{<nobse@debian.org>} \\
Alexander Wirt\texttt{<formorer@debian.org>}}
\date{24. Juni 2006}

\begin{document}
\frame{\titlepage}
\section{}
\frame{
  \frametitle{Inhalt}
  \begin{itemize}
    \item Grundlagen
    \pause
    \item Vorbereitungen
    \pause
    \item Backport bauen
    \pause
    \item Problembehandlung
    \pause
    \item Backports.org
  \end{itemize}
}

\section{Grundlagen}

\subsection{Releasemanagement}
\frame{
  \frametitle{Releasemanagement}
  \begin{itemize}
    \item Distributionszweige
    \begin{itemize}
      \item stable
      \item unstable
      \item testing
	  \item (experimental)
    \end{itemize}
	\pause
    \item Ausschliesslich kritische Bugfixes (Security, Datenverlust) in stable
  \end{itemize}
}

\subsection{Was ist Backporting}
\frame{
  \frametitle{Was ist Backporting?}
  \begin{itemize}
	\item Pakete aus testing oder unstable koennen nicht 1:1 in stable verwendet werden
    \pause
	\begin{itemize}
      \item Rueckportierung von Paketen aus testing/unstable auf stable
	  \pause
	  \item Entscheidung ob testing oder unstable ist wichtig
	\end{itemize}
  \end{itemize}
}

\subsection{Warum Backporting}
\frame{
  \frametitle{Warum Backporting?}
  \begin{itemize}
  	\item Neue Features
	\pause
	\item Bugfixes
	\pause
	\item Security Updates
  \end{itemize}
}

\section{Vorbereitungen}

\subsection{Entwicklungsumgebung I}
\frame{
  \frametitle{Entwicklungsumgebung bauen}
  \begin{itemize}
    \item Chroot
	\begin{itemize}
	  \item System im System
	  \item System wird nicht mit Paketen gefuellt
      \item System bleibt heil
	  \item Keine neuen Dependencies im Backport
	\end{itemize}
	\pause
	\item Bauen \\\texttt{cdebootstrap sarge verzeichnis}
	\pause
	\item Betreten \\\texttt{chroot verzeichnis /bin/sh}
  \end{itemize}
}

\subsection{Entwicklungsumgebung II}
\frame{
  \frametitle{Entwicklungsumgebung anpassen}
  \begin{itemize}
    \item Konfigurationsdatei /etc/apt/sources.list anlegen
	  \begin{itemize}
	    \item deb http:// \ldots stable \ldots
		\item deb-src http:// \ldots testing \ldots
	  \end{itemize}
	\pause
	\item Pakete installieren
	\begin{itemize}
	  \item build-essential
	  \item devscripts
	  \item fakeroot
	  \item (dput)
	  \item (gpg)
	\end{itemize}
	\pause
	\item User anlegen
  \end{itemize}
}

\subsection{Quellpaket holen}
\frame{
  \frametitle{Quellpaket holen}
  \begin{itemize}
    \item Auf angelegten User wechseln
	\pause
	\item Quellpaket holen \\\texttt{apt-get source paketname}
  \end{itemize}
}

\section{Backport bauen}

\subsection{Quellpaket anpassen}
\frame{
  \frametitle{Quellpaket anpassen}
  \begin{itemize}
    \item Neuer Eintrag im Changelog
	\pause
	\item Versionsnummer verringern, um Updates auf das naechste stabile Release zu erleichtern
	\begin{itemize}
	  \item Versionsnummer muss kleiner sein als in testing
	  \item Tool \\\texttt{dch -v 1.2.3-3bpo1 -b}
	  \item Pruefen \\\texttt{dpkg --compare-versions 1.2.3-3bpo1 lt 1.2.3-4}
	\end{itemize}
  \end{itemize}
}

\subsection{Paket bauen}
\frame{
  \frametitle{Paket bauen}
  \begin{itemize}
    \item Build-Dependencies fehlen noch
	\pause
	\item Nachinstallieren \\\texttt{apt-get build-dep paketname}
	\pause
	\item Paket bauen \\\texttt{dpkg-buildpackage -rfakeroot}
  \end{itemize}
}

\subsection{Pakete veroeffentlichen}
\frame{
  \frametitle{Pakete veroeffentlichen}
  \begin{itemize}
    \item Eigenes Repository
	\begin{itemize}
	  \item dpkg-scanpackages und dpkg-scansources
	  \item mini-dinstall
	\end{itemize}
  \end{itemize}
}

\section{Problembehandlung}

\subsection{Fehlende Build-Dependency}
\frame{
  \frametitle{Fehlende Build-Dependency}
  \begin{itemize}
    \item Build-Dependency in debian/control anpassen
	\pause
	\item Build-Dependency aus debian/control entfernen
	\pause
	\item Build-Dependencies auch backporten
	\pause
	\item Entferntes Paket aktualisieren
  \end{itemize}
}

\subsection{Build geht schief}
\frame{
  \frametitle{Build geht schief}
  \begin{itemize}
    \item Aenderungen in debian/control waren keine gute Idee
	\pause
	\item Code kompiliert nicht mit gcc aus stable
	\pause
	\item Fehlende Versionsnummer einer Build-Dependency
	\pause
	\item /proc nicht gemountet
	\pause
	\item \ldots
  \end{itemize}
}

\section{Backports.org}

\subsection{Verwendung I}
\frame{
  \frametitle{Verwendung I}
  \begin{itemize}
    \item Eintrag in /etc/apt/sources.list \\\texttt{deb http://www.backports.org/debian/ sarge-backports main}
	\pause
	\item Prioritaet aller Pakete von backports.org verringern
	\\\texttt{Package: *}\\\texttt{Pin: release a=sarge-backports}\\\texttt{Pin-Priority: 200}
  \end{itemize}
}

\subsection{Verwendung II}
\frame{
  \frametitle{Verwendung II}
  \begin{itemize}
    \item Angabe der einzelnen Pakete in /etc/apt/preferences
	\\\texttt{Package: mutt}\\\texttt{Pin: release a=sarge-backports}\\\texttt{Pin-Priority: 999}
	\pause
	\item Distribution sarge-backports bei apt-get angeben
	\\\texttt{apt-get -t sarge-backports install mutt}
  \end{itemize}
}

\subsection{Historie}
\frame{
  \frametitle{Historie}
  \begin{itemize}
    \item Backports fuer woody (und vorher potato) auf \\\texttt{http://people.debian.org/\~{}nobse/}
	\pause
	\item Mai 2003 Domain backports.org registriert
	\pause
	\item August 2003 wird backports.org 'announced'
	\pause
	\item Oktober 2003 ueber 100 GB Traffic
	\pause
	\item Dezember 2003 ueber 500 GB Traffic
	\pause
	\item Umzug an den Nuernberger Internet eXchange
  \end{itemize}
}

\subsection{Probleme}
\frame{
  \frametitle{Probleme}
  \begin{itemize}
    \item Umstaendliche Verwaltung der Pakete
	\pause
	\item Es hing alles an einer Person
  \end{itemize}
}

\subsection{Gegenwart}
\frame{
  \frametitle{Gegenwart}
  \begin{itemize}
    \item Dak basierte Verwaltung der Pakete
	\pause
	\item Uploaden koennen alle Debian Entwickler
	\pause
	\item Eigener Keyring
	\pause
	\item Februar 2006 ueber 1000 GB Traffic
	\pause
	\item Buildds
	\pause
	\item Integration in Debian PTS
  \end{itemize}
}

\subsection{Zukunft}
\frame{
  \frametitle{Zukunft}
  \begin{itemize}
    \item Entwickler sollten Ruecksicht auf stable nehmen
	\pause
	\item Backports offizieller Bestandteil von Debian
  \end{itemize}
}

\subsection{Links}
\frame{
  \frametitle{Links}
  \begin{itemize}
    \item \texttt{http://www.backports.org/}
	\item \texttt{http://www.debian.org/doc/developers-reference/}
	\item \texttt{http://www.inittab.de/slides/}
  \end{itemize}
}

\end{document}
