Our cran2deb system is implemented as a collection of small tools:
\begin{itemize}
- \item cran2deb itself is a wrapper script calling out to twenty-one other
- 'worker' scripts implementing the twenty-one basic high-level commands
+ \item cran2deb itself is a wrapper script calling out to about twenty other
+ 'worker' scripts implementing the principal commands
\begin{itemize}
\item 'worker' scripts are written in \R (for littler), Korn/Bash shell,
and in the Plan9 shell rc
\begin{frame}
\frametitle{Technology Overview}
- \framesubtitle{A walk through}
+ \framesubtitle{A walk through: some details}
What does cran2deb do:
\begin{itemize}
\item Rules for this shared among packages---many packages ``just work''.
\end{itemize}
\item add any undeclared dependencies (this applies to just 36 packages
- and often entail only loading, say, MASS).
+ and often entails only loading, say, MASS).
\item build each package in its own isolated, clean, fresh, up to date
build environment via pbuilder: this looks like a fresh install of
Debian and ensures correctness of dependencies.
\end{itemize}
\item checks package quality via Debian's lintian.
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Technology Overview}
+ \framesubtitle{A walk through: some more details}
+
+ What does cran2deb do (cont.):
+ \begin{itemize}
\item uses RSQLite backend for cran2deb state: everything from package
meta-information, blacklist of bad packages, to build logs.
+ \item checks for a free license of a package before its built:
+ \begin{itemize}
+ \item initially: handcrafted regular expressions to match
+ licenses.
+ \item some packages ignore ``Writing R extensions'' guidelines
+ concerning the License: field: how many ways to write GPL?
+ \begin{itemize}
+ \item initialised vs. its expansion (GPL vs. GNU general public license)
+ \item license vs. licence
+ \item see \texttt{http://www.gnu.org/GPL}
+ \item (v, version) (2.0, 2) or (higher, later, newer, greater, above)
+ \item typos of the above
+ \item file LICENSE: contents reformatted in arbitrary ways
+ \end{itemize}
+ \item now: strip white space and perform other harmless transforms
+ and match SHA1 checksums to determine license; likewise for contents of LICENSE
+ file.
+ \end{itemize}
\end{itemize}
\end{frame}
Re-use, re-duce, re-cycle:
\begin{itemize}
- \item \R's infrastructure is used for obtaining the \R view of the world:
+ \item \R's infrastructure is used to obtain the \R view of the world:
what packages and where, first approximation to dependencies.
\item All this uses the Debian build infrastructure, notably the
pbuilder chroot environment and the package management system
\MedSkip
So just add one of these URLs:\newline
- i386 \phantom{xx} : { \SmallSkip \scriptsize
- \texttt{deb http://xmcorsairs.wu.ac.at/cran2deb/debian-i386 testing/}
- } \newline
- amd64 : { \SmallSkip \scriptsize
- \texttt{deb http://xmcorsairs.wu.ac.at/cran2deb/debian-amd64 testing/}
- }
+ { \scriptsize
+ \texttt{deb http://debian.cran.r-project.org/cran2deb/debian-i386 testing/}
+
+ \texttt{deb http://debian.cran.r-project.org/cran2deb/debian-amd64 testing/}
+ }
\end{frame}
-\section{Open Issues}
+\section[Next]{Next: Open Issues}
\begin{frame}
\frametitle{Question to be addressed}
- \framesubtitle{These may not be showstoppers}
+ \framesubtitle{For cran2deb to migrate out of beta testing}
- Things that still need to be sorted out:
+ %Things that may need to be sorted out:
\begin{itemize}
- \item What can or cannot be (re-)distributed by CRAN and its mirrors?
- \item What can or cannot be used (and/or modified) by all users?
- \item Remaining external dependencies:
+ \item \textbf{Licenses:}
+ \begin{itemize}
+ \item What can or cannot be (re-)distributed by CRAN and its mirrors?
+ \item What can or cannot be used (and/or modified) by all users?
+ \end{itemize}
+ \item \textbf{Externtal dependencies} % Remaining external dependencies:
+ \begin{itemize}
+ \item BioConductor is the single largest source: BioBase, RGraphviz, etc
+ \item Other external libraries or tools not in Debian
+ \item Commercial external dependencies: SGE, LSF, Oracle, Vhayu
+ \end{itemize}
+ \item \textbf{Scope}
\begin{itemize}
- \item BioConductor is the single largest source: BioBase, RGraphviz, etc
- \item Other external libraries or tools not in Debian
- \item Commercial external dependencies: SGE, LSF, Oracle, Vhayu
+ \item Builds for other architectures?
+ \item Builds for other Debian flavours such as Ubuntu?
+ \item Builds of other repositories: BioConductor? R-Forge?
\end{itemize}
- \item Builds for other architectures?
- \item Builds for other Debian flavours such as Ubuntu?
\end{itemize}
\end{frame}