% $Id$
\documentclass[notes]{beamer}
%\documentclass[blends,slideColor,colorBG,pdf,ps2pdf]{prosper}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage{multicol}
\usepackage[framesassubsections]{beamerprosper}

\mode<presentation>
{
  \definecolor{beamerstructure}{RGB}{143,79,112}
  \definecolor{sidebackground}{RGB}{230,242,250}
  \color{beamerstructure}
  \usetheme{Antibes}
  \usepackage{times}
  \userightsidebarcolortemplate{\color{sidebackground}}
  \beamertemplateballitem
}

\title{RPM: Packaging}
\subtitle{Du code source au paquetage}
\author{Olivier Thauvin}
%\email{olivier.thauvin@aerov.jussieu.fr}
%%\institution{
%%  \includegraphics*[height=0.3\textheight]{gnutux.eps}
%%}

\NoFrenchBabelItemize

\begin{document}
    
\frame{\maketitle}
\frame{\tableofcontents}

\section{RPM, fondamentaux}
\subsection{Historique}
\frame{
\title{Historique}
\vfill
Originellement: \textit{Redhat Package Manager}
\vfill
2005: Patatra: fork de Jeff Johnson: \textit{RPM Package Manager}

Il y a donc deux rpms respectivement en version 4.4.2 et 4.4.8. %% (\date)
\vfill\vfill
}

\subsection{Role de rpms}

\frame{
\title{Roles de rpms}
\begin{itemize}
\item Gestion du parc logiciel
    \begin{itemize}
    \item installation
    \item désinstallation
    \end{itemize}
\item Controle de l'état du système
    \begin{itemize}
    \item Intégrité du système
    \item Repérage des fichiers modifiés
    \end{itemize}
\end{itemize}
}

\subsection{Les différentes parties de rpm}

\frame{
\title{Les logiciels}
\vfill
\begin{center}
\begin{tabular}{|c|l|}
\hline
Binaire&Fonction\\
\hline
\hline
rpm&Frontend aux modules rpm\\
\hline
rpmi&Installation (rpm -i/U)\\
\hline
rpmu&Installation (rpm -i/U)\\
\hline
rpme&Désinstallation (rpm -e)\\
\hline
rpmquery&Interrogation (rpm -q)\\
\hline
rpmbuild&Construction de rpm\\
\hline
rpmdb&Action sur la rpm db\\
\hline
\end{tabular}
\end{center}
\vfill
\vfill
}

\begin{frame}[fragile]
\title{Les librairies}
\vfill
Située dans \verb+/usr/lib(64)+
\vfill
% \begin{center}
\begin{tabular}{|c|l|}
\hline
Librairies&Rôle\\
\hline
\hline
librpm&Lecture des fichiers rpm\\
&Résolution des dépendances\\
\hline
librpmbuild&Construction de rpm\\
\hline
librpmdb&Accès à la rpm db\\
\hline
librpmio&Abstraction générique des entrées/sorties\\
&Evaluation des macros\\
\hline
\end{tabular}
% \end{center}
\vfill
\vfill
\end{frame}

\subsection{Configuration}

\begin{frame}[fragile]
\title{La configuration}
\vfill
Toute la configuration se fait via des macros,
système de variable à évaluation tardive.
\vfill
\begin{itemize}
\item /usr/lib/rpm/macros (système)
\item ~/.rpmmacros (utilisateur)
\end{itemize}
\vfill
{\scriptsize
\begin{verbatim}
%__dbi_htconfig_current     %{__dbi_htconfig}
%__dbi_htconfig_rebuild     %{__dbi_htconfig} %{__dbi_rebuild}

%_dbi_htconfig      \
  %{?_rpmdb_rebuild:%{__dbi_htconfig_rebuild}}\
  %{!?_rpmdb_rebuild:%{__dbi_htconfig_current}}\
%{nil}
\end{verbatim}
}
\vfill
\vfill
\end{frame}

\subsection{Dépendendances}

\begin{frame}[fragile]
\title{Dépendances}
\vfill
Contraintes au niveau de l'installation ou de la construction des rpms.
\vfill
Elles s'expriment en terme package avec éventuellement
une version (\verb+<=> VERSION+).
\vfill
\vfill
{\scriptsize
\begin{tabular}{|c|l|l|}
\hline
Type&Installation&Construction\\
\hline
\hline
\hline
Provides&Fourni&N/A\\
\hline
\hline
Requires&A besoin de&A besoin de\\
\hline
Conflicts&Ne peut pas être installer avec&Ne peut être construit avec\\
\hline
Obsoletes&Remplace (discrètement)&N/A\\
\hline
Trigger&Déclancher une action si \ldots est installé&N/A\\
\hline
\end{tabular}
}
\vfill
\vfill
\end{frame}

\subsection{Architectures}

\section{prélimaires}

\section{le .spec}
\subsection{composition}
\subsection{minimal}
\subsection{sections}
\subsection{"libidification"}

\section{Exemples concrets}
\subsection{\%configure}
\subsection{un module perl}

\end{document}
