review everything, change intro
authorLucas Nussbaum <lucas@lucas-nussbaum.net>
Mon, 21 Feb 2011 10:31:20 +0000 (11:31 +0100)
committerLucas Nussbaum <lucas@lucas-nussbaum.net>
Mon, 21 Feb 2011 10:31:20 +0000 (11:31 +0100)
packaging-tutorial.tex

index ef03366..30a963d 100644 (file)
@@ -79,20 +79,9 @@ it under either (at your option):
 }
 \end{frame}
 
-\subsection{About this tutorial}
-\begin{frame}{About this tutorial}
-\begin{itemize}
-\item Goal: tell you what you really need to know about Debian packaging
-       \hbr
-\item Tries to keep a reasonable size
-       \begin{itemize}
-       \hbr
-               \item No attempt to be complete
-                       \hbr
-               \item You might need to read more documentation
-       \end{itemize}
-\end{itemize}
-\vfill
+\subsection{Latest version \& source code}
+\begin{frame}
+\frametitle{Latest version \& source code}
 \begin{itemize}
 \item Latest version:\\
        {\footnotesize \url{http://git.debian.org/?p=users/lucas/packaging-tutorial.git;a=blob\_plain;f=packaging-tutorial.pdf;hb=refs/heads/pdf}}
@@ -108,12 +97,40 @@ it under either (at your option):
 \end{itemize}
 \end{frame}
 
+\subsection{About this tutorial}
+\begin{frame}{About this tutorial}
+\begin{itemize}
+\item Goal: tell you what you really need to know about Debian packaging
+\begin{itemize}
+                       \hbr
+\item To modify existing packages
+                       \hbr
+\item To create your own packages
+                       \hbr
+\item To become a Debian power-user
+\end{itemize}
+\br
+\item Tries to keep a reasonable size
+       \begin{itemize}
+                       \hbr
+               \item No attempt to be complete
+                       \hbr
+               \item You will need to read more documentation
+       \end{itemize}
+\br
+\item Most of the content also applies to Debian derivatives distributions
+       \begin{itemize}
+                       \hbr
+               \item That includes Ubuntu
+       \end{itemize}
+\end{itemize}
+\end{frame}
+
 \subsection{The Deb package format}
 \begin{frame}[fragile]
        \frametitle{Introduction: the Deb package format}
 \begin{itemize}
        \item One of the two most common packages format (with RPM)
-       \item Used by Debian and its derivatives (including Ubuntu)
        \item A very powerful and convenient way to distribute software to users
        \item \texttt{.deb} file: an \texttt{ar} archive
 \begin{lstlisting}[basicstyle=\ttfamily\footnotesize]
@@ -155,7 +172,7 @@ rw-r--r-- 0/0 751613 Sep  5 15:43 2010 data.tar.gz
        \end{itemize}
 
        \br
-       Many other tools will also be mentioned later, such as \textbf{debhelper}, \textbf{cdbs}, \textbf{quilt}, \textbf{pbuilder}, \textbf{sbuild}, \textbf{svn-buildpackage}, \textbf{git-buildpackage}, \ldots
+       Many other tools will also be mentioned later, such as \textbf{debhelper}, \textbf{cdbs}, \textbf{quilt}, \textbf{pbuilder}, \textbf{sbuild}, \textbf{lintian}, \textbf{svn-buildpackage}, \textbf{git-buildpackage}, \ldots
 \end{frame}
 
 \subsection{General packaging workflow}
@@ -170,15 +187,13 @@ rw-r--r-- 0/0 751613 Sep  5 15:43 2010 data.tar.gz
        \node[node1] (da) at (-1.5, 0) {Debian mirror};
        \node[node1] (sp) at (0, -2) {source package};
        \draw[arr,<-,dashed] (sp) -- (2.5,-2) node[right=0cm,text width=2.98cm,text centered,font=\small] {where most of the manual work is done};
-       \node[node1] (b1) at (-1.5, -4) {binary package};
-       \node[node1] (b2) at (1.5, -4) {binary package};
-       \draw[arr,<-,dashed] (b2) -- (3.5,-4) node[right,text centered,font=\ttfamily] {.deb\normalfont};
+       \node[node1] (bin) at (0, -4) {one or several binary packages};
+       \draw[arr,<-,dashed] (bin) -- (3.5,-4) node[right,text centered,font=\ttfamily] {.deb\normalfont};
        \draw[arr,->] (us) -- (sp) node[pos=0.5,right,command] {dh\_make};
        \draw[arr,->] (da) -- (sp) node[pos=0.5,left,command] {apt-get source};
-       \draw[arr,->] (sp) -- (b1);
-       \draw[arr,->] (sp) -- (b2) node[pos=0.5,right] {\texttt{\color{rouge}debuild} (build and test with \texttt{\color{rouge}lintian})};
-       \draw[arr,->] (0,-4.5) -- (-1,-6) node[pos=0.5,left] {install (\texttt{\color{rouge}debi})};
-       \draw[arr,->] (0,-4.5) -- (1,-6) node[pos=0.5,right] {upload (\texttt{\color{rouge}dput})};
+       \draw[arr,->] (sp) -- (bin) node[pos=0.5,right] {\texttt{\color{rouge}debuild} (build and test with \texttt{\color{rouge}lintian})};
+       \draw[arr,->] (bin) -- (-1,-6) node[pos=0.5,left] {install (\texttt{\color{rouge}debi})};
+       \draw[arr,->] (bin) -- (1,-6) node[pos=0.5,right] {upload (\texttt{\color{rouge}dput})};
        \useasboundingbox (-4,-6) rectangle (6,0); % hack hack hack
 \end{tikzpicture}
 \end{center}
@@ -201,7 +216,7 @@ rw-r--r-- 0/0 751613 Sep  5 15:43 2010 data.tar.gz
                \hbr
        \item Main file: \texttt{.dsc} (metadata)
                \hbr
-       \item Other files depending on the source format version
+       \item Other files depending on the version of the source format
        \begin{itemize}
                \item 1.0 -- native: \texttt{package\_version.tar.gz}
                \hbr
@@ -211,7 +226,7 @@ rw-r--r-- 0/0 751613 Sep  5 15:43 2010 data.tar.gz
                        \item \texttt{pkg\_debver.diff.gz} : patch to add Debian-specific changes
                \end{itemize}
                \hbr
-               \item 3.0 (quilt) -- also non-native, more recent:
+               \item 3.0 (quilt):
                \begin{itemize}
                        \item \texttt{pkg\_ver.orig.tar.gz} : upstream source
                        \item \texttt{pkg\_debver.debian.tar.gz} : tarball with the Debian changes
@@ -534,9 +549,9 @@ binary: binary-indep binary-arch
 \begin{itemize}
 \item Still a lot of redundancy between packages
 \hbr
-\item Second-level helpers that factor what packages typically require
+\item Second-level helpers that factor common funtionality
        \begin{itemize}
-       \item Building with \texttt{./configure \&\& make \&\& make install}, CMake
+       \item Building with \texttt{./configure \&\& make \&\& make install} or CMake
        \item Support for Perl, Python, Ruby, GNOME, KDE, Java, Haskell, \ldots
        \end{itemize}
 \hbr
@@ -548,7 +563,7 @@ binary: binary-indep binary-arch
                        \begin{itemize}
                                \item Sometimes difficult to customize package builds:\\
                                "\textsl{twisty maze of makefiles, environment vars and black magic}"
-                               \item Slower than plain debhelper (many useless calls to dh\_*)
+                       \item Slower than plain debhelper (many useless calls to \texttt{dh\_*})
                        \end{itemize}
 \begin{lstlisting}[basicstyle=\ttfamily\footnotesize]
 #!/usr/bin/make -f
@@ -663,11 +678,10 @@ Several ways to contribute:
 \item Are there alternatives already packaged in Debian?
 \end{itemize}
 \br
-\item Adopt existing unmaintained packages
+\item Adopt existing unmaintained packages (\textsl{orphaned packages})
 \begin{itemize}
        \item Many unmaintained packages in Debian
        \item Including some that you rely on, probably
-       \item Use \texttt{wnpp-alert} to find out if you have some installed
 \end{itemize}
 \br
 \item Get involved in packaging teams
@@ -796,7 +810,7 @@ Packaging:
 \item Modifying the upstream source + patch systems
 \item Maintainer scripts
 \item Debconf
-\item watch
+\item watch + uupdate
 \end{itemize}
 Processes:
 \begin{itemize}