summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/cstug08/cstug08.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/doc/cstug08/cstug08.tex')
-rw-r--r--Master/tlpkg/doc/cstug08/cstug08.tex975
1 files changed, 975 insertions, 0 deletions
diff --git a/Master/tlpkg/doc/cstug08/cstug08.tex b/Master/tlpkg/doc/cstug08/cstug08.tex
new file mode 100644
index 00000000000..411ef6dfcf8
--- /dev/null
+++ b/Master/tlpkg/doc/cstug08/cstug08.tex
@@ -0,0 +1,975 @@
+\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}