diff options
author | Norbert Preining <preining@logic.at> | 2008-12-13 17:34:53 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-12-13 17:34:53 +0000 |
commit | e9a333df1b0667cd9be6fc9e4bd5062c8d2575b3 (patch) | |
tree | e35019b2ccf41865e58fcc9ab6c9e04fe9a55460 /Master/tlpkg/doc/cstug08 | |
parent | 835a7fedd0e16750e278f59887521123bb9163f4 (diff) |
add source code and pdf of talk at the CSTUG 2008 meeting
git-svn-id: svn://tug.org/texlive/trunk@11606 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/doc/cstug08')
22 files changed, 1783 insertions, 0 deletions
diff --git a/Master/tlpkg/doc/cstug08/berry.jpg b/Master/tlpkg/doc/cstug08/berry.jpg Binary files differnew file mode 100644 index 00000000000..27b5b574899 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/berry.jpg diff --git a/Master/tlpkg/doc/cstug08/cstug08.pdf b/Master/tlpkg/doc/cstug08/cstug08.pdf Binary files differnew file mode 100644 index 00000000000..9170e643af9 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/cstug08.pdf 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} diff --git a/Master/tlpkg/doc/cstug08/dviout.png b/Master/tlpkg/doc/cstug08/dviout.png Binary files differnew file mode 100644 index 00000000000..83c2cd3ff88 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/dviout.png diff --git a/Master/tlpkg/doc/cstug08/gui-collections.png b/Master/tlpkg/doc/cstug08/gui-collections.png Binary files differnew file mode 100644 index 00000000000..c542adddefc --- /dev/null +++ b/Master/tlpkg/doc/cstug08/gui-collections.png diff --git a/Master/tlpkg/doc/cstug08/gui-installer.png b/Master/tlpkg/doc/cstug08/gui-installer.png Binary files differnew file mode 100644 index 00000000000..81bfa5a3ad5 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/gui-installer.png diff --git a/Master/tlpkg/doc/cstug08/gui-lang.png b/Master/tlpkg/doc/cstug08/gui-lang.png Binary files differnew file mode 100644 index 00000000000..1d1cc2ac506 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/gui-lang.png diff --git a/Master/tlpkg/doc/cstug08/gui-scheme.png b/Master/tlpkg/doc/cstug08/gui-scheme.png Binary files differnew file mode 100644 index 00000000000..007f2910792 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/gui-scheme.png diff --git a/Master/tlpkg/doc/cstug08/gui-systems.png b/Master/tlpkg/doc/cstug08/gui-systems.png Binary files differnew file mode 100644 index 00000000000..24bfaada82c --- /dev/null +++ b/Master/tlpkg/doc/cstug08/gui-systems.png diff --git a/Master/tlpkg/doc/cstug08/install-directory.png b/Master/tlpkg/doc/cstug08/install-directory.png Binary files differnew file mode 100644 index 00000000000..06a1349b3c6 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/install-directory.png diff --git a/Master/tlpkg/doc/cstug08/install-options.png b/Master/tlpkg/doc/cstug08/install-options.png Binary files differnew file mode 100644 index 00000000000..becc47b1f79 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/install-options.png diff --git a/Master/tlpkg/doc/cstug08/install08text-crop.pdf b/Master/tlpkg/doc/cstug08/install08text-crop.pdf Binary files differnew file mode 100644 index 00000000000..e6044fcd435 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/install08text-crop.pdf diff --git a/Master/tlpkg/doc/cstug08/psview.png b/Master/tlpkg/doc/cstug08/psview.png Binary files differnew file mode 100644 index 00000000000..8322bdda693 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/psview.png diff --git a/Master/tlpkg/doc/cstug08/rahtz.png b/Master/tlpkg/doc/cstug08/rahtz.png Binary files differnew file mode 100644 index 00000000000..78c067e704e --- /dev/null +++ b/Master/tlpkg/doc/cstug08/rahtz.png diff --git a/Master/tlpkg/doc/cstug08/start_impressive.sh b/Master/tlpkg/doc/cstug08/start_impressive.sh new file mode 100644 index 00000000000..ee8775bee15 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/start_impressive.sh @@ -0,0 +1,4 @@ + + +impressive -A 16:9 -c memory -d 1h20 cstug08.pdf + diff --git a/Master/tlpkg/doc/cstug08/talk-bacho08.tex b/Master/tlpkg/doc/cstug08/talk-bacho08.tex new file mode 100644 index 00000000000..8ff80e1e270 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/talk-bacho08.tex @@ -0,0 +1,493 @@ +\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} +\usepackage{marvosym} +\usepackage{listings} +\lstset{frame=lines,basicstyle=\ttfamily,showspaces=true,prebreak={\Righttorque},postbreak={\Lefttorque},breaklines} +\newcommand{\tl}{\TeX~Live} +\newcommand{\ctan}{CTAN} +\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} + +\hyphenation{infra-struc-ture} +\DefineShortVerb{\|} + +\usetheme[headheight=10pt,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's new infrastructure -- {\normalfont Bachotek~2008} + \hfill \insertframenumber\hspace{3em}~~\vfill}}} +\addheadbox{black on white}{\hbox{\vbox to 10pt{~~~\hfill\leavevmode\vfill}}} +\setbeamertemplate{navigation symbols}{} + +\setlength{\parskip}{\medskipamount} + +\def\cred#1{{\color{red}#1}} +\def\prog#1{\texttt{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% here begins the stuff +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title{\tl's new infrastructure} +\author{Norbert Preining} +\institute{Vienna University of Technology, Austria} +\date{\textsc{Bachotek~2008} + +Bachotek, Poland \hspace{\bigskipamount} 30~April 2008} + +\begin{document} + +\frame{\titlepage} + + +\begin{frame} + \frametitle{The \tl\ distribution} + + \begin{itemize} + \item includes all the free stuff from \textsc{ctan} + \item available for a wide range of platform--operating system + combinations + \item currently is replacing te\TeX\ in many (Unix) distributions as + default \TeX\ system + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Upstream 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} + + \pause + \begin{block}{Problems} + \begin{itemize} + \item hand-crafted, hard to read + \item not easily extensible + \item no documentation + \end{itemize} + \end{block} +\end{frame} + + +\begin{frame} + \frametitle{Previous infrastructure: tpms} + \TeX\ Package Manage[r/ment] files collected a variety of + information into on \textsc{xml} file: + \begin{itemize} + \item file patterns and file lists + \item title, description, license, versions + \item activation of map files, formats, hyphenation patterns + \end{itemize} + \pause + \begin{block}{Problems with tpms} + \begin{itemize} + \item mixture of generated and static information + \item duplicated information (version, license, descriptions, + \ldots) which were outdated + \item hard to parse, thus the necessity to generate another set of + files for the installer + \end{itemize} + \end{block} +\end{frame} + +\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 (mainly the Catalogue and the + repository) \pause + \item Getting rid of any `additional' files (list files)\\ + 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\\ + updates to single packages (e.g., a new beamer release)\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 and special + purpose packages + \end{itemize} +\end{frame} + +\begin{frame}[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}[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|. \pause + \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}[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: + \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{description} + \item[arch expansion] + In case the string \verb+${ARCH}+ occurs in one |binpattern| it is + automatically expanded to the respective architecture. + \item[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{description} + \pause + \begin{block}{Effects of auto generation and tricks} + total number of tlpsrc files: 1644\\ + total number of tlpsrc files with patterns: 172\\ + number of bin- and hyphen- tlpsrc files with patterns: 123\\ + number of `normal' packages with patterns: 49 + \end{block} +\end{frame} + + +\begin{frame}[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} + \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. + \begin{itemize} + \item \texttt{00texlive.config} general configuration (release, + src/doc container split) + \item \texttt{00texlive-installation.config} only present in a final + installation and contains the choices the admin made when doing + the installation (paper a4/letter, pre-generate formats, + installation location, \ldots) + \item \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{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} + + \pause + 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} + \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 + \item additional text \textsc{api} document + \item article in Ars\TeX nica, 2007:4, 69--73, and in proceedings of + this conference (hopefully) + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{What to do with this stuff} + \begin{itemize} + \item installer: more or less done, see other talk + \item distribution inclusion: will hopefully work well + \item texdoctk++: tagged documentation files could be used to write + a better texdoctk, but depends on the information of the authors + in the \TeX~Catalogue + \item `\TeX\ Live Manager' \texttt{tlmgr} + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{\TeX\ Live Manager \texttt{tlmgr}} + New program collection several scripts under one hood, currently + supports: + \begin{itemize} + \item installation of additional packages or collections, with or + without automatic dependency installation + \item same with removal + \item update all packages to the newest versions available + \item paper configuration like texconfig, but also for Windows + \item listing of available and installed architectures, and adding + new architectures to the installation + \item searching the installed and all available packages + \item list 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 + \item uninstall the whole installation + \end{itemize} +\end{frame} +\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} +\end{document} diff --git a/Master/tlpkg/doc/cstug08/talk-guit2008.tex b/Master/tlpkg/doc/cstug08/talk-guit2008.tex new file mode 100644 index 00000000000..b3e95a7ae52 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/talk-guit2008.tex @@ -0,0 +1,311 @@ +\documentclass{beamer} +\usefonttheme{serif} +\usefonttheme{professionalfonts} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{hhline,bm,xspace,url} +\usepackage[expert]{lucidabr} +\renewcommand{\rmdefault}{hlhj} +\usepackage{fancyvrb} +\usepackage{url,xcolor} +\usepackage{marvosym} +\usepackage[color]{guit} +\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{\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{\tlmgr}{\TeX~Live Manager} +\newcommand{\XeTeX}{Xe\TeX} + +\def\bigit{\\[\bigskipamount]} +\def\medit{\\[\medskipamount]} + +\hyphenation{infra-struc-ture} +\DefineShortVerb{\|} + +\usetheme[headheight=10pt,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 and the \tl~Manager -- {\normalfont\guitmeeting 2007} + \hfill \insertframenumber\hspace{3em}~~\vfill}}} +\addheadbox{black on white}{\hbox{\vbox to 10pt{~~~\hfill\leavevmode\vfill}}} +\setbeamertemplate{navigation symbols}{} + +\setlength{\parskip}{\medskipamount} + +\def\cred#1{{\color{red}#1}} +\def\prog#1{\texttt{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% here begins the stuff +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title{\tl~2008 and the \tl~Manager} +\author{Norbert Preining} +\institute{Vienna University of Technology, Austria} +\date{\textsc{{\normalfont\guitmeeting*}~2008} + +Pisa, Italia \hspace{\bigskipamount} 18~October 2007} + +\begin{document} + +\frame{\titlepage} + + +\begin{frame} + \frametitle{Properties of the \tl\ distribution} + + \begin{itemize} + \item includes all the free stuff from \textsc{ctan} + \item ready for ``consumption'', i.e., runs from \textsc{dvd}, but + can also installed into the file system + \item available for a wide range of platform--operating system + combinations + \item currently is replacing te\TeX\ in many (Unix) distributions as + default \TeX\ system + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Upstream organization} + \begin{itemize} + \item \textsc{svn} repository where many people have write permissions + \end{itemize} + + \pause + \cred{\huge STOP} + + \medskip + \pause + That was last year's talk \ldots +\end{frame} + + +\begin{frame} + \frametitle{The new installer} + \begin{itemize} + \item Installation from the Internet\\ + \uncover<2-2>{or from a rsync of the archive, or from the svn + checkout, (or from an installation)} + \item Text and \acro{GUI} mode\\ + \uncover<3-3>{text mode emulates former shell installer, also in + \acro{W32}, \acro{GUI} for all platforms} + \item Windows == Unix (\emph{cum grano salis})\\ + \uncover<4-4>{text and \acro{GUI} mode, -sys vs. user mode, same + texmf.cnf file} + \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.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{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} + +\begin{frame} + \frametitle{The \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, uninstall\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 + + \pause + Demo +\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} + + \pause + Demo +\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} + + \pause + Demo +\end{frame} + + +\begin{frame} + \frametitle{The \acro{GUI} of the \tlmgr} + + \begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-update.png}} + \end{figure} + + Demo +\end{frame} + +\begin{frame} + \frametitle{What else -- Windows} + \begin{description} + \item[Perl and Ghostscript.] `hidden' copies, no interference with + full-scale distributions\bigit + \item[\texttt{fc-cache}] helps \XeTeX{} to handle fonts more + efficiently.\bigit + \item[PS\_View.] a new PostScript (and \acro{PDF} viewer + that is free software\bigit + \item[dviout] \acro{DVI} previewer + \end{description} +\end{frame} + +\begin{frame} + \frametitle{Really new -- Windows \acro{II}} + A \tlmgr\ Updater in \.exe format +\end{frame} + +\begin{frame} + \frametitle{Closing} + \begin{itemize} + \item very much work in progress, please do update your tlmgr + immediately after a new installation\bigit + \pause + \item the \acro{GUI} needs a lot of work, does not exhibit all the + functionality of the cmd line version \bigit + \pause + \item Perl programmers -- join us!\bigit + \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} diff --git a/Master/tlpkg/doc/cstug08/texcollection2008-large.png b/Master/tlpkg/doc/cstug08/texcollection2008-large.png Binary files differnew file mode 100644 index 00000000000..101aa1fb8bd --- /dev/null +++ b/Master/tlpkg/doc/cstug08/texcollection2008-large.png diff --git a/Master/tlpkg/doc/cstug08/texlive2008-logo-2.png b/Master/tlpkg/doc/cstug08/texlive2008-logo-2.png Binary files differnew file mode 100644 index 00000000000..6e0cfddaebd --- /dev/null +++ b/Master/tlpkg/doc/cstug08/texlive2008-logo-2.png diff --git a/Master/tlpkg/doc/cstug08/tlmgrgui-update.png b/Master/tlpkg/doc/cstug08/tlmgrgui-update.png Binary files differnew file mode 100644 index 00000000000..cc15c5cb218 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/tlmgrgui-update.png diff --git a/Master/tlpkg/doc/cstug08/update-tlmgr-finish.png b/Master/tlpkg/doc/cstug08/update-tlmgr-finish.png Binary files differnew file mode 100644 index 00000000000..b0f69621ba7 --- /dev/null +++ b/Master/tlpkg/doc/cstug08/update-tlmgr-finish.png diff --git a/Master/tlpkg/doc/cstug08/update-tlmgr-w32.png b/Master/tlpkg/doc/cstug08/update-tlmgr-w32.png Binary files differnew file mode 100644 index 00000000000..c12a509f99f --- /dev/null +++ b/Master/tlpkg/doc/cstug08/update-tlmgr-w32.png |