\documentclass{beamer} \usefonttheme{serif} \usefonttheme{professionalfonts} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{hhline,bm,xspace,url} \usepackage[expert,seriftt]{lucidabr} \renewcommand{\rmdefault}{hlhj} \usepackage{fancyvrb} \usepackage{url,xcolor,ctable} \usepackage{marvosym} \usepackage{tikz} \usepackage{listings} \lstset{frame=lines,basicstyle=\ttfamily,showspaces=true,prebreak={\Righttorque},postbreak={\Lefttorque},breaklines} \newcommand{\tl}{\TeX~Live} \newcommand{\tpm}{\texttt{tpm}} \newcommand{\tpms}{\tpm{}s} \newcommand{\tlpsrc}{\texttt{tlpsrc}} \newcommand{\tlpsrcs}{\tlpsrc{}s} \newcommand{\tlpobj}{\texttt{tlpobj}} \newcommand{\tlpobjs}{\tlpobj{}s} \newcommand{\tlpdb}{\texttt{tlpdb}} \newcommand{\tlpdbs}{\tlpdb{}s} \newcommand{\tlmgr}{\tl~Manager} \newcommand{\acro}[1]{\textsc{\MakeLowercase{#1}}} \newcommand{\ctan}{\acro{CTAN}} \newcommand{\cmd}[1]{\textsf{#1}} \newcommand{\button}[1]{\textsf{#1}} \newcommand{\var}[1]{\textsl{#1}} \newcommand{\XeTeX}{Xe\TeX} \def\bigit{\\[\bigskipamount]} \def\medit{\\[\medskipamount]} \hyphenation{infra-struc-ture} \DefineShortVerb{\|} \usetheme[headheight=75pt,footheight=10pt]{boxes} \setbeamercolor*{black on white}{bg=white,fg=black} %\setbeamerfont*{black on white}{series=\scshape} \addfootbox{black on white}{\hbox{\vbox to 10pt{% %\hspace{3em}Norbert % Preining, \tl~2008 -- {\normalfont Brno, CSTUG Meeting 2008} \hfill \insertframenumber\hspace{3em}~~\vfill}}} \addheadbox{black on white}{\includegraphics{texlive2008-logo-2.png}} \setbeamertemplate{navigation symbols}{} \setlength{\parskip}{\medskipamount} \def\cred#1{{\color{red}#1}} \def\cblue#1{{\usebeamercolor[fg]{structure}#1}} \def\prog#1{\texttt{#1}} \def\img#1#2#3#4{% \bgroup% \setbox0=\hbox{\hskip #3\vbox to 0pt{\vskip #4 \includegraphics[height=#2]{#1}}}% \dp0=0pt % \ht0=0pt % \wd0=0pt % %\hbox to \textwidth{\hfill\hbox{\box0}}% \hbox{\box0} \egroup} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % here begins the stuff % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{} %\tl~2008} \title{Norbert Preining} %\author{Norbert Preining} \author{Vienna University of Technology, Austria\\[\bigskipamount] \textsc{cstug Meeting 2008, Brno, Czech Republic}} \date{13 December 2008} %Bachotek, Poland \hspace{\bigskipamount} 13~December 2008} \begin{document} \frame{\titlepage} \begin{frame} \frametitle{Layout} \begin{center} \begin{tabular}[h!]{ll} \cblue{Part for users} & \cblue{Technical part} \\ \midrule Overview & Getting things into \tl \\ Installation & The new infrastructure \\ \tlmgr \qquad\qquad & Internals of the \tlpdb, config options\\ Other news \end{tabular} \end{center} \end{frame} \section{Users' perspective} \subsection{Overview} \begin{frame} \frametitle{History} \begin{itemize} \item late 1993 Dutch \TeX\ Users Group, 4All\TeX\ CD, \acro{tds} working group\pause \item 1995 Unix-based \acro{TDS} \acro{CD} based on te\TeX\pause \item 1996 first edition, Sebastian Rahtz% \uncover<3-3>{\img{rahtz.png}{110pt}{10pt}{-5pt}}\pause \item 2000 5th edition, non-free software removed\pause \item 2002 7th edition: Mac OS X support\pause \item 2005 addition of the -sys scripts\pause \item 2006-07 Xe\TeX\ addition, end of te\TeX\ development, Karl Berry \uncover<7-7>{\img{berry.jpg}{100pt}{150pt}{-130pt}} \end{itemize} \end{frame} \begin{frame} \frametitle{Features} \begin{itemize} \item `complete' -- all the free stuff from \textsc{ctan}\bigit \item multi-platform\bigit \item uniform across platforms\bigit \item practically daily updates\bigit \item \textsc{dfsg} free with a few exceptions \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Installation} \begin{frame} \frametitle{Features of the new installer} \begin{itemize} \item Installation from various sources\bigit \item Text and \acro{GUI} mode\bigit \item Windows == Unix (\emph{cum grano salis}) \end{itemize} \end{frame} \begin{frame} \frametitle{Installation sources} \begin{itemize} \item \acro{DVD}\\ \uncover<1-1>{update \tlmgr, noexec% \img{texcollection2008-large.png}{120pt}{10pt}{-50pt}} \item Network\\ \uncover<2-2>{automatic detection of nearest \ctan-mirror} \item local (hard disk) mirror of \ctan\\ \uncover<3-3>{use it like a \acro{DVD}} \item svn checkout \item another installation\\ \uncover<5-5>{recent installations, -location argument necessary} \end{itemize} \end{frame} \begin{frame} \frametitle{Where to start} \begin{itemize} \item Go and get it at \url{http://mirror.ctan.org/systems/texlive/tlnet/2008}\\ ~~ \item \Verb+install-tl-unx.tar.gz+ for Unix-ish systems\\ ~~ \item \Verb+install-tl.zip+ for all systems\\ \uncover<2-2>{supports all systems, but ships Perl for \acro{W32}} \item \acro{W32}: double-click the \url{.bat} file\\ \uncover<3-3>{or start it from a cmd shell for additional arguments} \item Unix: \url{./install-tl}\\ \uncover<4-4>{and add arguments if you need them} \end{itemize} \end{frame} \begin{frame} \frametitle{Arguments for the Installer} \begin{itemize} \item \url{-location} installation source, can be\\ \url{/normal/path}\\ \url{file:/some/path}\\ \url{ftp://some.server/path}\\ \url{http://some.server/path} \bigit \item \url{-gui} tries to start the \acro{GUI} installer, \url{-no-gui} for \acro{W32} to disable the default \acro{GUI} installer \bigit \item \url{-lang} specifies a language code, currently supported: en, de, fr, it, nl, pl, sl, zh\_cn, zh\_tw \item some more: \url{-profile}, \url{-non-admin}, \ldots \end{itemize} \end{frame} \begin{frame} \frametitle{Installation settings} \begin{itemize} \item binary systems \uncover<1-1>{\img{gui-systems.png}{\textheight}{20pt}{-60pt}}\bigit \pause \item schemes \uncover<2-2>{\img{gui-scheme}{80pt}{-50pt}{10pt}}\pause\bigit \item collections \uncover<3-3>{\img{gui-collections}{160pt}{40pt}{-100pt}}\pause\bigit \item language collections and docs \uncover<4-4>{\img{gui-lang}{100pt}{-50pt}{-120pt}} \end{itemize} \end{frame} \begin{frame} \frametitle{Installation settings cont.} \begin{itemize} \item destination folders \begin{itemize} \item \textsc{texdir} \item \textsc{texmfsysvar} \item \textsc{texmfsysconfig} \item \textsc{texmfhome} \end{itemize}\uncover<1-1>{\img{install-directory.png}{70pt}{0pt}{0pt}} \pause \item options \begin{itemize} \item papersize \item create formats \item install font/macro documentation \item install font/macro sources \end{itemize}\uncover<2-2>{\img{install-options.png}{60pt}{110pt}{-110pt}} \end{itemize} \end{frame} \begin{frame} \frametitle{Post installation actions} \begin{block}{Windows systems} \vspace{-\baselineskip} \begin{itemize} \item Menu entry for \tl\ with all programs\medit \item Desktop link to ps-view\medit \item adjusting the \acro{PATH} environment\medit \end{itemize}\pause \end{block} \begin{block}{Unix systems} \vspace{-\baselineskip} \begin{itemize} \item add \acro{TEXDIR}/bin/<\acro{ARCH}> to \acro{PATH}\medit \item adjust \acro{MANPATH} and \acro{INFOPATH} \end{itemize} \end{block} \end{frame} \begin{frame} \frametitle{Other ways to use the installer} \begin{block}{Running from \acro{DVD}} only text mode, writable root necessary, only the texmf trees and binaries are not copied \end{block} \pause \begin{block}{Portable usage \texttt{tl\_portable(.bat)}} minimal impact on the system, first time it runs creates files in home directory, second time startup much faster, gives a shell that is set up for running \tl\ from there \end{block} \end{frame} \begin{frame}[plain] \frametitle{Demo Text and \acro{GUI} mode installer} \begin{tabular}{ll} \resizebox{0.5\columnwidth}{!}{\includegraphics{install08text-crop}} & \resizebox{0.5\columnwidth}{!}{\includegraphics{gui-installer.png}} \end{tabular} \end{frame} \subsection{\tlmgr} \begin{frame} \begin{center} \Large The new player\\[\bigskipamount] \tlmgr \end{center} \end{frame} \begin{frame} \frametitle{\TeX\ Live Manager \texttt{tlmgr}} \begin{itemize} \item installation/removal of additional packages or collections \item update all packages to the newest versions available \item backups and restore \item paper configuration like texconfig, but also for Windows \item managing the installed binary systems \item searching the installed and all available packages \item list and searching all schemes, collections, packages \item setting some default values like the installation location \item regenerate fmtutil.cnf, language.dat, and updmap.cfg from the information stored in the database and local additions \end{itemize} \end{frame} \begin{frame} \frametitle{\tlmgr\ -- Syntax} \begin{center} \texttt{tlmgr \alt<2>{\cred{[opt]...}}{[opt]...} \alt<3>{\cred{action}}{action} [opt]... [arg]...} \end{center} \only<2>{ With first set of options: \begin{itemize} \item \url{-location} installation source, see above \item \url{-gui} starts the \acro{GUI} \item \url{-gui-lang} should be auto-detected, can be overridden \item standard options \url{-help}, \url{-q}, \url{-v}, \url{-version} \end{itemize} } \only<3>{ \begin{itemize} \item general actions: search, show, list, uninstall, check, gui, version, help\bigit \item configuration actions: option, paper, generate\bigit \item package management actions: install, update, remove, backup, restore, arch \end{itemize} } \end{frame} \begin{frame} \frametitle{The search (and show) action} \begin{center} \texttt{tlmgr [opt]... search \cred{[opt]... what}} \end{center} searches the \emph{locally} installed package names and descriptions for \texttt{\cred{what}}. Options: \begin{itemize} \item \texttt{-global} also searches the remote database \item \texttt{-file} searches for file names \end{itemize} \pause \begin{center} \texttt{tlmgr [opt]... show \cred{what}} \end{center} shows information on the given packages \end{frame} \begin{frame} \frametitle{The install action} \begin{center} \texttt{tlmgr [opt]... install \cred{[opt]... what}} \end{center} installs the package \texttt{what} including all dependencies Options: \begin{itemize} \item \texttt{-no-depends} do not install dependencies \item \texttt{-no-depends-at-all} do not even install architecture specific sub-packages \end{itemize} \end{frame} \begin{frame} \frametitle{The update action} \begin{center} \texttt{tlmgr [opt]... update \cred{[opt]... what}} \end{center} installs the package \texttt{what} including all dependencies Options: \begin{itemize} \item \texttt{-list} list packages to be updated (or added) with revisions \item \texttt{-all} update everything \item \texttt{-dry-run} don't actually do it \item \texttt{-backupdir dir} saves a snapshot of the current status to the specified directory \item \texttt{-no-depends}, \texttt{-no-depends-at-all} as before \end{itemize} \end{frame} \begin{frame}[plain] \frametitle{The \acro{GUI} of the \tlmgr} \begin{figure}[ht!] \centering \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-update.png}} \end{figure} \end{frame} \begin{frame} \frametitle{Concluding remarks on \texttt{tlmgr}} \begin{itemize} \item very much work in progress, please do update your tlmgr immediately after a new installation \pause \item the \acro{GUI} needs a lot of work, does not exhibit all the functionality of the cmd line version \pause \item Perl programmers -- join us! \end{itemize} \pause Recovering from crashed \texttt{tlmgr} or perl modules\pause \begin{itemize} \item for Windows systems: \ctan: \texttt{update-tlmgr-latest.exe} \uncover<5-5>{\img{update-tlmgr-w32.png}{95pt}{-200pt}{-140pt}% \img{update-tlmgr-finish.png}{95pt}{-50pt}{-140pt}} \pause\bigit \item for Unix systems: \ctan: \texttt{update-tlmgr-latest.sh} \end{itemize} \end{frame} \subsection{Other news} \begin{frame} \frametitle{Other (user visible) news} \begin{itemize} \item \cblue{hyph-utf8:} all engines share the same patterns\pause \item \cblue{lua\TeX:} embedded lua interpreter\pause \item \cblue{xindy} indexing program\pause \item \cblue{(W32) Perl and Ghostscript.} `hidden' copies, no interference with full-scale distributions\pause \item \cblue{(W32) \texttt{fc-cache}} helps \XeTeX{} to handle fonts more efficiently.\pause \item \cblue{(W32) PS\_View.} a new PostScript\\ (and \acro{PDF} viewer that is free software% \uncover<6-6>{\img{psview.png}{120pt}{-40pt}{-160pt}}% \pause \item \cblue{(W32) dviout} \acro{DVI} previewer \uncover<7-7>{\img{dviout.png}{120pt}{-40pt}{-150pt}} \end{itemize} \end{frame} \section{Intermezzo for package writers} \begin{frame} \begin{center} \huge Intermezzo for \bigskip Package writers \end{center} \end{frame} \subsection{Getting things into CTAN} \begin{frame} \frametitle{Getting things into \tl} \begin{tikzpicture}[node distance=5mm, foo/.style={ rectangle,minimum size=6mm,rounded corners=3mm, very thick,draw=black!50, top color=white,bottom color=black!20}, ask/.style={ rectangle,minimum size=6mm,rounded corners=3mm, very thick,draw=black!50, top color=white,bottom color=black!20, font=\itshape }, point/.style={circle,draw,inner sep=0pt}] \node (new) at (0,4) [foo] {New package};\pause \node (ctan) at (0,3) [foo] {upload CTAN}; \path (new) edge[->] (ctan);\pause \node (2known) at (0,2) [ask] {known to ctan2tds?}; \path (ctan) edge[-] (2known);\pause \node (temp) at (1,1) [point] {yes}; \path (2known) edge[-] (temp); \node (call) at (0,0) [foo] {call ctan2tds}; \path (temp) edge[->] (call);\pause \node (adjust) at (-1,1) [foo] {adjust ctan2tds}; \path (2known) edge[->] (adjust); \path (adjust) edge[->] (call);\pause \node (refsvn) at (5,4) [foo] {\acro{TUG} reference checkout}; \node (p1) at (0,-0.5) [point] {}; \node (p2) at (2,-0.5) [point] {}; \node (p3) at (2,4) [point] {}; \path (call) edge[-] (p1); \path (p1) edge[-] (p2); \path (p2) edge[-] (p3); \path (p3) edge[->] (refsvn); \pause \node (tlnet) at (5,3) [foo] {update tlnet}; \path (refsvn) edge[->] (tlnet); \pause \node (cambridge) at (5,2) [foo] {mirror to Cambridge \acro{CTAN}}; \path (tlnet) edge[->] (cambridge); \pause \node (mirror) at (5,1) [foo] {mirrors to other \ctan\ mirrors}; \path (cambridge) edge[->] (mirror); \pause \node (user) at (5,0) [foo] {User's computer}; \path (mirror) edge[->] (user); \end{tikzpicture} \end{frame} \section{Technical part} \begin{frame} \begin{center} \huge Technical part \end{center} \end{frame} \subsection{The new infrastructure} \begin{frame} \frametitle{Aims of the new infrastructure} \begin{itemize} \item Separation of static from generated content\\ Going from a `source' to the `object' should include automatically data from various other sources \pause \item No additional files to be kept in sync\\ any additional files tend to be outdated, all the necessary information should be present in \emph{one} place and be easily parseable. \pause \item Single package updates via the web\pause \item Better documentation\\ since \tl\ is replacing te\TeX\ we want to give people incorporating \tl\ into distributions a better documented and easier to handle system \end{itemize} \end{frame} \begin{frame} \frametitle{The central \texttt{texlive.tlpdb}} One installation or media is now completely described by one file, the \TeX~Live Database: \begin{itemize} \item simple text file -- easily parseable \item revision number for the single packages \item generated from static content (the tlpsrc files) \item enriched with information from the \TeX~Catalogue \item format documented in detail (\textsc{pod} documentation in the respective perl module) \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{How does \texttt{texlive.tlpdb} look like} \begin{lstlisting}[title={texlive.tlpdb}] name abbr ... name memoir ... \end{lstlisting} \begin{itemize} \item sequence of \texttt{key value} pairs \item separated by an empty line (or more) \item one group per package \item some `meta'-packages for configuration options \end{itemize} \end{frame} \begin{frame}[plain,fragile] \frametitle{The single package: \tlpobj\ by example I} \begin{lstlisting}[basicstyle=\ttfamily\tiny,title={a0poster.tlpobj},label=a0poster] name a0poster category Package revision 7340 shortdesc Support for designing posters on large paper. longdesc Provides fonts in sizes of 12pt up to 107pt and also makes sure longdesc that in math formulas the symbols appear in the right size. Can longdesc also create a PostScript header file for dvips which ensures longdesc that the poster will be printed in the right size. Supported longdesc sizes are DIN A0, DIN A1, DIN A2 and DIN A3. docfiles size=47 texmf-dist/doc/latex/a0poster/a0.pdf details="Package documentation (German)" language="de" texmf-dist/doc/latex/a0poster/a0.tex texmf-dist/doc/latex/a0poster/a0_eng.pdf details="Package documentation (English)" language="en" texmf-dist/doc/latex/a0poster/a0_eng.tex runfiles size=4 texmf-dist/tex/latex/a0poster/a0poster.cls texmf-dist/tex/latex/a0poster/a0size.sty catalogue-version 1.22b catalogue-date 2006-11-28 22:38:04 +0100 catalogue-ctan /macros/latex/contrib/a0poster catalogue-license lppl \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{The origin of this \texttt{a0poster.tlpobj}} \begin{lstlisting}[basicstyle=\ttfamily\small,title={a0poster.tlpsrc},label=a0poster.tlpsrc] name a0poster category Package \end{lstlisting} \begin{itemize} \item minimal input file with static data \item rest is generated from actual svn repository (revision, size) \item enriched with information from the \TeX\ Catalogue (catalogue-*, specification of the documentation files) \item tagged documentation files (details, language), information again from the Catalogue \end{itemize} \end{frame} \begin{frame}[plain,fragile] \frametitle{The single packages: \tlpobj\ by example II} \begin{lstlisting}[basicstyle=\ttfamily\tiny,title={bin-bibtex8 and friends},label=bibtex8] name bin-bibtex8 category TLCore revision 7340 depend bin-bibtex8.ARCH docfiles size=15 texmf/doc/bibtex8/00readme.txt texmf/doc/bibtex8/HISTORY texmf/doc/bibtex8/csfile.txt texmf/doc/bibtex8/file_id.diz runfiles size=10 texmf-dist/bibtex/csf/base/88592pl.csf texmf-dist/bibtex/csf/base/cp1250pl.csf texmf-dist/bibtex/csf/base/cp852pl.csf texmf-dist/bibtex/csf/base/iso8859-7.csf name bin-bibtex8.alpha-linux category TLCore revision 7340 shortdesc binary files of bin-bibtex8 for alpha-linux binfiles arch=alpha-linux size=62 bin/alpha-linux/bibtex8 ... name bin-bibtex8.win32 category TLCore revision 7340 shortdesc binary files of bin-bibtex8 for win32 binfiles arch=win32 size=25 bin/win32/bibtex8.exe \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{The origin of the above \texttt{bin-bibtex8}} \begin{lstlisting}[basicstyle=\ttfamily\small,title={bin-bibtex8.tlpsrc},label=bin-dvipsk.tlpsrc] name bin-bibtex8 category TLCore runpattern d texmf-dist/bibtex/csf/base docpattern f texmf/doc/bibtex8/* binpattern f bin/${ARCH}/bibtex8 \end{lstlisting} % for stupid emacs: $ \begin{itemize} \item various patterns for capturing files \item tricks to capture binaries on unix and windows \item separate objects for the binary files of the package \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{The pattern language} patterns are of the form \begin{center} |[PREFIX]TYPE PAT| \end{center} where |PREFIX| can be |+|, |!+|, or |!|, \pause and |TYPE PAT| can be: \begin{description} \item[f path] includes all files which match |path| where \emph{only} the last component of |path| can contain the usual glob characters * and ? (but no others!).\pause \item[d path] includes all the files in and below the directory specified as |path|. \end{description} \end{frame} \begin{frame}[fragile] \frametitle{The pattern language} patterns are of the form \begin{center} |[PREFIX]TYPE PAT| \end{center} where |PREFIX| can be |+|, |!+|, or |!|, and |TYPE PAT| can be: \begin{description} \item[t word1 ... wordN wordL] includes all the files in and below all directories of the form \begin{center} \path{word1/word2/.../wordN/.../any/dirs/.../wordL/} \end{center}\pause \item[r regexp] includes all files matching the Perl regexp \verb+/^regexp$/+ \end{description} \end{frame} \begin{frame}[fragile] \frametitle{Example patterns} \begin{itemize} \item |runpattern f texmf/chktex/*|\\ includes all files \emph{in} Master/texmf/chktex/\pause \item |binpattern f bin/${ARCH}/bibtex|\\ % for stupid emacs $ includes the bibtex binaries into the bin-bibtex package, depending on the architecture\pause \item |runpattern d texmf/tex/lambda/base|\\ includes all files in and under the above path\pause \item |runpattern t texmf-dist omega uni2char|\\ includes all files in texmf-dist/omega/\ldots/uni2char/\pause \item |runpattern r .*/foobar|\\ includes the files matching the regexp \end{itemize} \end{frame} \begin{frame}[plain,fragile] \frametitle{Autogenerated patterns} To keep \tlpsrc\ files small, if a pattern section is empty or all patterns are prefixed with |+|, the following patterns are automatically generated (actual list is specified in a special \tlpsrc-file): \begin{itemize} \item runpatterns in category Package: \begin{center} |t texmf-dist topdir name| \end{center} \item docpatterns in category Package: \begin{center} |t texmf-dist doc name| \end{center} \item docpatterns in category Documentation: \begin{center} |t texmf-doc doc name| \end{center} \item srcpatterns in category Package: \begin{center} |t texmf-dist source name| \end{center} \item srcpatterns in category Documentation: \begin{center} |t texmf-doc source name| \end{center} \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Additional tricks} \begin{block}{arch expansion} In case the string \verb+${ARCH}+ occurs in one |binpattern| it is automatically expanded to the respective architecture. \end{block} \begin{block}{bat/exe/dll/texlua for win32} For |binpatterns| of the form |f bin/win32/foobar| files |foobar.bat|, |foobar.dll|, |foobar.exe|, and |foobar.texlua| are also matched. \end{block} \end{frame} \begin{frame} \frametitle{Effects of auto generation and tricks} total number of tlpsrc files: 1719 total number of tlpsrc files with patterns: 157 number of bin- and hyphen- tlpsrc files with patterns: 80 number of `normal' packages with patterns: 77 \end{frame} \begin{frame}[plain,fragile] \frametitle{Allowed fields for \tlpobj} \begin{itemize} \item name: identifies the package \item category: one of (currently) |Collection|, |Scheme|, |TLCore|, |Documentation|, |Package| \item shortdesc, longdesc: description of the package \item depend: |Name| (multiple entries possible) \item execute: activating maps, formats, hyphenation patterns \item runfiles, docfiles, srcfiles, binfiles\\ every files section has a size attribute, and the binfiles section can occur more then once with different arch tags (see above) \item revision: maximum svn revision number of the contained files, since version numbers are not parseable, trustworthy, or not even present \item catalogue-* keys: stuff taken from the catalogue\\ for example catalogue-version, catalogue-authors, catalogue-license \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Perl programming \textsc{api}} Important for `users' or integrators \begin{description} \item[TeXLive::TLPOBJ] for \tlpobj\ files, basic functionality like read, write, and member access and change functions, etc. \item[TeXLive::TLPDB] access to the \tl\ database. \item[TeXLive::TLPostInstall] collects post installation actions \end{description} \end{frame} \begin{frame}[fragile] \frametitle{Perl programming \textsc{api} \acro{II}} Important for `us' as developer: \begin{description} \item[TeXLive::TLTREE] properties of the subversion repository, in principle it is |svn status -v| \item[TeXLive::TeXCatalogue] simple interface to the \TeX\ Catalogue \item[TeXLive::TLPSRC] for \tlpsrc\ files, basic functionality like reade, write, etc \item[TeXLive::TLUtils] some handy functions \item[TeXLive::TLMedia] abstracts an arbitrary installation media \end{description} \end{frame} \begin{frame} \frametitle{Other (planned/wished) \textsc{api}s} Are they necessary/useful? Maybe calling the Perl code \ldots? \begin{description} \item[texlua] next on the list to be done, would really help us a lot \item[python] minimal code present (by Jim Hefferon) \item[C] some code present, was a \textsc{GSoC} project, but no slot available (code by Jjgod Jiang) \item[bash] maybe, some code present (by the author) \item[\ldots] no idea what else \ldots \end{description} \end{frame} \begin{frame} \frametitle{Documentation} \begin{itemize} \item all modules contain a full documentation in pod format\bigit \item additional text \textsc{api} document\bigit \item article in Ars\TeX nica, 2007:4, 69--73, and in the proceedings of the Bacho\TeX~2008. \end{itemize} \end{frame} \subsection{Internals of the \tlpdb, config options} \begin{frame} \frametitle{Some special packages} Some packages do not relate to actual files but are used to save options and configurations into the database by putting them into a depend line: \texttt{00texlive.config}, \texttt{00texlive-installation.config}, \texttt{00texlive.core}. Values are stored in these packages as dependencies. All packages starting with \texttt{00texlive} are considered virtual packages in the sense that no containers are generated and these packages are never split into .src and .doc sub-packages in the tlpdb. \end{frame} \begin{frame} \frametitle{\texttt{00texlive.config}} This package contains configuration options for the \tl\ archive: \begin{itemize} \item \texttt{container\_split\_\{doc,src\}\_files}\\ documentation and source files are split into separate containers (.tar.lzma) during container build time. Note that this has \emph{no} effect on the appearance within the texlive.tlpdb. It is only on container level. \item \texttt{container\_format/XXXXX}\\ specifies the format, currently allowed is only \texttt{lzma}, which generates .tar.lzma files. zip can be supported. \item \texttt{release/NNNN}\\ specifies the release number as used in the installer \end{itemize} \end{frame} \begin{frame} \frametitle{\texttt{00texlive-installation.config}} This package serves two purposes: \begin{itemize} \item at installation time the present values are taken as default for the installer \item on an installed system it serves as a configuration file. We have to remember these settings for additional package installation, removal, etc. \end{itemize} The value of \texttt{\_\_MASTER\_\_} for the location field tells the installer to use the present directory itself. For example, the \acro{DVD} can be mounted anywhere and we want the installer to work. \end{frame} \begin{frame}[fragile] \frametitle{Example \texttt{00texlive-installation.config}} \begin{lstlisting}[basicstyle=\ttfamily\small] name 00texlive-installation.config category TLCore depend platform:x86_64-linux depend location:/var/www/norbert/tlnet/2008 depend opt_paper:a4 depend opt_create_formats:0 depend opt_create_symlinks:0 depend opt_sys_bin:/usr/local/bin depend opt_sys_info:/usr/local/info depend opt_sys_man:/usr/local/man depend opt_install_docfiles:1 depend opt_install_srcfiles:0 depend available_architectures:x86_64-linux win32 \end{lstlisting} \end{frame} \begin{frame} \frametitle{\texttt{00texlive.core}} actually contains files, but those are never installed and this package is only here to collect files which are not contained in any package, thus making the coverage check squeak \end{frame} % \begin{frame} % \frametitle{Organization ??????????????} % \begin{itemize} % \item \textsc{svn} repository where many people have write permissions % \item loads of supporting scripts doing a variety of jobs: % \begin{itemize} % \item preparing the installation for mastering % \item installation from various media % \item installation of packages from \textsc{ctan} into the % \textsc{svn} repository % \item performing various checks on the whole archive (coverage, % double inclusion, etc.) % \end{itemize} % \end{itemize} % \end{frame} \section{Closing} \begin{frame} \frametitle{Resources} \begin{itemize} \item \url{tex-live@tug.org} -- main contact point \item \path{www.tug.org/texlive} -- the main entry point, with links to developers' resources, documentation \item \path{www.tug.org/svn/texlive/trunk/} -- web view onto the subversion repository; \item \path{svn://tug.org/texlive/trunk} -- svn repository, anonymous access \item \path{www.tug.org/texlive/pkgupdate.html} -- an explanation how updates from \ctan\ to \tl\ are done. \end{itemize} \end{frame} \begin{frame} \begin{center} {\Large Thanks} \bigskip Karl Berry\\ {\small for great enthusiasm and perpetual support (and critical voices)} \pause \bigskip \acro{TUG}\\% and \acro{DANTE}\\ {\small for financial support when my laptop broke} \pause \bigskip Your Attention \end{center} \end{frame} \end{document}