2 %% add 'handout' option for handouts, and pgfpages for 2-on-1
3 \documentclass[smaller,compress]{beamer}
5 %\pgfpagesuselayout{2 on 1}[letterpaper,border shrink=5mm]
6 %\pgfpagesuselayout{4 on 1}[letterpaper,border shrink=5mm]
7 %\pgfpagesuselayout{2 on 1}[a4,border shrink=5mm]
9 \include{setup} %% has all definitions etc
11 %\title[cran2deb: Automated CRAN to Debian packages generation]{cran2deb: A
12 % system to automatically provide 1700+ CRAN packages as Debian binaries}
13 \title[cran2deb: CRAN to Debian packages]{cran2deb: Automating CRAN to Debian packages generation}
15 %\subtitle{\textsl{Tutorial at R/Finance 2009}}
16 \subject{UseR! 2009 Presentation}
17 \author[Charles Blundell \and Dirk Eddelbuettel]{Charles Blundell\inst{1} \and Dirk Eddelbuettel\inst{2}}
18 \institute[Gatsby \and Debian]{\inst{1}Gatsby Computational Neuroscience Unit
19 \\ University College London \and \inst{2}Debian / R Projects}
20 \date[UseR! 2009]{Presentation at UseR! 2009 \\ Rennnes, France \\ July 2009}
34 \section[Why]{Why: Background and Motivation}
36 \frametitle{About R -- and its repos}
37 \framesubtitle{An open statistical language / environment -- with lots of
38 excellent code contributions}
40 A few key facts that are non-controversial at a \textsl{useR!} conference:
42 \item \R\ is now a standard for statistical applications and research
43 \item \textit{``Success has many fathers''}: several key drivers can
44 be identified as to why \R\ has done so well
45 \item We would like to stress \textsl{repos} and available packages here:
46 CRAN, as well as BioConductor and Omegahat.
47 \item CRAN has been one of the drivers: an open yet rigourously QA'ed
48 repostory which has experienced tremendous growth
53 \frametitle{CRAN Packages} %% NB Or shall we merge this with the preceding slide?
54 \framesubtitle{Exponential Growth}
59 \includegraphics[height=6cm,transparent]{figures/Packages}
62 Source: Fox (2008, 2009), our calculations
68 \item CRAN archive network growing by 40\% p.a., now at around 1750 packages
70 \item John Fox provided this chart in an invited lecture at the last
71 \emph{useR!} meetings.
74 \begin{column}{0.25in}
81 \frametitle{Debian and Ubuntu} % NB Maybe skip this slide?
82 \framesubtitle{Open Linux distributions}
86 \item Debian is \textsl{the} community-driven Linux distribution where
87 numerous volunteers provide over twenty-thousand packages for around
88 a dozen architectures.
89 \item Packages and package management ``just work'': with arguably the most
90 advanced and robust package management system, and a tremendous
91 build and test infrastructure.
92 \item Ubuntu has taken Debian, added a fair amount of spit and polish, as
93 well as regular bi-annual releases, and has rapidly gained mind- and
94 well as market-share as the Linux distribution to beat.
95 \item Lastly, we note that the CRAN backend is also implemented on Debian.
100 \frametitle{Why build Debian R packages?}
101 \framesubtitle{Combining R and Debian}
102 Bates, Eddelbuettel and Gebhard (UseR! 2004) listed a number of reason
105 \item \textbf{Dependencies} are resolved automatically: \textsl{it just
107 \item \textbf{Convenience} of installing binary packages via
109 %easier than building from source
110 \item \textbf{Quality control} as build daemons, automated rebuilds,
111 porting, ... all ensure that everything is pretty much buildable all the
113 \item \textbf{Scalability} as building one binary package and scripting
114 installation on a cluster beats doing lots of manual installations
115 \item \textbf{Common platform} as Debian forms the base for Ubuntu and
116 several other derivative or single-focus distributions
117 \item \textbf{Different architectures} ranging from small arm or mips based
118 systems to amd64, sparc64, hppa or even s390 mainframes
119 \item \textbf{Audience} given the reach of Debian and Ubuntu, large number
120 of users can be reached with little effort
125 %\section{What is behind it?}
127 \frametitle{So what is a Debian package?} % NB Maybe skip this?
128 \framesubtitle{And how do I build it?}
130 Building a Debian package is similar to using \texttt{R
133 \item Reads meta-information is read from the files in the debian/ directory
135 \item debian/control (similar to R's DESCRIPTION) lists names,
136 maintainers, build- and run-time dependencies
137 \item debian/copyright lists all author, license holders and copyright
139 \item debian/changelog provides current and past version numbers with a
140 list of all changes in chronological fashion
141 \item debian/rules is a Makefile containing all steps to configure,
142 build, install, package-create and clean
144 \item Employs a number of external scripts and tools tie into this,
145 similar to what R has below \texttt{\$RHOME/share}
150 \section[How]{How: Key aspects of the approach and implementation}
152 \frametitle{Comparing two approaches}
153 \framesubtitle{What have we learned?}
155 Eddelbuettel, Vernazobres, Gebhard and M\"{o}ller (UseR 2007) presented a first
164 \item Top-down approach
165 \item Monolithic and large Perl program
166 \item Re-implementing chunks of what \R does in parsing archives
167 \item Not very robust
174 \item Bottom-up approach
175 \item Collection of \R and shell scripts, also lots of SQL
176 \item Re-using \R internal infrastructure as much as possible
177 \item Influenced by %Eddelbuettel's
178 \href{http://dirk.eddelbuettel.com/cranberries/}{CRANberries} and its
179 200 lines of \R code to monitor and summarize CRAN changes
186 \frametitle{Technology Overview}
187 \framesubtitle{Charles: Can you fill something in here, if I haven't stolen
188 all nuggets on the previous slide?}
192 \section[Status]{Status: Where are we now?}
194 \frametitle{Current Status}
195 \framesubtitle{Ready for wider deployment and testing}
198 \item Ground-work provided during Google Summer of Code 2008 under the
199 umbrella of the \R Foundation
200 \item Currently using a (small) Xen-instance on a server at WU Wien to host
201 two Debian pbuilder chroots and an archive
202 \item 1700+ packages for i386 and amd64 on Debian testing
203 \item In daily use for the last few weeks!
207 Just add the following URL (with -amd64 for 64-bit) \newline
208 { \SmallSkip \scriptsize
209 \texttt{deb http://xmcorsairs.wu.ac.at/cran2deb/debian-i386 testing/}
214 \section{Open Issues}
216 \frametitle{Question to be addressed}
217 \framesubtitle{These may not be showstoppers}
220 \item What can or cannot be (re-)distributed by CRAN and its mirrors?
221 \item What can or cannot be used by all users?
222 \item Remaining external dependencies:
224 \item BioConductor is the single largest source: BioBase, RGraphviz, etc
225 \item Other external libraries or tools not in Debian
226 \item Commercial external dependencies: SGE, LSF, Oracle, Vhayu
228 \item Builds for other architectures ?
229 \item Builds for other Debian flavours such as Ubuntu ?