summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/articles
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-09-15 18:56:50 +0000
committerNorbert Preining <preining@logic.at>2009-09-15 18:56:50 +0000
commit995770ec5a02a4379ee49acbad1ce091601f7203 (patch)
tree1d78cb5bf9ab257c8c5d66ceb3127337fbd4b0b3 /Master/tlpkg/doc/articles
parent29b6bc51ba93d568c16f16e04fbc509653d85241 (diff)
rework tlpkg/doc and tlpkg/dev layout
git-svn-id: svn://tug.org/texlive/trunk@15301 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/doc/articles')
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/install08gui.pngbin0 -> 37605 bytes
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/install08text.pdfbin0 -> 9045 bytes
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/install08text.tex51
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.pdfbin0 -> 159116 bytes
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.tex105
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.pdfbin0 -> 350633 bytes
-rw-r--r--Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.tex274
-rw-r--r--Master/tlpkg/doc/articles/cstug08/berry.jpgbin0 -> 63834 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/cstug08.pdfbin0 -> 1110453 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/cstug08.tex975
-rw-r--r--Master/tlpkg/doc/articles/cstug08/dviout.pngbin0 -> 25441 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/gui-collections.pngbin0 -> 71770 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/gui-installer.pngbin0 -> 127394 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/gui-lang.pngbin0 -> 60229 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/gui-scheme.pngbin0 -> 22217 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/gui-systems.pngbin0 -> 29332 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/install-directory.pngbin0 -> 51165 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/install-options.pngbin0 -> 12154 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/install08text-crop.pdfbin0 -> 15658 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/psview.pngbin0 -> 10129 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/rahtz.pngbin0 -> 160013 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/start_impressive.sh4
-rw-r--r--Master/tlpkg/doc/articles/cstug08/talk-bacho08.tex493
-rw-r--r--Master/tlpkg/doc/articles/cstug08/talk-guit2008.tex311
-rw-r--r--Master/tlpkg/doc/articles/cstug08/texcollection2008-large.pngbin0 -> 90636 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/texlive2008-logo-2.pngbin0 -> 60001 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/tlmgrgui-update.pngbin0 -> 46119 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/update-tlmgr-finish.pngbin0 -> 9530 bytes
-rw-r--r--Master/tlpkg/doc/articles/cstug08/update-tlmgr-w32.pngbin0 -> 8551 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit07/tlinfra-guit07.pdfbin0 -> 302548 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit07/tlinfra-guit07.tex595
-rw-r--r--Master/tlpkg/doc/articles/guit08/Makefile61
-rw-r--r--Master/tlpkg/doc/articles/guit08/dviout.pngbin0 -> 25441 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-collections.pngbin0 -> 71770 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-installer-de.pngbin0 -> 130435 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-installer.pngbin0 -> 127394 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-lang.pngbin0 -> 60229 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-progress.pngbin0 -> 82056 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-scheme.pngbin0 -> 22217 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/gui-systems.pngbin0 -> 29332 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/install08text.tex57
-rw-r--r--Master/tlpkg/doc/articles/guit08/psview.pngbin0 -> 10129 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgr-article.bib27
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgr-article.pdfbin0 -> 1072733 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgr-article.tex921
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgr-dtk.ltx34
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgr-dtk.pdfbin0 -> 1332862 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgr-dtk.tex1032
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-arch-de.pngbin0 -> 60248 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-arch.pngbin0 -> 60866 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-install-de.pngbin0 -> 68303 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-install.pngbin0 -> 80213 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-log-de.pngbin0 -> 54267 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-options-de.pngbin0 -> 82332 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-options.pngbin0 -> 57504 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-remove-de.pngbin0 -> 93350 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-remove.pngbin0 -> 57797 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-update-de.pngbin0 -> 67212 bytes
-rw-r--r--Master/tlpkg/doc/articles/guit08/tlmgrgui-update.pngbin0 -> 46119 bytes
59 files changed, 4940 insertions, 0 deletions
diff --git a/Master/tlpkg/doc/articles/bachotex08/install08gui.png b/Master/tlpkg/doc/articles/bachotex08/install08gui.png
new file mode 100644
index 00000000000..44895895d96
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/install08gui.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/bachotex08/install08text.pdf b/Master/tlpkg/doc/articles/bachotex08/install08text.pdf
new file mode 100644
index 00000000000..639551f96a3
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/install08text.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/bachotex08/install08text.tex b/Master/tlpkg/doc/articles/bachotex08/install08text.tex
new file mode 100644
index 00000000000..8fd709ec88f
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/install08text.tex
@@ -0,0 +1,51 @@
+\documentclass{article}
+\pagestyle{empty}
+\parindent 0pt
+\begin{document}
+\tiny
+\begin{verbatim}
+=================> TeX Live installation procedure <================
+
+==> Note: Letters/digits in <angle brackets> indicate menu items <==
+==> for commands or configurable options <==
+
+ Proposed platform: Intel x86_64 with GNU/Linux
+
+ <B> binary systems: 1 out of 15
+
+ <S> Installation scheme (scheme-full)
+
+ Customizing installation scheme:
+ <C> standard collections
+ <L> language collections
+ 83 collections out of 84, disk space required: 1426 MB
+
+ <D> directories:
+ TEXDIR (The main TeX directory):
+ /usr/local/texlive/2008
+ TEXMFLOCAL (Directory for local styles etc):
+ /usr/local/texlive/texmf-local
+ TEXMFSYSVAR (Directory for local config):
+ /usr/local/texlive/2008/texmf-var
+
+ <O> options:
+ [ ] use letter size instead of A4 by default
+ [ ] create all format files
+ [X] install macro/font doc tree
+ [X] install macro/font source tree
+ [ ] create symlinks in standard directories
+
+Other options:
+====================================================================
+ <I> start installation
+ <H> help
+ <Q> quit
+
+Enter command:
+\end{verbatim}
+\end{document}
+
+latex install08text.tex
+dvips -E install08text.dvi
+epstopdf install08text.ps
+
diff --git a/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.pdf b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.pdf
new file mode 100644
index 00000000000..9a6cb330025
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.tex b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.tex
new file mode 100644
index 00000000000..7eb25f58bcc
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08-abstract.tex
@@ -0,0 +1,105 @@
+%
+% A new installer for TeX Live
+% Norbert Preining, Reinhard Kotucha, Siep Kroonenberg
+% Article presented on the 16th BachoTeX meeting, Bachotek ?? May 2008
+%
+% Copyright 2007 Norbert Preining at al.
+% You can redistribute and/or modify this document under the terms of the
+% GNU General Public License as published by the Free Software Foundation;
+% either version 2 of the License, or (at your option) any later version.
+%
+%\documentclass{arstexnica}
+\documentclass{ltugproc}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\usepackage{fancyvrb}
+\usepackage{url}
+\usepackage{marvosym}
+\usepackage{listings}
+\lstset{frame=lines,basicstyle=\ttfamily,showspaces=true,prebreak={\Righttorque},postbreak={\Lefttorque},breaklines}
+\usepackage{microtype}
+
+\usepackage{hyperref} % should be loaded last because it patches other
+ % packages.
+
+\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}
+
+\hypersetup{pdftitle={A new installer for \tl},
+ pdfauthor={R. Kotucha, S. Kroonenberg, N. Preining},
+ pdfsubject={A new installer for \tl},
+ pdfkeywords={TeX Live, installer, ...}}
+
+\hyphenation{infra-struc-ture}
+
+%\catcode`>=\active
+%\def>#1<{\texttt{#1}}
+\DefineShortVerb{\|}
+\begin{document}
+%\begin{article}
+%\selectlanguage{italian}%
+
+\title{A new installer for \tl}%%%\thanks{%
+% Article presented on the 16th Bacho\TeX meeting, Bachotek ?? May 2008}}
+
+\author{Reinhard Kotucha}
+\address{Marschnerstr.~25\\
+ 30167~Hannover, Germany}
+\netaddress{reinhard.kotucha@web.de}
+
+\author{Siep Kroonenberg}
+\address{Rijksuniversiteit Groningen\\
+ Department of Economics\\
+ P.O.~Box~800\\
+ 9700~AV~Groningen, the Netherlands}
+\netaddress{siepo@cybercomm.nl}
+
+\author{Norbert Preining}
+\address{Vienna University of Technology\\
+ Wiedner Hauptstr.\ 10\\
+ 1040 Wien, Austria}
+\netaddress{preining@logic.at}
+
+
+\begin{abstract}
+ \tl\ has a new package infrastructure, primarily developed by
+ Norbert Preining, and inspired by the Debian/Linux packaging
+ system.
+
+ We shall present a new \tl\ installer, based on the new package
+ infrastructure. It includes a text based as well a graphical user
+ interface. Among other new features, installing \tl\ from the
+ internet is now possible. It should work on all platforms
+ supported by \tl.
+\end{abstract}
+
+\maketitle
+
+\end{document}
+%
+% does not work in normal arstexnika mode, needs standalone, I leave
+% this up to the editors
+%\tableofcontents
+
+\section{Introduction}
+\label{sec:intro}
+
+%\bibliographystyle{arstexnica}
+%\bibliography{atsample}
+
+\end{article}
+
+\end{document}
+
+
diff --git a/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.pdf b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.pdf
new file mode 100644
index 00000000000..b9b9f40db19
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.tex b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.tex
new file mode 100644
index 00000000000..437df118280
--- /dev/null
+++ b/Master/tlpkg/doc/articles/bachotex08/tlinst-BT08.tex
@@ -0,0 +1,274 @@
+%
+% A new installer for TeX Live
+% Norbert Preining, Reinhard Kotucha, Siep Kroonenberg
+% Article presented on the 16th BachoTeX meeting, Bachotek ?? May 2008
+%
+% Copyright 2007 Norbert Preining at al.
+% You can redistribute and/or modify this document under the terms of the
+% GNU General Public License as published by the Free Software Foundation;
+% either version 2 of the License, or (at your option) any later version.
+%
+%\documentclass{arstexnica}
+\documentclass{ltugproc}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\usepackage{fancyvrb}
+\usepackage{url}
+\usepackage{marvosym}
+\usepackage{listings}
+\lstset{frame=lines,basicstyle=\ttfamily,showspaces=true,prebreak={\Righttorque},postbreak={\Lefttorque},breaklines}
+\usepackage{microtype}
+
+\usepackage{hyperref} % should be loaded last because it patches other
+ % packages.
+
+\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}
+
+\newcommand{\pl}{Perl}
+\newcommand{\gs}{Ghostscript}
+\newcommand{\tlu}{\texttt{texlua}}
+\newcommand{\kpse}{\texttt{kpathsea}}
+
+% from l2tabuen:
+\tolerance 1414
+\hbadness 1414
+\emergencystretch 1.5em
+\hfuzz 0.3pt
+%\widowpenalty -10000
+\vfuzz \hfuzz
+%\raggedbottom
+
+
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{10}
+\renewcommand{\textfraction}{0.15}
+\renewcommand{\topfraction}{0.85}
+\renewcommand{\bottomfraction}{0.70}
+\renewcommand{\floatpagefraction}{0.66}
+
+
+\hypersetup{pdftitle={A new installer for \tl},
+ pdfauthor={R. Kotucha, S. Kroonenberg, N. Preining},
+ pdfsubject={A new installer for \tl},
+ pdfkeywords={TeX Live, installer, ...}}
+
+\hyphenation{infra-struc-ture}
+
+%\catcode`>=\active
+%\def>#1<{\texttt{#1}}
+\DefineShortVerb{\|}
+\begin{document}
+%\begin{article}
+%\selectlanguage{italian}%
+
+\title{A new installer for \tl}%%%\thanks{%
+% Article presented on the 16th Bacho\TeX meeting, Bachotek ?? May 2008}}
+
+\author{Reinhard Kotucha}
+\address{Marschnerstr.~25\\
+ 30167~Hannover, Germany}
+\netaddress{reinhard.kotucha@web.de}
+
+\author{Siep Kroonenberg}
+\address{Rijksuniversiteit Groningen\\
+ Department of Economics\\
+ P.O.~Box~800\\
+ 9700~AV~Groningen, the Netherlands}
+\netaddress{siepo@cybercomm.nl}
+
+\author{Norbert Preining}
+\address{Vienna University of Technology\\
+ Wiedner Hauptstr.\ 10\\
+ 1040 Wien, Austria}
+\netaddress{preining@logic.at}
+
+
+\begin{abstract}
+ \tl\ has a new package infrastructure, primarily developed by
+ Norbert Preining, and inspired by the Debian GNU/Linux packaging
+ system.
+
+ We shall present a new \tl\ installer, based on the new package
+ infrastructure. It includes a text based as well a graphical user
+ interface. Among other new features, installing \tl\ from the
+ Internet is now possible. It should work on all platforms
+ supported by \tl.
+\end{abstract}
+
+\maketitle
+
+%
+% does not work in normal arstexnika mode, needs standalone, I leave
+% this up to the editors
+%\tableofcontents
+
+\section{Introduction}
+\label{sec:intro}
+
+In this paper we introduce the new \tl\ installer. Its creation was
+necessitated by the new package infrastructure, which is described
+elsewhere in these proceedings.
+
+However, there is more news, also from a user's point of view. In
+particular:
+\begin{itemize}
+\item It will be possible to install \tl\ from the Internet.
+\item The Windows version is much more in line with Unix versions.
+\item There is just one installer, which can run either in text
+ mode, emulating the former install-tl.sh shell script,
+ or in GUI mode, emulating the former tlpmgui.
+\end{itemize}
+
+\begin{figure}[htb]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{install08text}}
+ \caption{Main menu of the text mode installer}
+ \label{fig:text_main_menu}
+\end{figure}
+
+\section{\tlu}
+\label{sec:texlua}
+
+Nowadays \TeX{} contains a customized copy of Lua as embedded
+scripting language. When called as \tlu, it acts as a standalone Lua
+interpreter, customized for a \TeX{} environment. This is a very
+attractive scripting solution:
+\begin{itemize}
+\item no version worries: \tlu{} scripts should simply match the
+ \TeX{} version they are part of.
+\item \tlu{} has \kpse\ compiled in. In a \tlu{} script \kpse{}
+ file searching happens within the same process, which can speed
+ things up a lot.
+\item An embedded scripting language is immune from the kind of
+ bloat suffered by popular scripting languages such as \pl{} and
+ Ruby.
+\end{itemize}
+Under Windows, the |.texlua| extension is made an executable file
+type.
+
+\section{Install \tl\ from the Internet}
+\label{sec:internet}
+
+It is now possible to install \tl\ from a remote server. Thanks to
+the new infrastructure, the package database which tells the
+installer which packages have to be downloaded and how to install
+them, is a single file.
+
+Two installers for network downloads are provided.
+|install-tl-unx.tar.gz.| supports Unix only. |install-tl.zip|
+additionally contains a small subset of \pl\ for Windows which is
+required to bootstrap the system. The latter works on all platforms
+supported by \tl. The sole reason for providing a separate package
+for Unix is its significantly smaller size.
+
+
+\section{A new compression Algorithm}
+\label{sec:lzma}
+
+Using |.tar.lzma| compression instead of |.zip| reduces the size of the
+compressed packages by 20\%. It cannot be assumed that |lzma|
+decompressors are available on any platform, hence they have to be
+provided for all platforms supported by \tl. Fortunately there is a
+program `|lzmadec|' available for all platforms. The size of the
+executable file is only 12\,kB.
+
+\section{Bringing Windows in line with Unix}
+
+\tl\ 2008 supports Windows 2000 and later. By dropping older Windows
+versions, there is much less need to treat Windows specially.
+
+\subsection{\texttt{\$HOME} and multi-user support}
+Under Windows 2000 and later, users have a real home directory,
+viz. \verb+%USERPROFILE%+, usually
+\verb+C:\Documents and Settings\+\textit{username}.
+
+This is now reflected in tilde expansion by \kpse, thanks to Karl
+Berry: \verb+~/texmf+ is expanded to \verb+%USERPROFILE%\texmf+
+under Windows and to \verb+$HOME/texmf+ under Unix.
+
+It is also possible to differentiate between system settings and
+user settings. Now there is no reason any more to have a different
+set of \texttt{texmf} trees or to leave out scripts such as
+\texttt{fmtutil-sys} and \texttt{updmap-sys}. It also shares the
+Unix \texttt{texmf.cnf}.
+
+\subsection{Scripting}
+We cannot count on the presence of the usual Unix scripting
+languages. We deal with this by including a limited subset of \pl{}
+for Windows, which contains just enough modules to run the installer
+and the \pl{} scripts which are part of \tl.
+
+To prevent interference with any pre-existing \pl, we make it
+invisible to the system by not placing it on the searchpath and by
+not creating or changing any \pl-related settings. Instead, the
+\tl\ \pl\ scripts are called via wrapper scripts that know how to
+find Perl and that create the environment variables it needs for the
+duration of the job. In the case of the installer itself, the
+wrapper is a simple batchfile (but not so simple that it would have
+worked under earlier Windows versions). But in most cases, the
+wrapper is written in \tlu; see section \ref{sec:texlua}.
+
+Most likely, there won't be a Bourne-compatible shell either. But in
+the new \tl, most shell scripts have been replaced by \pl- and
+\tlu{} scripts, which also work under Windows. So we just about got
+rid of \texttt{.exe} files replacing Unix scripts.
+
+\subsection{\gs}
+
+\tl{} for Windows also includes a hidden copy of \gs, another
+fixture of Unix systems that is usually absent from Windows. The
+most important batch files provided by \gs\ have been ported to
+\tlu{}, see \ref{sec:texlua}.
+
+\begin{figure*}[htb]
+ \centering
+ \resizebox{\textwidth}{!}{\includegraphics{install08gui}}
+ \caption{The main menu of the GUI installer}
+ \label{fig:gui_main_menu}
+\end{figure*}
+
+\section{Testing with virtual machines}
+We do much of our testing with virtual machines. With programs such
+as VirtualBox or VMware you can run a guest operating system as a
+program inside a host operating system.
+
+Even if host and guest are the same operating system, it is a huge
+advantage that the host will be unaffected, and that the guest is
+free from the idiosyncrasies of the host.
+
+Normally, the filesystem of the guest is on a virtual disk, which is
+a very large file on the host system. An installation can simply be
+reverted by making a fresh copy from backup of this very large file.
+
+The guest can access the \tl{} files via e.g. a shared folder or
+Samba, using a virtual network interface. An Internet install can be
+simulated with a webserver or ftp server on the host, also via a
+virtual network interface. These server programs can simply use the
+\tl{} working copy.
+
+\newpage
+\begin{thebibliography}{1}
+\bibitem{PreiBT08} Norbert \textsc{Preining}
+\newblock \emph{The new \TeX~Live Infrastructure and Installer}
+Talk held at Bacho\TeX\,2008.
+\end{thebibliography}
+
+%\bibliographystyle{arstexnica}
+%\bibliography{atsample}
+
+%\end{article}
+
+\end{document}
diff --git a/Master/tlpkg/doc/articles/cstug08/berry.jpg b/Master/tlpkg/doc/articles/cstug08/berry.jpg
new file mode 100644
index 00000000000..27b5b574899
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/berry.jpg
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/cstug08.pdf b/Master/tlpkg/doc/articles/cstug08/cstug08.pdf
new file mode 100644
index 00000000000..9170e643af9
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/cstug08.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/cstug08.tex b/Master/tlpkg/doc/articles/cstug08/cstug08.tex
new file mode 100644
index 00000000000..411ef6dfcf8
--- /dev/null
+++ b/Master/tlpkg/doc/articles/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/articles/cstug08/dviout.png b/Master/tlpkg/doc/articles/cstug08/dviout.png
new file mode 100644
index 00000000000..83c2cd3ff88
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/dviout.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/gui-collections.png b/Master/tlpkg/doc/articles/cstug08/gui-collections.png
new file mode 100644
index 00000000000..c542adddefc
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/gui-collections.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/gui-installer.png b/Master/tlpkg/doc/articles/cstug08/gui-installer.png
new file mode 100644
index 00000000000..81bfa5a3ad5
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/gui-installer.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/gui-lang.png b/Master/tlpkg/doc/articles/cstug08/gui-lang.png
new file mode 100644
index 00000000000..1d1cc2ac506
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/gui-lang.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/gui-scheme.png b/Master/tlpkg/doc/articles/cstug08/gui-scheme.png
new file mode 100644
index 00000000000..007f2910792
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/gui-scheme.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/gui-systems.png b/Master/tlpkg/doc/articles/cstug08/gui-systems.png
new file mode 100644
index 00000000000..24bfaada82c
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/gui-systems.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/install-directory.png b/Master/tlpkg/doc/articles/cstug08/install-directory.png
new file mode 100644
index 00000000000..06a1349b3c6
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/install-directory.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/install-options.png b/Master/tlpkg/doc/articles/cstug08/install-options.png
new file mode 100644
index 00000000000..becc47b1f79
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/install-options.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/install08text-crop.pdf b/Master/tlpkg/doc/articles/cstug08/install08text-crop.pdf
new file mode 100644
index 00000000000..e6044fcd435
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/install08text-crop.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/psview.png b/Master/tlpkg/doc/articles/cstug08/psview.png
new file mode 100644
index 00000000000..8322bdda693
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/psview.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/rahtz.png b/Master/tlpkg/doc/articles/cstug08/rahtz.png
new file mode 100644
index 00000000000..78c067e704e
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/rahtz.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/start_impressive.sh b/Master/tlpkg/doc/articles/cstug08/start_impressive.sh
new file mode 100644
index 00000000000..ee8775bee15
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/start_impressive.sh
@@ -0,0 +1,4 @@
+
+
+impressive -A 16:9 -c memory -d 1h20 cstug08.pdf
+
diff --git a/Master/tlpkg/doc/articles/cstug08/talk-bacho08.tex b/Master/tlpkg/doc/articles/cstug08/talk-bacho08.tex
new file mode 100644
index 00000000000..8ff80e1e270
--- /dev/null
+++ b/Master/tlpkg/doc/articles/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/articles/cstug08/talk-guit2008.tex b/Master/tlpkg/doc/articles/cstug08/talk-guit2008.tex
new file mode 100644
index 00000000000..b3e95a7ae52
--- /dev/null
+++ b/Master/tlpkg/doc/articles/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/articles/cstug08/texcollection2008-large.png b/Master/tlpkg/doc/articles/cstug08/texcollection2008-large.png
new file mode 100644
index 00000000000..101aa1fb8bd
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/texcollection2008-large.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/texlive2008-logo-2.png b/Master/tlpkg/doc/articles/cstug08/texlive2008-logo-2.png
new file mode 100644
index 00000000000..6e0cfddaebd
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/texlive2008-logo-2.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/tlmgrgui-update.png b/Master/tlpkg/doc/articles/cstug08/tlmgrgui-update.png
new file mode 100644
index 00000000000..cc15c5cb218
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/tlmgrgui-update.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/update-tlmgr-finish.png b/Master/tlpkg/doc/articles/cstug08/update-tlmgr-finish.png
new file mode 100644
index 00000000000..b0f69621ba7
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/update-tlmgr-finish.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/cstug08/update-tlmgr-w32.png b/Master/tlpkg/doc/articles/cstug08/update-tlmgr-w32.png
new file mode 100644
index 00000000000..c12a509f99f
--- /dev/null
+++ b/Master/tlpkg/doc/articles/cstug08/update-tlmgr-w32.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit07/tlinfra-guit07.pdf b/Master/tlpkg/doc/articles/guit07/tlinfra-guit07.pdf
new file mode 100644
index 00000000000..8cc595be9ce
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit07/tlinfra-guit07.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit07/tlinfra-guit07.tex b/Master/tlpkg/doc/articles/guit07/tlinfra-guit07.tex
new file mode 100644
index 00000000000..f613f60b388
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit07/tlinfra-guit07.tex
@@ -0,0 +1,595 @@
+%
+% TeX Live's new infrastructure
+% Norbert Preining
+% Article presented on the 4th GuITmeeting, Pisa 13 October 2007
+%
+% Copyright 2007 Norbert Preining
+% You can redistribute and/or modify this document under the terms of the
+% GNU General Public License as published by the Free Software Foundation;
+% either version 2 of the License, or (at your option) any later version.
+%
+\documentclass{arstexnica}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{fancyvrb}
+\usepackage{url}
+\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}
+
+%\catcode`>=\active
+%\def>#1<{\texttt{#1}}
+\DefineShortVerb{\|}
+\begin{document}
+\begin{article}
+%\selectlanguage{italian}%
+
+\title{\tl's new infrastructure\thanks{%
+ Article presented on the 4th GuITmeeting, Pisa 13 October 2007}}
+
+\author{Norbert Preining}
+\address{Vienna University of Technology\\
+ Wiedner Hauptstr.\ 10\\
+ 1040 Wien, Austria}
+\netaddress{preining@logic.at}
+
+\maketitle
+
+
+\begin{abstract}
+Since the release of \tl~2007 a new infrastructure for \tl\
+distribution and management has been developed. This article presents the
+reasons for this switch, the ideas behind the new infrastructure,
+software developed, and ways to incorporate this new
+infrastructure. We will close with a look at what new features
+this new infrastructure could bring to the \TeX\ (Live) world.
+\end{abstract}
+
+%
+% does not work in normal arstexnika mode, needs standalone, I leave
+% this up to the editors
+%\tableofcontents
+
+\section{Introduction}
+\label{sec:intro}
+
+\tl\ is an easy way to get up and running with \TeX. It provides a
+comprehensive \TeX\ system with binaries for most flavors of Unix,
+including GNU/Linux, and also Windows. It includes all the major
+\TeX-related programs, macro packages, and fonts that are free
+software, including support for many languages around the world.
+
+Since 1996 it tries to bring to all \TeX-users as much material
+from \ctan\ as possible, packaged for `consumption', i.e., for using it
+as a live system from DVD, or installing it on a variety of operating
+systems/architecture combinations.
+
+These two requirements, incorporating as much as possible from \ctan,
+and providing binaries for a wide range of OS/arch combinations, has led
+to a huge number of supporting scripts, in a wide variety of programming
+languages (Perl, shell, XML, C, \ldots). These scripts were (and are)
+used to generate installation media, check consistency, update
+important files (e.g., for the installer), incorporating packages from
+\ctan, just to name a few. There have been many contributors; Sebastian
+Rahtz, Fabrice Popineau, and Karl Berry are the principal authors.
+
+As always with overload volunteers working on big projects, not much
+was documented, programming was done by trial and error (see for
+example the packaging scripts of Debian, one of my own more horrible
+creations). This wouldn't have been reason enough to change things
+this deep in the intestines of \tl, but other illusions and dreams
+have driven us to rebuild from the ground up.
+
+\section{A world full of TPMs}
+\label{sec:tpm}
+
+Up to \tl~2007 everything in \tl\ was organized in \tpms, an
+acronym for `\TeX\ Package Manage[r/ment]'. One \tpm\ described more
+or less one package from \ctan, containing the list of included
+files, title, description, license information, sometimes version
+numbers, additional information necessary for incorporation
+(activation of map files, hyphenation patterns, and formats).
+
+Maintenance of these \tpms\ was mostly done by a Perl module |Tpm.pm|
+written by Fabrice Popineau, and the accompanying mystical program
+|tpm-factory.pl|, a script so full of possibilities that nobody
+besides Fabrice probably ever understood everything that could be done with
+it. Some of the jobs of this |tpm-factory.pl| were
+\begin{itemize}
+\item regeneration of the \tpms, this included some magic in finding
+ the right files
+\item creation of a new \tpm\ for a newly installed package from \ctan
+\item checking the coverage, i.e., checking that every file present in
+ the repository is actually contained in a \tpm.
+\item duplication and dependency checks
+\end{itemize}
+
+Alas, there have been some problems with all the \tpm-business:
+\begin{itemize}
+\item they contained a mixture of generated (file lists) and static
+ information (actions to be carried out);
+\item they were full of duplicate information: version, license,
+ descriptions were taken now and then from the \TeX\ Catalogue, but
+ were typically horribly out of date or otherwise wrong;
+\item we had to generate so-called `lists' files (line-oriented plain
+ text file lists) from the \tpms\ for the installer
+ because the XML syntax of the \tpms\ is not practical to parse from a simple
+ shell script.
+\end{itemize}
+
+\section{Aims of the new infrastructure}
+\label{sec:aims}
+
+So around mid-2006 discussion of a new infrastructure started, but
+unfortunately, due to the usual time constraints of all involved,
+without much concrete outcome except many emails. At least a preliminary
+catalogue of items to be improved sprang into existence:
+
+
+\paragraph{Separation of static from generated content}
+
+As already mentioned, the \tpms\ contained a wild mixture of stuff from
+various sources (the file itself, the \TeX\ Catalogue, the
+repository). The new infrastructure should have some kind of `source'
+files where {\em only} the necessary information is stored, and all other
+content is added at generation time (of whatever). Naturally that
+could have been done on top of the \tpms, too, but starting from
+scratch seemed to be a better option.
+
+\paragraph{Getting rid of lists files}
+
+Using the \tpms\ and some XSLT processing, the lists files were generated
+before release. These lists files (one for each package, about 2000 in all)
+must be read by the installer from the DVD, which caused a lot of
+headache and slow installations.
+%Furthermore, these list files often were forgotten, thus out of date.
+%(during development, but not at the end! i hope :) --karl)
+
+The sole reason for the existence of these lists files was the fact
+that the installer, written in shell, couldn't parse the XML \tpms,
+since XML parsing programs cannot be assumed to be present at all
+installations. The new infrastructure should be based on some format
+that is easily parseable using stuff normally already present, or at
+least necessary for \tl\ anyway.
+
+\paragraph{Single package updates via the web}
+
+Some \TeX\ distributions, notably MiKTeX, already support single package
+updates over the Internet.
+\tl, as big and nice as it is, still lacks this lovely feature. Of course
+it was put high on the priority list to allow for single package
+updates.
+
+\paragraph{Better documentation}
+
+Last, but not least, we hoped that by rewritting the infrastructure
+and documenting it on the way we could provide a more stable foundation
+for more development and improvement, thus attracting more
+contributors. Furthermore, since te\TeX\ development has been stopped,
+\tl\ is taking the place as the \TeX\ system of choice in many
+GNU/Linux and other free distributions, and better documentation would
+only help providing those distributions with some aid for the migration.
+
+\section{New infrastructure -- the basics}
+\label{sec:basics}
+
+There are three type of files: \tlpsrc, \tlpobj, \tlpdb. The
+format of these files are very similar to Debian's Package files: a
+simple list of
+\begin{center}
+ |key value|
+\end{center}
+(without leading spaces). Empty lines at the beginning and end of a
+\tlpsrc\ or \tlpobj\ file are ignored. Also lines starting with \#\ are
+ignored (to allow for comments). Some special cases apply for \tlpobj\
+files and the \tlpdb\ file, see below.
+
+\subsection{\tlpsrc\ file format}
+\label{sec:tlpsrc}
+
+The possible keys and their respective interpretation for the \tlpsrc\
+files are:
+\begin{description}
+\item[name] identifies the package, |value| must consist only of
+ \verb+[-_a-zA-Z0-9]+.
+
+\item[category]
+ identifies the category into which this package belongs. Possible
+ categories are |Collection|, |Scheme|, |TLCore|, |Documentation|,
+ |Package|. There are no particular checks as to whether a
+ |tlpsrc| file called |collection-something| actually belongs to the
+ category |Collection|. Most packages will fall into the |Package|
+ category. These categories were inherited from the \tpm\ world and
+ may be modified at some point; for now, they suffice.
+
+\item[catalogue]
+ identifies the name under which this package can be found in the \TeX\
+ Catalogue. If not present the name of the packages is taken as the
+ Catalogue entry.
+
+\item[shortdesc]
+ gives a one line description of the package. Susequent entries will
+ overwrite the former ones. In \tl\ only used for collections and
+ schemes.
+
+\item[longdesc]
+ gives a long description of the package. Susequent entries are added
+ up to a long text. In \tl\ only used for collections and
+ schemes.
+
+\item[depend]
+ gives the list of dependencies of the package in the form
+ \begin{center}
+ |Category/Name|
+ \end{center}
+ for |value|. All the depend lines contribute to the dependencies of
+ the package.
+
+\item[execute]
+ gives a free form entry of install time jobs to be
+ executed. Currently the following values are understood by
+ the installers:
+ \begin{itemize}
+ \item |execute addMap font.map|\\
+ enables the font map file |font.map| in the |updmap.cfg| file.
+ \item |execute addMixedMap font.map|\\
+ enables the font map file |font.map| for Mixed mode in the
+ |updmap.cfg| file. By the way,
+ the purpose of MixedMap is to help users with printers that render
+ the Type~1 versions of the fonts worse than the (mode-tuned)
+ bitmap-based Type~3 fonts. The entries from MixedMap are not
+ added to psfonts\_pk.map; that's the only difference. It's used for
+ fonts which have both Metafont and (typically) autotraced Type~1
+ instantations.
+
+ \item |execute BuildLanguageDat NN|\\
+ activates all the hyphenation patterns found in
+ \path{Master/texmf/tex/generic/config/language.NN.dat} in the
+ generated |language.dat| file.
+ \item |execute BuildFormat FMTCFG|\\
+ activates all the formats present in
+ \path{Master/texmf/fmtutil/format.FMTCFG.cnf}
+ in the generated |fmtutil.cnf| file.
+ \end{itemize}
+
+{
+\UndefineShortVerb{\|}
+\item[(src|run|doc|bin)pattern pattern]
+ adds a pattern (see below) to the respective list of patterns.
+}
+
+\end{description}
+
+\subsubsection{Patterns}
+\label{sec:patterns}
+
+To automatically generate the file lists in \tlpobjs\ a specific
+pattern language was developed. Patterns can include or exclude files
+or whole sub-directories into the file list of a \tlpobj. Patterns are
+of the form
+\begin{center}
+ |[PREFIX]TYPE PAT|
+\end{center}
+where |PREFIX| can be |+|, |!+|, or |!|, and |TYPE| one of the letters
+|t|, |f|, |d|, |r|. An initial |+| for the pattern indicates that the
+automatically generated pattern should not be cleared (see below),
+while the |!| indicates that the matching files should be excluded.
+
+The meaning of the various pattern types is
+\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!).
+\item[d path]
+ includes all the files in and below the directory specified as
+ |path|.
+\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}
+ i.e., all words but the last form the prefix of the path, then
+ there can be an arbitrary nesting of directories, followed by
+ |wordL| as another directory.
+\item[r regexp]
+ includes all files matching the Perl regexp \verb+/^regexp$/+
+\end{description}
+
+
+\subsubsection{Autogenerated patterns}
+\label{sec:autogenpat}
+
+In the case that one of the pattern sections is empty or \emph{all}
+the provided patterns have the prefix |+| (e.g., |+f ...|), then the
+following patterns are \emph{automatically} added at expansion time
+(but never written to the textual representation):
+
+\begin{itemize}
+\item for runpatterns of category |Package|
+ \begin{center}
+ |t texmf-dist topdir name|
+ \end{center}
+ where |topdir| is one of: bibtex, context, dvips, fonts, makeindex,
+ metafont, metapost, mft, omega, scripts, tex, vtex. |name| refers to
+ the name of the package as given by the |name| directive.
+
+ For other categories \emph{no} patterns are automatically added to
+ the list of runpatterns.
+\item for docpattern of category |Package|
+ \begin{center}
+ |t texmf-dist doc name|
+ \end{center}
+ and for docpattern of category |Documentation|
+ \begin{center}
+ |t texmf-doc doc name|
+ \end{center}
+\item for srcpattern of category |Package|
+ \begin{center}
+ |t texmf-dist source name|
+ \end{center}
+ and for srcpattern of category |Documentation|
+ \begin{center}
+ |t texmf-doc source name|
+ \end{center}
+\end{itemize}
+|binpatterns| are never automatically added.
+
+In addition some magic tricks have been added to make writing of
+|binpatterns| easier:
+\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 for win32]
+ For |binpatterns| of the form |f bin/win32/foobar| (i.e., also for a
+ binpattern of the form \verb+f bin/${ARCH}/foobar+) files
+ |foobar.bat|, |foobar.dll|, and |foobar.exe| are also matched.
+\end{description}
+The above two properties allows to capture the binaries for all
+architectures in one binpattern:
+\begin{center}
+ \verb+binpattern f bin/${ARCH}/dvips+
+\end{center}
+will include |bin/win32/dvips.exe| in the runfiles when arch=win32.
+
+Note that the bat/exe expansion \emph{only} works for patterns of the
+|f|-type.
+
+\subsection{\tlpobj\ file format}
+\label{sec:tlpobj}
+
+These files are structurally similar to \tlpsrc\ files; the
+only difference is that the |*pattern| keys are not allowed, their
+place being taken by |*files| keys having a peculiar syntax (see
+below). Furthermore, an additional key |revision| and all keys
+matching |catalogue-*| are allowed.
+The |catalogue-*| keys specify information simply copied from the \TeX\
+Catalogue. We'll discuss the others below.
+
+\subsubsection{The \texttt{revision} entry}
+
+The |revision| key is {\em not} related to the package's version as
+specified by the author. Those versions are far too random, hard to
+extract, and sometimes not even present, to be a reliable basis for a
+packaging system. Instead, we look at all the package's files in the
+\tl\ source repository, which is currently Subversion, and use the
+maximum version number found there. Since Subversion uses simple
+integers for version numbers, this is simple to use in programs, and
+just as important, this whole process of finding the version number can
+be reliably automated.
+
+\subsubsection{The \texttt{*files} entries}
+\label{sec:keyfiles}
+
+While the |tlpsrc| files specify the files to be included using the
+patterns, the |tlpobj| files contain the already expanded file list.
+All the `files' keys have in common that they are followed by a list of
+files (and possibly additional tags) indented by exactly one (1) space. They
+differ only in the first line itself (described below).
+
+
+
+\begin{description}
+\item[srcfiles, runfiles] each of these lines is (or better should be)
+ tagged with |size=NNNN| where |NNNN| is the sum of sizes of the single
+ files (currently in bytes), e.g.,
+ \begin{center}
+ |srcfiles size=NNNNNN|
+ \end{center}
+\item[docfiles] The docfiles line itself is similar to the |srcfiles|
+ and |runfiles| lines above:
+ \begin{center}
+ |docfiles size=NNNNNN|
+ \end{center}
+ But the lines listing the files are allowed to have additional tags
+ |details| and |language|:
+ \begin{center}
+ |file detail="foo bar" language="en"|
+ \end{center}
+ For an example see listing~\ref{achemso}. The reason to add these
+ tags is the hope that someone will write a nice replacement for
+ \path{texdoctk}. Note that these tags' source is the \TeX\ Catalogue,
+ and are in no way obligatory.
+\item[binfiles] Since |binfiles| are different for the different
+ architectures, one \tlpobj\ file can contain |binfiles| lines for
+ different architectures. The architecture is specified on the
+ |binfiles| lines using the |arch=XXX| tag. Thus, |binfiles| lines look like
+ \begin{center}
+ |binfiles arch=XXXX size=NNNNN|
+ \end{center}
+ A more complete example taken from |bin-dvipsk.tlpobj| can be seen
+ in listing~\ref{dvipsk}.
+\end{description}
+
+\begin{lstlisting}[caption={Excerpt from achemso.tlpobj},label=achemso]
+...
+docfiles size=135842
+ texmf-dist/doc/latex/achemso/README details="Package Readme" language="de"
+ texmf-dist/doc/latex/achemso/achemso.pdf details="Package documentation" language="de"
+ ...
+\end{lstlisting}
+
+\begin{lstlisting}[caption={Excerpt from bin-dvipsk.tlpobj},label=dvipsk]
+name bin-dvipsk
+category TLCore
+revision 4427
+docfiles size=959434
+ texmf/doc/dvips/dvips.html
+ ...
+runfiles size=1702468
+ texmf/dvips/base/color.pro
+ ...
+ texmf/scripts/pkfix/pkfix.pl
+binfiles arch=i386-solaris size=329700
+ bin/i386-solaris/afm2tfm
+ bin/i386-solaris/dvips
+ bin/i386-solaris/pkfix
+binfiles arch=win32 size=161280
+ bin/win32/afm2tfm.exe
+ bin/win32/dvips.exe
+ bin/win32/pkfix.exe
+...
+\end{lstlisting}
+
+\subsection{\tlpdb\ file format}
+\label{sec:tlpdb}
+
+A \tlpdb\ file will describe the status of an installation, that is it
+will contain all the installed packages' \tlpobj\ files. Thus,
+the format of a \tlpdb\ file is quite simple. It is the concatenation
+of \tlpobjs\ with (at least) one empty line between different
+\tlpobjs.
+
+
+\section{Programming APIs}
+
+Wrapping these file formats into a programming API represents
+the actual work of realizing the new infrastructure. On the way we had
+to create not only modules for accessing the content of the above
+files in some object-oriented way, we also created some additional
+modules for interfacing to the Subversion repository and the \TeX\
+Catalogue.
+
+Currently, the following modules are available in the \tl\ subversion
+repository:
+\begin{description}
+\item[TeXLive::TLTREE] an object that exhibits the properties of the
+ subversion repository in some structured form. In principle it is
+ the scooping up of |svn status -v| output with post-processing
+ for easier and faster searches.
+\item[TeXLive::TeXCatalogue] a very simple interface to the \TeX\
+ Catalogue, barely providing minimal information. Will be used for
+ enriching the final database.
+\item[TeXLive::TLPSRC] provides access to \tlpsrc\ files, basic
+ functionality like reading in, writing out, and member access
+ functions. In addition, it allows to generate, or expand, a |TLPSRC|
+ object to a |TLPOBJ| object using an instance of |TLTREE|. That is,
+ it takes the patterns specified in the \tlpsrc, and tries to find
+ all files matching these patterns. After this it recomputes the size
+ and returns a |TLPOBJ| object.
+\item[TeXLive::TLPOBJ] provides access to \tlpobj\ files, and entries
+ stored in a a |TLPDB| object. As with the \tlpsrc, basic
+ functionalities are exported, and also a function to create a zip
+ file for the |TLPOBJ| (which later should be used for web updates or
+ building the `inst' CD),
+ and together with an instance of a |TeXCatalogue| object some
+ information can be transferred from the \TeX\ Catalogue to the
+ |TLPOBJ| object.
+\item[TeXLive::TLPDB] provides access to the \tl\ database. These
+ files will serve the central purpose of describing the current
+ status of various media, like an installation on a user computer, or
+ the distribution. Comparing these status descriptions, update
+ programs can deduce what packages should be updated.
+\item[TeXLive::TLPUtils] exports some handy functions used in all the
+ other modules.
+\end{description}
+
+The full API documentation is provided in |pod| format within the perl
+modules. A Perl API document
+is available in the \tl\ subversion repository, too.
+
+In addition to the Perl API a start at a shell (sh, bash, etc.)\ API and
+implementation has been created, but it presently lacks several key features,
+and is not up to date. Jim Hef{}feron has contributed a start at a Python API.
+However, we assume that on all computers Perl will be
+available or will be installed during installation.
+
+\section{Integration into current \tl\ development}
+
+Around these modules several day-in-day-out tasks of the \tl\
+developers have been rewritten using the new infrastructure, the most
+important one being the script |ctan2tl|. This is the script responsible for
+transferring a package from \ctan\ into the right places in
+the \tl\ repository, and preparing it for users.
+
+Other things already converted are automatic update of the
+|texlive.tlpdb|, the file containing the |TLPDB|.
+
+On the other hand not everything has been done, the biggest piece for
+sure is the rewrite of the installer. The old installer, relying on
+the lists files we wanted to get rid of, is still the only one we
+have. Furtunately we can generate lists files from the
+|texlive.tlpdb|, but in the not-so-long run, meaning hopefully for
+\tl~2008, we want to have a new installer.
+
+Other things still missing are coverage and duplication checks, but
+those are quite easy to do using the Unix command world (|grep|,
+|sort|, and |uniq| being the magic incantations).
+
+\section{Closing}
+\label{sec:closing}
+
+Although we are quite confident that the new infrastructure will work
+well, only the reality of the next release will prove us right or
+wrong. Many of the key features of the new infrastructure have been
+designed with the \tpm-system in mind, and some `features' carried
+over will probably proven superfluous. Nothing with the current
+infrastructure is written in stone, and we are open for proposals and
+improvements, keeping in mind that releasing \tl\ should not be made
+more difficult.
+
+That said, we invite contributors and everyone interested to contact
+us at \url{tex-live@tug.org}, or take a look at the following
+resources:
+\begin{itemize}
+\item \path{http://www.tug.org/texlive} -- the main entry point, with
+ links to developers' resources, documentation
+\item \path{http://www.tug.org/svn/texlive/trunk/} -- web view onto the
+ subversion repository;
+\item \path{svn://tug.org/texlive/trunk} -- svn repository, anonymous
+ access, take care when you checking out the repository, it needs
+ several Gigabyte of disk space;
+\item \path{http://www.tug.org/texlive/pkgupdate.html} -- an
+ explanation how updates from \ctan\ to \tl\ are done.
+\end{itemize}
+
+Finally, I want to thank all the contributors to \tl, there are too
+many to mention. In the course of developing this infrastructure the
+discussions with Karl Berry, Pawe\l{} Jackowski, Reinhard Kotucha,
+Siep Kroonenberg, and Jerzy B. Ludwichowski were very helpful.
+
+%\bibliographystyle{arstexnica}
+%\bibliography{atsample}
+
+\end{article}
+
+\end{document}
+
+
diff --git a/Master/tlpkg/doc/articles/guit08/Makefile b/Master/tlpkg/doc/articles/guit08/Makefile
new file mode 100644
index 00000000000..d6fb4a7ab7c
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/Makefile
@@ -0,0 +1,61 @@
+
+PNGS=gui-collections.png \
+ gui-installer.png \
+ gui-lang.png \
+ gui-scheme.png \
+ gui-systems.png \
+ tlmgrgui-arch.png \
+ tlmgrgui-install.png \
+ tlmgrgui-options.png \
+ tlmgrgui-remove.png \
+ tlmgrgui-update.png \
+ psview.png
+
+TEXSRC=tlmgr-article.tex \
+ install08text-crop.pdf \
+ $(PNGS)
+
+TEXSRCDTK=tlmgr-dtk.tex \
+ tlmgr-dtk.ltx \
+ install08text-crop.pdf \
+ $(PNGS)
+
+first: tlmgr-article.pdf
+
+tlmgr-dtk.pdf: $(TEXSRCDTK) tlmgr-dtk.bbl
+ pdflatex tlmgr-dtk.ltx
+ pdflatex tlmgr-dtk.ltx
+ pdflatex tlmgr-dtk.ltx
+
+tlmgr-article.pdf: $(TEXSRC) tlmgr-article.bbl
+ pdflatex tlmgr-article
+ pdflatex tlmgr-article
+ pdflatex tlmgr-article
+
+
+tlmgr-article.bbl: tlmgr-article.aux tlmgr-article.bib
+ bibtex tlmgr-article
+
+tlmgr-dtk.bbl: tlmgr-dtk.aux tlmgr-article.bib
+ bibtex tlmgr-dtk
+
+tlmgr-article.aux: $(TEXSRC)
+ pdflatex tlmgr-article
+
+tlmgr-dtk.aux: $(TEXSRCDTK)
+ pdflatex tlmgr-dtk.ltx
+
+install08text-crop.pdf: install08text.pdf
+ pdfcrop install08text.pdf
+
+install08text.pdf: install08text.tex
+ pdflatex install08text
+
+clean:
+ rm -f install08text-crop.pdf *~ *.{aux,log,bbl,blg,out}
+ rm -f install08text.pdf
+
+veryclean: clean
+ rm -f *.pdf
+
+
diff --git a/Master/tlpkg/doc/articles/guit08/dviout.png b/Master/tlpkg/doc/articles/guit08/dviout.png
new file mode 100644
index 00000000000..83c2cd3ff88
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/dviout.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-collections.png b/Master/tlpkg/doc/articles/guit08/gui-collections.png
new file mode 100644
index 00000000000..c542adddefc
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-collections.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-installer-de.png b/Master/tlpkg/doc/articles/guit08/gui-installer-de.png
new file mode 100644
index 00000000000..59df9684938
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-installer-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-installer.png b/Master/tlpkg/doc/articles/guit08/gui-installer.png
new file mode 100644
index 00000000000..81bfa5a3ad5
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-installer.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-lang.png b/Master/tlpkg/doc/articles/guit08/gui-lang.png
new file mode 100644
index 00000000000..1d1cc2ac506
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-lang.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-progress.png b/Master/tlpkg/doc/articles/guit08/gui-progress.png
new file mode 100644
index 00000000000..a287afef3a6
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-progress.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-scheme.png b/Master/tlpkg/doc/articles/guit08/gui-scheme.png
new file mode 100644
index 00000000000..007f2910792
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-scheme.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/gui-systems.png b/Master/tlpkg/doc/articles/guit08/gui-systems.png
new file mode 100644
index 00000000000..24bfaada82c
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/gui-systems.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/install08text.tex b/Master/tlpkg/doc/articles/guit08/install08text.tex
new file mode 100644
index 00000000000..56aa4f5c3a2
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/install08text.tex
@@ -0,0 +1,57 @@
+\documentclass{article}
+\pagestyle{empty}
+\parindent 0pt
+\begin{document}
+\tiny
+\begin{verbatim}
+=================> TeX Live installation procedure <================
+
+==> Note: Letters/digits in <angle brackets> indicate menu items <==
+==> for commands or configurable options <==
+
+ Proposed platform: Intel x86_64 with GNU/Linux
+
+ <B> binary systems: 1 out of 15
+
+ <S> Installation scheme (scheme-full)
+
+ Customizing installation scheme:
+ <C> standard collections
+ <L> language collections
+ 83 collections out of 84, disk space required: 1426 MB
+
+ <D> directories:
+ TEXDIR (the main TeX directory):
+ /usr/local/texlive/2008
+ TEXMFLOCAL (directory for site-wide local files):
+ /usr/local/texlive/texmf-local
+ TEXMFSYSVAR (directory for variable and automatically generated data):
+ /usr/local/texlive/2008/texmf-var
+ TEXMFSYSCONFIG (directory for local config):
+ /usr/local/texlive/2008/texmf-config
+ TEXMFHOME (directory for user-specific files):
+ ~/texmf
+
+ <O> options:
+ [ ] use letter size instead of A4 by default
+ [X] create all format files
+ [X] install macro/font doc tree
+ [X] install macro/font source tree
+ [ ] create symlinks in standard directories
+
+ <V> set up for running from DVD
+
+Other options:
+====================================================================
+ <I> start installation to hard disk
+ <H> help
+ <Q> quit
+
+Enter command:
+\end{verbatim}
+\end{document}
+
+latex install08text.tex
+dvips -E install08text.dvi
+epstopdf install08text.ps
+
diff --git a/Master/tlpkg/doc/articles/guit08/psview.png b/Master/tlpkg/doc/articles/guit08/psview.png
new file mode 100644
index 00000000000..8322bdda693
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/psview.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgr-article.bib b/Master/tlpkg/doc/articles/guit08/tlmgr-article.bib
new file mode 100644
index 00000000000..6326853c6dd
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgr-article.bib
@@ -0,0 +1,27 @@
+@InProceedings{inst:package,
+ author = {Reinhard Kotucha and Siep Kroonenberg and Norbert Preining},
+ title = {A new Installer for {\TeX} Live},
+ booktitle = {Proceedings of the BachoTeX~2008},
+ year = 2008,
+ month = {April},
+ publisher = {GUST}}
+
+@Article{at:2007-4-069-preining,
+ author = {Norbert Preining},
+ title = {{\TeX\ Live's} new infrastructure},
+ journal = {Ars\TeX nica},
+ year = 2007,
+ number = 4,
+ pages = {69-73},
+ month = {Ottobre},
+ language= {italian},
+ issn= {1828-2350},
+ url= {http://www.guit.sssup.it/arstexnica.php}
+}
+
+
+@Misc{tlmgr-manpage,
+ key = {tlmgr},
+ title = {Online Version der tlmgr Dokumentation},
+ howpublished = {\url{http://www.tug.org/texlive/doc/tlmgr.html}}}
+
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgr-article.pdf b/Master/tlpkg/doc/articles/guit08/tlmgr-article.pdf
new file mode 100644
index 00000000000..684f62271bc
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgr-article.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgr-article.tex b/Master/tlpkg/doc/articles/guit08/tlmgr-article.tex
new file mode 100644
index 00000000000..25546bf5e92
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgr-article.tex
@@ -0,0 +1,921 @@
+%
+% Norbert Preining
+% Article presented on the 5th GuITmeeting, Pisa 18 October 2008
+%
+% Copyright 2008 Norbert Preining
+% You can redistribute and/or modify this document under the terms of the
+% GNU General Public License as published by the Free Software Foundation;
+% either version 2 of the License, or (at your option) any later version.
+%
+\documentclass{arstexnica}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{fancyvrb}
+\usepackage{url}
+\usepackage{natbib}
+\usepackage{marvosym}
+\usepackage{listings}
+\lstset{frame=lines,basicstyle=\small\ttfamily,prebreak={\Righttorque},
+ postbreak={\Lefttorque},columns=flexible}%,breaklines}
+\newcommand{\tl}{\TeX~Live}
+\newcommand{\tlmgr}{\TeX~Live Manager}
+
+\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{\pl}{Perl}
+\newcommand{\gs}{Ghostscript}
+\newcommand{\tlu}{\texttt{texlua}}
+\newcommand{\kpse}{Kpathsea}
+\newcommand{\XeTeX}{Xe\TeX}
+\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}}
+
+\hyphenation{infra-struc-ture}
+
+%\catcode`>=\active
+%\def>#1<{\texttt{#1}}
+\DefineShortVerb{\|}
+\begin{document}
+\begin{article}
+%\selectlanguage{italian}%
+
+\title{\tl~2008 and the \TeX\ Live Manager%
+ \thanks{Originally presented at the \GuIT\ Conference 2008 in Pisa, and
+ published in Ars\TeX nica, issue~6}}
+
+\author{Norbert Preining}
+\address{Vienna University of Technology\\
+ %Wiedner Hauptstr.\ 10\\
+ %1040 Wien, Austria
+}
+\netaddress{preining@logic.at}
+
+\maketitle
+
+
+\begin{abstract}
+\tl~2008 has been released recently, and the \acro{DVD}s are ready to
+go gold. This is the first release of \tl\ shipping the \tlmgr, tlmgr
+for short.
+
+Besides taking over some of the tasks from texconfig (which has never been
+available for Windows) it finally brings many new features
+to the \tl\ world, most importantly the option for dynamic updates.
+
+This article will present the new \tl\ Installer, the \tlmgr, and
+at the end lists other changes in \tl~2008.
+\end{abstract}
+
+\tableofcontents
+
+\section*{Important note}
+
+This article describes the status of the \tlmgr\ as it will be shipped
+around October~2008, and not the one on \acro{DVD}. The
+version on the \acro{DVD} works fine for local configuration
+tasks (which is why we felt it could be shipped), but is not
+sufficiently robust for reliable updates over the Internet. Users'
+first update will be to get the new tlmgr.
+
+\section{Introduction}
+\label{sec:intro}
+
+After more than one year of development work \tl~2008 has been
+released with a complete new infrastructure \citep{at:2007-4-069-preining}.
+At first these infrastructure changes were only relevant for the
+developers themselves, since it made life (a bit) easier and the
+system more consistent due to the elimination of duplicated
+information.
+
+As a first user-visible change came the unification of the installer,
+so that all supported platforms now share the same
+installer. Furthermore, this installer has gotten a \acro{GUI} which
+also is uniform across all platforms. On Unix systems the only
+prerequsites are a Perl installation, and for the \acro{GUI} the
+installation of Perl/Tk. On Windows we ship a minimal Perl with
+the necessary modules.
+
+The first part of this article will give an overview of the new
+installer.
+
+The second user-visible change came from the addition of the \tlmgr,
+or tlmgr for short, to the list of programs. It manages an existing \tl\
+installation, both packages and options. Besides performing many of
+the same actions as |texconfig| it has the ability to install
+additional packages, update and remove existing ones, make backups,
+search within and list all packages.
+
+\section{The new installer}
+\label{sec:installer}
+
+The creation of a new \tl\ installer was necessitated by the new
+package infrastructure \citep{at:2007-4-069-preining}. From a user's
+point of view the new installer has only one visual change, but there
+other significant changes. In particular:
+\begin{itemize}
+\item It is possible to install \tl\ from the Internet.
+\item There is just one installer, which can run either in text
+ mode, emulating the former install-tl.sh shell script,
+ or in \acro{GUI} mode (more or less emulating the \tl\ 2007 tlpmgui).
+\item The Windows installation is much closer to using the same
+ implementation as Unix.
+\end{itemize}
+
+\subsection{Install \tl\ from the Internet}
+
+If you got (by the time you read this article) a \tl\ \acro{DVD} you
+can just start the installer as usual. On Windows this will be by
+default the \acro{GUI} installer (see below), on Unix the text mode
+installer.
+
+We also ship an installation package \citep{inst:package} containing
+all the necessary files for an installation over the network. By
+default, normal installation will use a \ctan\ mirror,
+selected using the |http://mirror.ctan.org| service. (See
+|http://tug.org/ctan.html#sites|.)
+
+Two installers for network downloads are provided.
+|install-tl-unx.tar.gz| supports Unix only. |install-tl.zip|
+additionally contains a small subset of Perl for Windows which is
+required to bootstrap the system. The latter works on all platforms
+supported by \tl. The sole reason for providing a separate package
+for Unix is its significantly smaller size.
+
+In any case you can override the source from which you want to install
+with the command line option |-location|.
+
+\subsection{The text mode installer}
+
+If you have used \tl\ in recent years you will see no big changes in
+the text mode installer (see fig.~\ref{fig:text_main_menu}); we tried
+to keep it as close as possible to the one used in former
+releases. One new option is at the bottom of the menu, namely
+\emph{set up for running from DVD}. This is what we call \emph{live}
+installation:
+it sets up a minimal writable environment on your computer, while all the input
+files and binaries remain on the \acro{DVD}.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{install08text-crop}}
+ \caption{Main menu of the text mode installer}
+ \label{fig:text_main_menu}
+\end{figure}
+
+\subsection{The GUI Installer}
+
+The \acro{GUI} installer has nearly the same functionality as the text
+version; the option to set up for live installation is the only missing
+piece. It is written in Perl/Tk and thus should run on all platforms (on
+Unix Perl/Tk has to be installed).
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{gui-installer.png}}
+ \caption{Main window of the \acro{GUI} installer}
+ \label{fig:gui_main_menu}
+\end{figure}
+
+The main window can be seen in fig.~\ref{fig:gui_main_menu}. It should
+remind you very much of the text mode installer. As with the text mode
+installer it allows you to change which binary systems should be
+installed (fig.~\ref{fig:gui_systems}), select the scheme to be
+installed (fig.~\ref{fig:gui_scheme}), where a \emph{scheme} is a
+pre-defined set of
+collections to be installed, and further specify in more detail which
+collections (a collection is a set of packages) and which language
+packages to
+install (fig.~\ref{fig:gui_coll} and~\ref{fig:gui_lang}). You
+can select the installation directories for \tl\ and toggle some
+options, all in line with the installer of recent years and the text
+mode installer.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.5\columnwidth}{!}{\includegraphics{gui-systems.png}}
+ \caption{Binary system select window}
+ \label{fig:gui_systems}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{gui-scheme.png}}
+ \caption{Scheme select window}
+ \label{fig:gui_scheme}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{gui-collections.png}}
+ \caption{Collections select window}
+ \label{fig:gui_coll}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{gui-lang.png}}
+ \caption{Language packs select window}
+ \label{fig:gui_lang}
+\end{figure}
+
+During installation the main window's status line will indicate what
+is going on currently, and at the same time the program will print out
+to the terminal the same output as the normal installer.
+
+For both the text mode installer and the \acro{GUI} mode installer, a
+log file with more details is
+created in the installation directory as |install-tl.log|. (If you
+report installation problems, please send us this log file.)
+
+\subsection{Bringing Windows in line with Unix}
+
+\tl\ 2008 supports Windows 2000 and later. By dropping older Windows
+versions, there is much less need to treat Windows specially.
+
+Under Windows 2000 and later, users have a real home directory,
+viz. \verb+%USERPROFILE%+, usually
+\verb+C:\Documents and Settings\+\textit{username}.
+
+This is now reflected in tilde expansion by \kpse:
+\verb+~/texmf+ is expanded to \verb+%USERPROFILE%\texmf+
+under Windows and to \verb+$HOME/texmf+ under Unix.
+
+It is also possible to differentiate between system settings and
+user settings. Happily, there is no longer any need to have a different
+set of \texttt{texmf} trees on Windows, or to leave out scripts such as
+\texttt{fmtutil-sys} and \texttt{updmap-sys}. We also
+have a single \texttt{texmf.cnf} used on all platforms.
+
+
+%
+%
+%
+\section{The \tlmgr}
+
+\tlmgr\ provides a wealth of options and commands; we will explain them
+all here, some tersely, some in more detail. Of course we expect to add
+more features in the future.
+
+\subsection{The \tl\ Database}
+
+First of all, it is important to understand where all the information about
+installed packages and other options are saved. This is the \tl\
+database, which normally can be found in \path{ROOT/tlpkg/texlive.tlpdb}
+(where |ROOT| is the destination folder you have choosen at
+installation time). It contains the list of all packages, all the
+files installed, and in addition to that collects configuration
+information like the default installation source, and the options you
+have set at installation time (e.g., whether you want A4 or letter-size
+paper by default).
+
+Most of tlmgr's actions will load the local database, and many
+actions will also load a remote database: If you want to install a
+package, the \tlmgr\ will load the database of the specified installation server
+and checks whether this package exists.
+
+Although we say \emph{remote}, it is not necessarily a remote
+network location. If you install from \acro{DVD} the default
+installation source will be the \acro{DVD}, and tlmgr will
+load the database located on the \acro{DVD} when needed.
+
+\subsection{General syntax of tlmgr}
+
+The general syntax of tlmgr is
+\begin{center}
+ \Verb+tlmgr [opt]... action [opt]... [arg]...+
+\end{center}
+The first set of options before the main |action| configure the general
+operation of tlmgr, while the second set of options are specific to
+the chosen |action|. We do not support mixing and reshuffling of all
+these options, partly for the sake of clarity, and also for programming
+reasons.
+
+The first set of options can contain
+\begin{itemize}
+\item |--location| \var{loc} specifies the location from which
+ packages should be installed or updated, overriding the location
+ found in the installation's \tl\ Package Database (\acro{TLPDB}).
+\item |--gui| starts the \acro{GUI} version of tlmgr.
+ The \acro{GUI} does not support all the bells
+ and whistles of the command-line program. It is in fact a separate
+ program that calls the command-line version to do the actual work.
+ The difference between this |--gui| option and the |gui| action (see
+ below) is that given the option,
+ tlmgr tries to open the \acro{GUI} directly at the screen
+ for the specified |action|.
+\item |--gui-lang| \var{ll} selects the language in which the \acro{GUI} will
+ appear. Normally the \acro{GUI} tries to deduce your language from
+ the environment (on Windows via the registry, on Unix via
+ |LC_MESSAGES|). If that fails you can select a different language by
+ giving this option a two-letter language code.
+\end{itemize}
+
+Furthermore, some standard options are supported: |--help| (also |-h|)
+for getting help, |-q| which supresses informational messages, and
+|-v| (verbose) for turning on debugging options. With |--version| the
+script will show you the version of your \tl\ system and of itself.
+
+\subsection{The actions}
+
+There is a (permanently growing) list of actions, currently: |help|, |version|,
+|gui|, |install|, |update|, |backup|, |restore|, |remove|, |option|,
+|paper|, |arch|, |search|, |show|, |list|, |check|, |uninstall|, |generate|.
+
+\paragraph{The general actions}
+
+\begin{itemize}
+\item |search [|\var{option}|...] |\var{what} Without any options, search in the list
+ of locally installed packages for package names or descriptions
+ matching |what|. If you give the option |--global| it also searches
+ the remote database. This might differ in case you have not
+ installed all of \tl, but only a part of it. Finally, if you specify
+ |--file| then files are searched, and not package names.
+\item |show |\var{pkg}|...| gives you more detailed information on the
+ listed packages. If all packages are installed locally, it does not
+ consult the remote database.
+\item \Verb+list [collections|schemes]+ With no argument, lists all
+ packages available at the default install location, prefixing those
+ already installed with "i ". With an argument lists only collections
+ or schemes, as requested.
+\item |uninstall| This action will ask for confirmation, and then remove
+ the entire installation. Don't do it or we will be sad. If you give
+ the |--force| option, it does not even ask, but proceeds
+ immediately with the removal.
+\item \Verb+check [files|collections|all]+ Executes one (or all)
+ check(s) on the consistency of the installation. For |files| it
+ checks that all files listed in the local database
+ are actually present, and lists those missing.%
+% \footnote{On Windows that will not work currently, since
+% Windows does not ship find. Also MacOS seems to ship a strange
+% find implementation that does not support -wholename, so that
+% will break, too.}
+ The option |--use-svn| will use the |svn| command to check for the
+ files.
+\item |gui| starts the \acro{GUI}, as explained above at |--gui|.
+\item |version| is the same as |--version|.
+\item |help| is the same as |--help|.
+\end{itemize}
+
+\paragraph{The configuration actions}
+\begin{itemize}
+\item |option [show]| Shows all configuration settings currently
+ saved in the local database. The |show| option is accepted and ignored.
+\item |option |\var{key} |[|\var{value}|]| Without the
+ \var{value}, shows the current value
+ of the configuration option \var{key}; with \var{value}, sets this
+ configuration option. Currently accepted |key|s are |location|
+ (default installation location), |formats| (create formats at
+ installation time), |docfiles| (install documentation files),
+ |srcfiles| (install source files). These are the options you have
+ set at installation time and will be honoured at \emph{later} install and
+ upgrade actions. For example, changing the |docfiles|
+ options from false to true will not install or remove the already
+ present documentation files. But a subsequent update will install or remove
+ them.
+\item |paper |\var{paper} Sets the default papersize; possible values
+ are |a4| and |letter|.
+\item \var{program} \Verb+paper [help|+\var{paper}|]|
+ This allows setting different paper sizes for the specified
+ \var{program}: |xdvi|, |dvips|, |pdftex|, |dvipdfm|,
+ |dvipdfmx|, |context|. Without any additional argument it reports the
+ currently selected papersize. With |help|, it issues all the
+ supported paper sizes for that program. And if you specify a paper size,
+ it will be set as default papersize for the given program.
+\item |generate |\var{what} This command generates one or more
+ configuration files, as follows:
+
+ Giving |language.dat| for \var{what}
+ generates the |language.dat| file which specifies the
+ hyphenation patterns to be loaded for \LaTeX-based formats.
+ Giving |language.def| for \var{what} generates the |language.def|
+ file which specifies hyphenation patterns to be loaded for
+ |etex|-based formats.
+ Specifying |language| for |what|
+ generates both of these files.
+
+ Giving |fmtutil| for \var{what} generates the |fmtutil.cnf| file which
+ contains the definitions of all formats available.
+
+ Giving |updmap| for \var{what} generates the |updmap.cfg| file which
+ lists all the installed font map files.
+
+ For |fmtutil| and the language files, recreating is normal and both the
+ installer and tlmgr routinely call that.
+
+ For |updmap|, however, neither the installer nor tlmgr use
+ |generate|, because the result would be to disable all maps which
+ have been manually installed via |updmap-sys --enable|, e.g., for
+ proprietary or local fonts. Only the changes in the |--localcfg|
+ file mentioned below are incorporated by |generate|.
+
+ On the other hand, if you only use the fonts and font packages
+ within \TeX\ Live, there is nothing wrong with using |generate updmap|.
+ Indeed, we use it to generate the |updmap.cfg| file that is
+ maintained in the live source repository.
+
+ If the files |language-local.dat|, |language-local.def|,
+ |fmtutil-local.cnf|, or |updmap-local.cfg| are present under
+ \path{TEXMFLOCAL} in the respective directories, their contents will
+ be simply merged into the final files, with no error checking of any
+ kind.
+\end{itemize}
+
+
+\paragraph{The package management actions}
+\begin{itemize}
+\item |install| \var{pkg}\ldots\ installs the packages given as argument.
+ By default, installing a package
+ also installs all of its dependencies.
+ The following options are supported: |--no-depends| will
+ not install dependent packages. There is also |--no-depends-at-all|
+ which in addition
+ disregards the tightly coupled packages architecture-specific
+ executables; for example,
+ |bin-bibtex| and |bin-bibtex.i386-linux|. That is something you
+ should never use unless you are sure you know what you are
+ doing. |--dry-run| fakes the installation without changing anything.
+\item |update| \var{pkg}\ldots\ updates the packages given as arguments.
+ In addition, if the \var{pkg} is a collection, and the remote server
+ has new packages in this collection, they will be installed,
+ following the dependencies specified in the collection. Options:
+ \begin{description}
+ \item |--list| Lists the packages which would be updated or newly
+ installed, but does not do the update. It also lists the revision
+ numbers of the local and the remote packages.
+ \item |--all| Update all out-of-date packages.
+ \item |--dry-run| Fake the updates without changing anything.
+ \item |--backupdir |\var{directory}
+ Save a snapshot of the current package (as installed) in \var{directory},
+ before the package is updated. This way one can easily recover
+ in case an update turned out as not working. See the
+ |restore| action for details.
+ \item |--no-depends| Do not install normal dependencies.
+ \item |--no-depends-at-all| See |install| above for this option.
+ \end{description}
+\item |remove| \var{pkg}\ldots\
+ removes the packages given as arguments. Removing a
+ collection will remove all package dependencies (but not collection
+ dependencies) in that collection, unless |--no-depends| is
+ specified. However, when removing a package, dependencies are
+ never removed.
+
+ Options:
+ \begin{description}
+ \item |--no-depends| Do not remove dependent packages.
+ \item |--no-depends-at-all| See |install| above for this option.
+ \item |--force|
+ By default, when removing a package or collection would
+ invalidate a dependency of another collection/scheme, the
+ package is not be removed and an error is given. With this
+ option, the package will be removed unconditionally. Use with
+ care.
+ \item |--dry-run|
+ Fake the removals without actually changing anything.
+ \end{description}
+\item |backup| \var{pkg}\ldots\
+ makes a backup of the given packages, or all packages
+ with |--all|, to the directory specified with |--backupdir| (must
+ exist and be writable.
+
+ The following options are supported:
+ \begin{description}
+ \item |--backupdir |\var{directory}
+ The directory is a required argument and must specify an existing
+ directory where backups are to be placed.
+ \item |--all|
+ Make a backup of all packages in the \TeX\ Live installation.
+ This will take quite a lot of space and time.
+ \end{description}
+
+\item |restore --backupdir |\var{dir} |[|\var{pkg} |[|\var{rev}|]]|\\
+ If no |pkg| is given (and thus no |rev|), lists the available backup
+ revisions for all packages.
+
+ With |pkg| given but no |rev|, list all available backup revisions
+ of |pkg|.
+
+ With both |pkg| and |rev|, tries to restore the package from the
+ specified backup.
+
+ The option |--backupdir dir| is required, and must specify a
+ directory with backups.
+
+ The option |--dry-run| is also supported, as usual.
+
+\item |arch |\var{operation} \var{arg}\ldots
+ If \var{operation} is |list|, this
+ lists the names of architectures (|i386-linux|, \ldots)\ available at
+ the default install location.
+
+ If \var{operation} is |add|, adds the executables for each of the following
+ arguments (architecture names) to the installation.
+
+ The option |--dry-run| is also supported, as usual.
+\end{itemize}
+
+
+\subsection{Typical usage of tlmgr}
+
+Here we present some typical usage examples of the \tlmgr.
+
+\paragraph{Installing a new collection}
+
+Suppose that you installed |scheme-medium| and then realize that the
+hyphenation patterns for some language you are using haven't been
+installed, say, Norwegian. First you fire up tlmgr to search for
+the support:
+\begin{lstlisting}
+$ tlmgr search --global norwegian
+collection-langnorwegian - Norwegian
+hyphen-norwegian -
+\end{lstlisting}
+and then to install this collection:
+\begin{lstlisting}
+$ tlmgr install collection-langnorwegian
+install: collection-langnorwegian
+install: hyphen-norwegian
+regenerating language.dat
+regenerating language.def
+\end{lstlisting}
+and then it continues to regenerate all the format files depending on
+either |language.dat| or |language.def|. (If the
+the |formats| option is changed to false in the local database, the
+format rebuilding will be skipped. The default is to do so, to keep
+them up to date without manual intervention.)
+
+
+\paragraph{Searching for a package}
+
+You want to typeset an invitation in a special form, say
+in the shape of a heart. Your first try is
+\begin{lstlisting}
+$ tlmgr search paragraph
+\end{lstlisting}
+but that yields no output. Maybe it's not installed?
+So try a global search:
+\lstset{breaklines}
+\begin{lstlisting}
+$ tlmgr search -global paragraph
+tlmgr: installation location /src/TeX/texlive-svn/Master
+ bigfoot - Footnotes for critical editions
+ edmargin - Multiple series of endnotes for critical editions
+ footmisc - A range of footnote options
+ genmpage - Generalization of LaTeX's minipages
+ hanging - Hanging paragraphs
+ ibycus-babel - Use the Ibycus 4 Greek font with Babel
+ insbox - A TeX macro for inserting pictures/boxes into paragraphs
+ layouts - Display various elements of a document's layout
+ lettrine - Typeset dropped capitals
+ lineno - Line numbers on paragraphs
+ lipsum - Easy access to the Lorem Ipsum dummy text
+ moresize - Allows font sizes up to 35.83pt
+ ncctools - A collection of general packages for LaTeX
+ paralist - Enumerate and itemize within paragraphs
+ picinpar - Insert pictures into paragraphs
+ plari - Typesetting stageplay scripts
+ seqsplit - Split long sequences of characters in a neutral way
+ shapepar - A macro to typeset paragraphs in specific shapes
+ vwcol - Variable-width multiple text columns
+\end{lstlisting}
+and here we are, \texttt{shapepar} seems to be what's needed. So let
+us see what it is:
+\begin{lstlisting}
+$ tlmgr show shapepar
+tlmgr: installation location /src/TeX/texlive-svn/Master
+Package: shapepar
+Category: Package
+ShortDesc: A macro to typeset paragraphs in specific shapes.
+LongDesc: \shapepar is a macro to typeset paragraphs in a
+special ...
+Installed: No
+Collection:collection-latexextra
+\end{lstlisting}
+Ok, confirmed, now we can either install the
+respective collection using
+\begin{lstlisting}
+$ tlmgr install collection-latexextra
+\end{lstlisting}
+which will install quite a lot of packages, or only that one single
+package in the hope that it does not depend on anything else:
+\begin{lstlisting}
+$ tlmgr install shapepar
+tlmgr: installation location /src/TeX/texlive-svn/Master
+install: shapepar
+running mktexlsr
+...
+\end{lstlisting}
+
+These examples are about finding uninstalled packages. The default for
+\tl\ is a full installation, i.e., everything is installed that is
+available.
+
+\paragraph{Updating your installation}
+
+After the initial installation you want to get the latest and
+greatest of everything, but first you want to see what that means:
+\begin{lstlisting}
+$ tlmgr update --list
+tlmgr: installation location /mnt/cdrom
+Cannot load TeX Live database from /mnt/cdrom at /home/norbert/tltest/2008/bin/i386-linux/tlmgr line 1505, <TMP> line 1982.
+\end{lstlisting}
+Hmm, there seems to be an error, it tries to install from the \acro{DVD}
+which you returned to your friend last week. Well, then you
+should switch to the network installation source; best to do it
+for all future sessions by saving it as default
+location. But what was that strange address again? Fortunately you can
+tell tlmgr to use \acro{CTAN} and it will know what to do:
+\begin{lstlisting}
+$ tlmgr option location ctan
+tlmgr: setting default installation location to http://mirror.ctan.org/systems/texlive/tlnet/2008
+\end{lstlisting}
+Fine. Now let us see what we can upgrade:
+\begin{lstlisting}
+$ tlmgr update --list
+shapepar: local: 10400, source: 10567
+bin-texlive: local: 10693, source: 10750
+pdftex: local: 10622, source: 10705
+texlive.infra: local: 10685, source: 10748
+\end{lstlisting}
+Well, some things are there, so let us update all of them at once:
+\begin{lstlisting}
+$ tlmgr update --all
+update: shapepar (10400 -> 10567) ... done
+update: bin-texlive (10693 -> 10750) ... done
+update: pdftex (10622 -> 10705) ... done
+update: texlive.infra (10685 -> 10748) ... done
+running mktexlsr ...
+\end{lstlisting}
+
+\paragraph{Paper size configuration}
+
+You are moving to Japan and want letter as your default paper size;
+nothing easier:
+\begin{lstlisting}
+$ tlmgr paper letter
+\end{lstlisting}
+will switch to letter for the most important programs, and at also
+recreate the formats.
+
+\section{The GUI for tlmgr}
+
+To make most Windows users and some Unix users happy we provide a
+front end for the \tlmgr\ written in Perl/Tk. It does not do the
+actual work, but leaves that for tlmgr. It also does not provide quite the
+full functionality of tlmgr, but almost all of it is there.
+
+This program features several screens for different functionalities:
+installation, update, and removal of packages, removal of \tl\ as a
+whole, architecture support and configuration.
+
+The \acro{GUI} is started with either \texttt{tlmgr gui} or
+\texttt{tlmgr --gui action} where \texttt{action} is one of the
+actions given above. In the latter case it tries to open the respective screen of
+the \acro{GUI}.
+
+\subsection{The install screen}
+
+The first window to be seen normally is the package installation
+screen (fig.~\ref{fig:gui:install}).
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-install.png}}
+ \caption{\tlmgr\ \acro{GUI} install screen}
+ \label{fig:gui:install}
+\end{figure}
+
+At the top you see the current installation source, as given either on
+the command line of tlmgr, or in the absence of a command line
+argument as taken from the default option. It is \emph{not} loaded
+automatically, you have to press the \button{Load} button, or the
+\button{Change} button to select a different installation source for
+this run only. Below you see the list of available packages on the
+left, first all the collections and schemes, then all the
+other packages in alphabetic order. You can search by entering a
+string into the search text field, which immediately jumps to the
+first entry. The button \button{Next} jumps to the next match. After
+selecting one package you can see its description in the right half of
+this screen. Below there is the action button for installing the
+selected package(s), and also a switch that allows you to install a
+package without those it depends on.
+
+\subsection{The update screen}
+
+The update screen is similar to the install screen, but only
+lists those packages which have an upgrade available on the
+installation location. The upper part of the right pane gives you
+information on the package, and in the action area below you see two
+buttons, one for updating only the selected packages, and one for
+updating all packages.
+
+In fig.~\ref{fig:gui:update} you can see the update screen with
+updates available and the information for the selected package shown
+in the right part of the screen.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-update.png}}
+ \caption{\tlmgr\ \acro{GUI} update screen}
+ \label{fig:gui:update}
+\end{figure}
+
+\subsection{The remove screen}
+
+The remove screen is also similar to the install screen, with the
+list of all installed packages in the left part, the
+information window in the upper right part, and the action area with
+two toggles and the remove button in the lower right part; see
+fig.~\ref{fig:gui:remove}.
+
+The two toggles correspond to the option |--force| and |--no-depends|
+of the tlmgr |remove| action, see above.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-remove.png}}
+ \caption{\tlmgr\ \acro{GUI} remove screen}
+ \label{fig:gui:remove}
+\end{figure}
+
+\subsection{The uninstallation screen}
+
+This screen only sports one button which allows you to completely remove
+the \tl\ installation from your system. This button is not present on
+Windows systems, being replaced by an informational note that you should
+use the \cmd{Add/Remove} entry from the Control Panel.
+
+\subsection{The architectures screen}
+
+\tl\ allows you to install the binaries for several
+architecture-operating system combinations in case you want to
+distribute your installation via \acro{NFS} or other means in an
+inhomogen local network, see fig.~\ref{fig:gui:arch}.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-arch.png}}
+ \caption{\tlmgr\ \acro{GUI} architectures screen}
+ \label{fig:gui:arch}
+\end{figure}
+
+This screen lists the available architectures at the current
+installation source, and allows you to select new architectures to be
+installed by pressing the \button{Apply changes} button.
+
+Note that the \emph{removal} of architectures is currently not
+supported, and that the whole screen is disabled on Windows systems
+since Windows does not support normal symbolic links.
+
+\subsection{The config screen}
+
+This screen allows the user to comfortably examine and set the various
+options of the \tl\ installation, see figure~\ref{fig:gui:option}.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-options.png}}
+ \caption{\tlmgr\ \acro{GUI} config screen}
+ \label{fig:gui:option}
+\end{figure}
+
+In the upper part you can change the defaults for the installation
+source, whether formats should be created (and updated) by default,
+and whether macro/font documentation and source files should be
+installed.
+
+In the lower left part you can set the letter for all the programs to
+either \texttt{A4} or \texttt{letter}, or for each program
+individually. In the latter case you can choose from a wide range of
+paper formats depending on the programs support.
+
+In the lower right part there are some convenience buttons for updating
+the |ls-R| databases, the outline font list (|updmap-sys|) and
+rebuilding all formats.
+
+\subsection{Execution of the commands}
+
+As mentioned above, this \acro{GUI} is only a front end and leaves the
+actual work to tlmgr itself. So every action you do (installation,
+removal, etc.)\ will pop up a window where the output of the tlmgr
+process is shown.
+
+On Unix systems that output will be shown immediately. Windows
+lacks good support for forking in Perl/Tk, and thus you have to wait
+until the whole process has terminated before the output appears. That
+can take quite some time, so please be patient.
+
+We are working on merging the tlmgr and its \acro{GUI} into one
+program so that the output would become more immediate in all cases.
+
+
+\section{What else is there?}
+
+Besides reworking the whole infrastructure, which is only user-visible in
+the new installer and the \tlmgr, as with every year, all the
+programs and packages have been updated. We currently ship around~1400
+normal packages, e.g., \LaTeX\ and font packages, and
+around~300 other packages, mostly documenation and a few packages
+which are \tl\ internal.
+
+The new player in the game
+this year is the new engine Lua\TeX\ (\url{http://luatex.org}); besides a
+new level of flexibility in typesetting, this provides an excellent
+scripting language for use both inside and outside of \TeX\
+documents.
+
+
+\subsection{Windows-specific features}
+
+To be complete, a \tl\ installation needs support packages that are not
+commonly found on a Windows machine. \tl{} provides the missing
+pieces:
+\begin{description}
+\item[Perl and Ghostscript.] Because of the importance of Perl and
+ Ghostscript, \tl{} includes `hidden' copies of these
+ programs. \tl{} programs that need them know where to find them,
+ but they don't betray their presence through environment variables
+ or registry settings. They aren't full-scale distributions, and
+ shouldn't interfere with any system installations of Perl or
+ Ghostscript.
+\item[Command-line tools.] A number of Windows ports of common Unix
+ command-line programs are installed along with the usual \tl{}
+ binaries. These include \cmd{gzip}, \cmd{chktex},
+ \cmd{jpeg2ps}, \cmd{unzip}, \cmd{wget} and the
+ command-line utilities from the \cmd{xpdf} suite. (The
+ \cmd{xpdf} viewer itself is not available for Windows, but the
+ Sumatra \acro{PDF} viewer is based on it:
+ \url{http://blog.kowalczyk.info/software/sumatrapdf}.)
+\item[\texttt{fc-cache}] helps \XeTeX{} to handle fonts more
+ efficiently.
+\item[PS\_View.] Also installed is PS\_View, a new PostScript viewer
+ that is free software; see fig.~\ref{fig:psview}. It also supports
+ viewing of \acro{PDF} files and is extremely fast. Please contact us
+ with any suggestions, this program is in active development.
+\item[dviout] This is a \acro{DVI} previewer which is shipped only in
+ the support directory of the \acro{DVD}, but you will get it if you
+ use the network update procedure. See fig.~\ref{fig:dviout} for a
+ screenshot.
+\end{description}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{psview.png}}
+ \caption{PS\_View allows very high magnification, and renders
+ \acro{PDF}, too}
+ \label{fig:psview}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{dviout.png}}
+ \caption{DVIout on Windows}
+ \label{fig:dviout}
+\end{figure}
+
+\section{Final remarks and other resources}
+
+The \tlmgr\ is very much work in progress, and its \acro{GUI} even
+more. We are adding new functionality frequently, and improving
+existing functionality to make it more robust. If you see any anomalies
+don't hesitate to contact us at \url{tex-live@tug.org}, and we
+will try to improve it further.
+
+As with most volunteer projects the group of core programmers is
+quite small. Most of tlmgr and its \acro{GUI} has been
+programmed by the author with some minor contributions from
+others. Anyone being more or less able to program Perl is heartily
+invited to join forces and help us, there are long lists of
+\acro{TODO}s for the \tlmgr, let alone for all of \tl.
+
+If you are searching more information on \tl\ your first starting
+place should be \url{http://tug.org/texlive/} and the documentation
+specific page \url{http://tug.org/texlive/doc.html}.
+
+The list of people to thank is too long to be included here, please
+see the online \tl\ documentation, Chapter~9
+(Acknowledgments), for the ever growing list. Of course one name has to
+be mentioned and that is Karl Berry who with great enthusiasm and
+perpetual support (and a sometimes critical voice if I was too fast in
+implementing something!)\ prepared the \tl~2008 release.
+
+\bibliographystyle{arstexnica}
+\bibliography{tlmgr-article}
+
+%
+% END OF ARTICLE
+%
+\end{article}
+\end{document}
+
+
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.ltx b/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.ltx
new file mode 100644
index 00000000000..e950a2a6301
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.ltx
@@ -0,0 +1,34 @@
+%
+% Norbert Preining
+% Article presented on the 5th GuITmeeting, Pisa 18 October 2008
+% Übersetzung für DTK
+%
+% Copyright 2008, 2009 Norbert Preining
+% You can redistribute and/or modify this document under the terms of the
+% GNU General Public License as published by the Free Software Foundation;
+% either version 2 of the License, or (at your option) any later version.
+%
+\documentclass{dtk}
+
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[naustrian]{babel}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{fancyvrb}
+\usepackage{url}
+\usepackage{natbib}
+% marvosym is needed for RightTorque, but conflicts with \Email:
+\let\EmailSave\Email
+\let\Email\relax
+\usepackage{marvosym}
+\let\Email\EmailSave
+\usepackage{listings}
+
+\begin{document}
+\input{tlmgr-dtk}
+\end{document}
+
+
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.pdf b/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.pdf
new file mode 100644
index 00000000000..42f7e4a991f
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.pdf
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.tex b/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.tex
new file mode 100644
index 00000000000..a235c2ee012
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgr-dtk.tex
@@ -0,0 +1,1032 @@
+%
+% Norbert Preining
+% Article presented on the 5th GuITmeeting, Pisa 18 October 2008
+% Übersetzung für DTK
+%
+% Copyright 2008, 2009 Norbert Preining
+% You can redistribute and/or modify this document under the terms of the
+% GNU General Public License as published by the Free Software Foundation;
+% either version 2 of the License, or (at your option) any later version.
+%
+
+\newcommand{\tl}{\TeX~Live}
+\title{\tl~2008 und der \TeX\ Live Manager%
+ \thanks{
+ Dieser Artikel ist eine erweiterte und auf den neusten Stand
+ gebrachte Version eines ursprünglich am GuIT\ Conference 2008 in
+ Pisa präsentierten und in Ars\TeX nica, Issue~6 veröffentlichten
+ Artikels}}
+
+\author{Norbert Preining}
+\address{Norbert}{Preining}{Technische Universität Wien\\
+ %Wiedner Hauptstr.\ 10\\
+ %1040 Wien, Austria
+}
+%\netaddress{preining@logic.at}
+
+\maketitle
+
+\lstset{frame=lines,basicstyle=\small\ttfamily,prebreak={\Righttorque},
+ postbreak={\Lefttorque},columns=flexible,breaklines}
+\DefineShortVerb{\|}
+
+\newcommand{\tlmgr}{\TeX~Live Manager}
+
+\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{\pl}{Perl}
+\newcommand{\gs}{Ghostscript}
+\newcommand{\tlu}{\texttt{texlua}}
+\newcommand{\kpse}{Kpathsea}
+\newcommand{\XeTeX}{Xe\TeX}
+\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}}
+
+
+\begin{abstract}
+Die Release von \tl~2008 vor bald einem Jahr ist die erste Ausgabe
+von \tl\ die das neue Programm \tlmgr, kurz tlmgr, mitbringt.
+
+Der \tlmgr\ übernimmt nicht nur einige der Aufgaben von texconfig
+(welches niemals für Windows verfügbar war), sondern bereichert die
+\tl\ Welt um viele neue Möglichkeiten, darunter die wohl am längsten
+gewünschte Fähigkeit zu laufenden Updates.
+
+Der vorliegende Artikel präsentiert das neue \tl\ Installationsprogramm, den
+\tlmgr, und beschreibt einige andere Neuigkeiten in \tl~2008.
+\end{abstract}
+
+
+\tableofcontents
+
+\section*{Wichtiger Hinweis}
+
+Dieser Artikel beschreibt den Status des \tlmgr\ wie er im April~2009
+verteilt wird, und nicht die Version die auf \acro{DVD} vorhanden ist.
+Letztere funktioniert gut für lokale Konfigurationsänderungen
+(warum wir das Programm auch auslieferten), aber der Updatemechanismus
+übers Internet ist nicht hinlänglich robust. Benutzer der \acro{DVD}
+Version sollten zuerst den \tlmgr\ auf den neuesten Stand bringen.
+
+\section{Einführung}
+\label{sec:intro}
+
+Nach mehr als einem Jahr der Entwicklung wurde \tl~2008 mit einer
+völlig neuen Infrastruktur freigegeben \citep{at:2007-4-069-preining}.
+Der Ausgangspunkt dieser Überarbeitung waren zuerst nur notwendige
+Vereinfachungen um die Arbeit der Entwickler (etwas) einfacher und das
+System aufgrund der Elimination von doppelter Informationen zu
+vereinfachen.
+
+Die erste Änderung die für normale Benutzer sichtbar wurde war die
+Vereinheitlichung des Installationsprogramms, so dass nun alle
+unterstützten Plattformen nun den gleichen Installer verwenden.
+Weiters erhielt das Installationsprogramm eine graphische Oberfläche
+die ebenfalls einheitlich über alle Plattformen ist. Auf Unix ist die
+einzige Voraussetzungen des Installationsprogramms eine Perlinstallation,
+und für das graphische Frontend zusätzlich das Vorhandensein von Perl/Tk.
+Auf Windows wird eine minimale Perlinstallation mit allen notwendigen
+Modulen mitgeliefert, so dass keine weiteren Voraussetzungen gegeben
+sind.
+
+Der erste Teil dieses Artikels wird einen Überblick über das
+neue Installationsprogramm geben.
+
+Die zweite für Benutzer sichtbare Änderung ist das neue Programm \tlmgr,
+oder kurz tlmgr. Es konfiguriert eine vorhandene \tl\ Installation, sowohl
+was Pakete als auch was Optionen und Einstellungen angeht. Es erlaubt neben
+vieler Aufgaben die ursprünglich von |texconfig| ausgeführt wurde auch die
+Installation von zusätzlichen Paketen, das Update und das Entfernen von
+vorhandenen Paketen, die Erstellung von Backups, die Suche nach und das
+Auflisten von Paketen.
+
+\section{Das neue Installationsprogramm}
+\label{sec:installer}
+
+Die Erstellung eines neuen \tl\ Installationsprogramms wurde durch das
+Umschreiben der Infrastruktur bedingt \citep{at:2007-4-069-preining}.
+Für den Benutzer der \tl\ installiert ergeben sich nur einige Änderungen
+im Aussehen, aber dahinter stehen einige wichtige Änderungen, im speziellen:
+\begin{itemize}
+\item Installationen von \tl\ über das Internet wird ermöglicht.
+\item Es gibt nur mehr ein (1) Installationsprogramm, das entweder im
+ Textmodus arbeitet und dabei das frühere Shellskript |install-tl.sh|
+ emuliert, oder im \acro{GUI} Modus.
+\item Die Installation auf Windowssystemen ist viel näher an der Installation
+ auf Unix-Systemen.
+\end{itemize}
+
+\subsection{Installation von \tl\ über das Internet}
+
+Wer die \tl\ \acro{DVD} verwendet kann das Installationsprogramm wie
+üblich direkt von der \acro{DVD} starten. Auf Windows startet dabei
+das Installationsprogramm automatisch im graphischen Modus (siehe weiter
+unten), auf Unix-Systemen hingegen im Textmodus.
+
+Ebenfalls ist ein Installationspaket \citep{inst:package} verfügbar
+das nur die notwendigen Dateien für eine Installation über das
+Internet enthält. Normalerweise wird dabei automatisch ein vom
+|http://mirror.ctan.org| Service ausgewählter Spiegelserver von \ctan\
+verwendet (siehe |http://tug.org/ctan.html#sites|).
+
+Dabei werden für die Netzwerkinstallation zwei Pakete zur Verfügung
+gestellt. Von |install-tl-unx.tar.gz| unterstützt nur Unix-Systeme,
+während |install-tl.zip| zusätzlich auch die notwendige Teilmenge
+von Perl für Windows mitbringt. Letzteres funktioniert auf allen
+unterstützten Plattformen. Der einzige Grund für die Existenz der
+separaten Pakete ist die signifikant kleinere Größe des Installationspaketes
+für Unix.
+
+Die voreingestellte Installationsquelle kann durch die Angabe der
+Kommandozeilenoption |-location| beliebig geändert werden.
+
+\subsection{Der Textmodus des Installers}
+
+Wenn Sie \tl\ in den letzten Jahren installiert haben werden Sie keine
+großen Änderungen im Textmodus des Installationsprogramms erkennen
+((siehe Abb.~\ref{fig:text_main_menu}). Wir haben versucht so nahe wie
+möglich am Installationsprogramm der vorherigen Ausgaben zu halten.
+Eine neue Option kann am unteren Ende des Menüs gefunden werden:
+\emph{set up for running from DVD}. Das ist woher das \emph{Live} in \tl\
+kommt: Es erstellt nur eine absolut minimale Umgebung auf dem lokalen
+Computer, während alle Eingabedateien und Programme direkt von der
+\acro{DVD} verbleiben.
+
+Wie in den vorigen Jahren ist das Installationsprogramm nur in Englisch
+verfügbar, während der Graphikmodus jetzt diverse Übersetzungen mitbringt.
+
+\begin{figure}[htp!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{install08text-crop}}
+ \caption{Hauptmenü des Installers im Textmodus}
+ \label{fig:text_main_menu}
+\end{figure}
+
+\subsection{Der Grafikmodus des Installers}
+
+Der graphische Modus des Installationsprogramms hat fast die gleiche
+Funktionalität wie der Textmodus, nur die Option der \emph{Live} Installation
+fehlt. Der Grafikmodus ist in Perl/Tk programmiert und sollte auf allen
+unterstützten Plattformen laufen (wobei auf Unix Perl/Tk installiert
+sein muss).
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-installer-de.png}}
+ \caption{Hauptfenster des graphischen Installers}
+ \label{fig:gui_main_menu}
+\end{figure}
+
+Abbildung~\ref{fig:gui_main_menu} zeigt das Hauptfenster, dass sehr
+an den Textmodus erinnern soll. Wie im Textmodus erlaubt es die zu
+installierenden Systeme zu ändern (Abb.~\ref{fig:gui_systems}), ein
+Schema auszuwählen (Abb.~\ref{fig:gui_scheme}), wobei ein Schema
+eine vordefiniert Auswahl an Paketgruppen ist. Weiters können
+die einzelnen Paketgruppen selber bearbeitet werden, sowie die
+Verfügbarkeit von Sprachpaketen und Dokumentation in diversen Sprachen
+(Abb.~\ref{fig:gui_coll} und~\ref{fig:gui_lang}). Dann kann der
+Installationsordner und verwandte Ordner selektiert werden und
+diverse Optionen an- oder abgewählt werden. All dies sind Funktionalität
+wie sie vom Installationsprogramm der letzten Jahre zur Verfügung
+gestellt wurden.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.3\columnwidth}{!}{\includegraphics{gui-systems.png}}
+ \caption{Auswahlfenster für Binärsysteme}
+ \label{fig:gui_systems}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-scheme.png}}
+ \caption{Auswahlfenster für Schemata}
+ \label{fig:gui_scheme}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-collections.png}}
+ \caption{Auswahlfenster für Paketgruppen}
+ \label{fig:gui_coll}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-lang.png}}
+ \caption{Auswahlfenster für Sprachpakete}
+ \label{fig:gui_lang}
+\end{figure}
+
+Sobald die Installation gestartet wird erscheint ein Fenster in dem
+der Fortschritt der zu installierenden Pakete angezeigt wird, zusammen mit
+Abschätzung der Restzeit und einem Fortschrittsbalken
+(Abb.~\ref{fig:gui_progress}).
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-progress.png}}
+ \caption{Fortschrittsfenster}
+ \label{fig:gui_progress}
+\end{figure}
+
+Sowohl im Textmodus als auch im Graphikmodus des Installationsprogramms
+wird eine Logdatei |install-tl.log| mit weiteren Informationen im
+im Installationsverzeichnis erstellt. (Bei Fehlerberichten bitte diese
+Datei mitschicken!)
+
+\subsection{Windows und Unix rücken näher}
+
+\tl\ 2008 unterstützt nur mehr Windows~2000 und neuere Versionen
+(nicht mehr Windows~98), wodurch wir die Notwendigkeit der Spezialbehandlung
+von Windows weitgehend reduzieren.
+
+Auf den unterstützten Windows Systemen haben Benutzer ein \emph{echtes}
+Heimverzeichnis, nämlich verb+%USERPROFILE%+, das normalerweise
+\verb+Dokumente und Einstellungen\+\textit{username} ist.
+
+Dies schlägt sich nun in der Tilde-Erweiterung von \kpse\ nieder:
+\verb+~/texmf+ wird auf Windows zu \verb+%USERPROFILE%\texmf+
+erweitert, und zu \verb+$HOME/texmf+ auf Unixsystemen.
+
+Wie bisher unter Unix ist es nun auch unter Windows möglich zwischen
+systemweiten Einstellungen und Benutzerspezifischen Einstellungen
+zu unterscheiden. Weiters gibt es keinen Grund mehr für Windows
+verschiedene \texttt{texmf} Bäume zu haben, oder einige Skripts
+wie \texttt{fmtutil-sys} und \texttt{updmap-sys} auf Windows nicht
+bereitzustellen. Schlussendlich gibt es nun auch eine einzige
+\texttt{texmf.cnf} Datei für alle Plattformen.
+
+
+%
+%
+%
+\section{Der \tlmgr}
+
+Der \tlmgr\ stellt eine Vielzahl an Optionen und Befehlen zur Verfügung, von
+denen alle (zum derzeitigen Zeitpunkt implementierten) hier vorgestellt
+werden, einige nur sehr kurz, einige detaillierter. Dabei muss man beachten
+dass die Entwicklung permanent weitergeht und neue Fähigkeiten laufend
+hinzugefügt werden.
+
+\subsection{Die \tl\ Datenbank}
+
+Zu allererst ist es notwendig zu verstehen wo alle Informationen über
+installierte Pakete und Optionen gespeichert werden. Dies ist die
+\tl\ Datenbank, welche normalerweise in \path{ROOT/tlpkg/texlive.tlpdb}
+gefunden werden kann (wobei |ROOT| der Installationsfolder ist).
+Diese Datenbank -- eine einfache, jedoch strukturierte Textdatei --
+enthält die Liste der installierten Pakete, zu jedem Paket die Liste
+der installierten Dateien, und sammelt zusätzlich alle
+Konfigurationsoptionen wie die Installationsquelle oder die bei der
+Installation angewählten Optionen.
+
+Die meisten der Aktionen von tlmgr laden die lokale Datenbank, und viele
+Aktionen laden zusätzlich die \emph{entfernte} Datenbank, also die
+von der installiert wird: Wenn Sie zum Beispiel ein Paket installieren
+wollen wird die Datenbank der Installationsquelle geladen und überprüft
+ob das Paket dort vorhanden ist.
+
+Wobei mit \emph{entfernte} Datenbank nicht unbedingt eine entfernter
+Server gemeint ist. Wenn Sie von der \acro{DVD} installiert haben so
+wird die Installationsquelle die \acro{DVD} sein, und tlmgr wird diese
+Datenbank lande sobald es notwendig ist.
+
+\subsection{Allgemeine Syntax von tlmgr}
+
+Jeder Aufruf von tlmgr sieht wie folgt aus:
+\begin{center}
+ \Verb+tlmgr [opt]... action [opt]... [arg]...+
+\end{center}
+Die ersten Optionen vor der Aktion |action| bestimmen einige allgemeine
+Einstellungen von tlmgr, während der zweite Satz von Optionen nach der
+Aktion spezifisch für die Aktion sind.
+
+Die derzeitige Version unterstützt -- im Gegensatz zu früheren Versionen --
+die Vermischung all dieser Optionen. Damit ist es im Prinzip egal was
+wo wann kommt. Dennoch werden die Optionen und Aktionen in dieser
+Art präsentiert um die Darstellung zu erleichtern.
+
+Der erste Satz kann die folgenden Optionen enthalten:
+\begin{itemize}
+\item |--location| \var{loc} gibt die Installationsquelle an von der
+ Pakete installiert und erneuert werden. Diese Option überschreibt die
+ voreingestellte Installationsquelle in der \tl\ Datenbank (\acro{TLPDB}).
+\item |--gui| startet die graphische Oberfläche des tlmgr. Diese
+ Oberfläche unterstützt nicht den vollen Funktionsumfang der Kommandozeile,
+ sehr wohl aber die wichtigsten und häufigsten.
+ Der Unterschied zwischen der |--gui| Option und der |gui| Aktion (siehe
+ weiter unten) ist dass wenn Sie die Option |--gui| geben und eine Aktion,
+ dann versucht tlmgr sofort den entsprechenden Bildschirm der graphischen
+ Oberfläche zu laden.
+\item |--gui-lang| \var{ll} selektiert die Sprache der graphischen
+ Oberfläche. Normalerweise versucht tlmgr die korrekte Sprache aus
+ den Umgebungseinstellungen abzuleiten (unter Windows wird die
+ Registry befragt, unter Unix |LC_MESSAGES|). Sollte dies fehlen
+ erlaubt diese Option eine Sprache auszuwählen.
+\item |--machine-readable| Anstelle der normalen Ausgabe die für einen
+ menschlichen Benutzer gedacht ist, schaltet diese Option zu einer
+ leichter von Programmen parsebaren Ausgabe um. Details können in der
+ manpage \citep{tlmgr-manpage} gefunden werden.
+\item |--package-logfile| \var{file} tlmgr führt eine Logdatei für alle
+ Aktionen die Pakete betreffen (Installation, Entfernen, Update, etc).
+ Diese Logdatei ist normalerweise |TEXMFSYSVAR/web2c/tlmgr.log|, diese
+ Option erlaubt eine andere Datei anzugeben.
+\item |--pause| lässt tlmgr vor Terminierung auf eine Eingabe des Users
+ warten. Dies kann auf Windows nützlich sein um das vorschnelle
+ Verschwinden des Kommandofensters zu verhindern.
+\end{itemize}
+
+Weiters werden diverse Standardoptionen unterstützt: |--help| (oder
+|-h|) gibt die manpage aus, |-q| unterdrückt rein informative
+Ausgaben, |-v| (verbose) um den Grad der Gesprächigkeit von tlmgr, sprich
+den Debuglevel, einzustellen. Mit |--version| gibt tlmgr die Version
+des installierten \tl\ Systems als auch die Versionsnummer von tlmgr selbst
+aus.
+
+\subsection{Die Aktionen}
+
+
+Die derzeitige Liste der Aktionen ist:
+|help|, |version|, |gui|, |install|, |update|, |backup|, |restore|,
+|remove|, |option|, |symlinks|, |paper|, |arch|, |search|, |show|, |list|,
+|check|, |uninstall|, |generate|.
+
+\paragraph{Die allgemeinen Aktionen}
+
+\begin{itemize}
+\item |search [|\var{option}|...] |\var{what} Ohne zusätzliche Optionen
+ wird in der Liste der lokal installierten Pakete in den Paketnamen und
+ -beschreibungen nach |what| gesucht. Wird die Option |--global| gegeben,
+ so wird die entfernt Datenbank auch durchsucht (sprich auch alle nicht
+ installierten Pakete). Wird die Option |--file| gegeben dann werden
+ nicht die Paketnamen und -beschreibungen durchsucht, sondern die
+ installierten Dateinamen.
+\item |show |\var{pkg}|...| zeigt detaillierte Informationen über die
+ angegebenen Pakete an. Falls alle angegebenen Pakete lokal installiert
+ sind wird die entfernte Datenbank nicht befragt.
+\item \Verb+list [collections|schemes]+ Ohne jegliche Argumente werden alle
+ Pakete die bei der Installationsquelle vorhanden sind aufgelistet, wobei
+ bereits installierte ein Präfix von "i " erhalten.
+ Mit einem Argument werden entweder nur die Paketgruppen oder die Schemata
+ aufgelistet, je nach Argument.
+\item \Verb+symlinks [add|remove]+ Fügt symbolische Verweise für die
+ Programme, die man pages, und die info Dokumentationen hinzu oder
+ entfernt sie in den in der Datenbank eingetragenen Ordnern (siehe weiter
+ unten unter |option|).
+\item |uninstall| Diese Aktion fragt zuerst noch einmal nach, dann wird
+ die gesamte Installation entfernt. Wird die Option |--force| gegeben dann
+ wird nicht einmal nachgefragt.
+\item \Verb+check [files|collections|all]+ Führt einen oder alle Tests
+ der Installation auf Konsistenz durch. Mit |files| wird überprüft
+ ob all in der Datenbank gelisteten Dateien auch im System vorhanden
+ sind. Die Option |--use-svn| benutzt den |svn| Befehl um die
+ vorhandenen Dateien festzustellen.
+\item |gui| startet die graphische Oberfläche wie oben erklärt.
+\item |version| ist das Gleiche wie |--version|.
+\item |help| ist das Gleiche wie |--help|.
+\end{itemize}
+
+\paragraph{Die Konfigurationsaktionen}
+\begin{itemize}
+\item |option [show]| Zeigt alle in der lokalen Datenbank gespeicherten
+ Optionen an.
+\item |option |\var{key} |[|\var{value}|]|
+ Ohne \var{value} wird der aktuelle Wert der Konfigurationsoption \var{key}
+ angezeigt. Derzeit werden die folgenden |key|s werden derzeit akzeptiert:
+ |location| -- voreingestellte Installationsquelle;
+ |formats| -- Formate werden bei Installation/Update neu erstellt;
+ |docfiles| -- bei der Installation von Paketen werden auch die
+ Dokumentationsdateien installiert. Änderung der Option |docfiles| betrifft
+ nicht schon installierte Pakete, sondern nur neue Pakete und
+ Updates;
+ |srcfiles| -- bei der Installation von Paketen werden auch die
+ Quelldateien installiert;
+ |backupdir| -- voreingestellter Ordner für Backups;
+ |autobackup| -- Anzahl der Backups die behalten werden sollen (siehe
+ weiter unten für Details);
+ |sys_bin| -- Ordner in dem symbolische Verweise für Programme
+ durch |symlinks| angelegt werden;
+ |sys_man| -- Ordner in dem symbolische Verweise für man pages
+ durch |symlinks| angelegt werden;
+ |sys_info| -- Ordner in dem symbolische Verweise für info Dokumentationen
+ durch |symlinks| angelegt werden.
+\item |paper |\var{paper} legt das voreingestellte Papierformat ein, entweder
+ |a4| oder |letter|. Ohne \var{paper} werden die aktuellen Papierformate
+ für alle unterstützten Programme angezeigt.
+\item \var{program} \Verb+paper [help|+\var{paper}|]|
+ Diese Variante erlaubt es verschiedene voreingestellte Papierformate
+ für die unterstützten Programme einstellen. \var{program} kann
+ dabei eines aus |xdvi|, |dvips|, |pdftex|, |dvipdfm|,
+ |dvipdfmx|, |context| sein.
+ Ohne zusätzlichem Argument wird das aktuelle Papierformat für \var{program}
+ angezeigt. Mit |help| werden alle unterstützten Papierformate für
+ das jeweilige Programm angezeigt. Mit der Angabe eines Papierformates
+ wird das Programm für dieses Format umkonfiguriert.
+\item |generate |\var{what} Diese Aktion erstellt ein oder mehrere
+ Konfigurationsdateien wie folgt beschrieben:
+
+ Wird für \var{what} der Wert |language.dat| angegeben, dann wird
+ die Datei |language.dat| welche die Trennmuster die in \LaTeX-basierende
+ Formate geladen werden erstellt.
+ Mit |language.def| wird ebendiese Datei erstellt, die die Trennmuster
+ die in |etex|-basierende Formate geladen werden festlegt.
+ Wird nur |language| für \var{what} angegeben so werden beide Dateien
+ erstellt.
+
+ Wird |fmtutil| für \var{what} angegeben so wird die Datei |fmtutil.cnf|
+ neu erstellt, die die Definitionen aller zu erstellenden Formate
+ enthält.
+
+ Wird |updmap| für \var{what} angegeben so wird die Datei |updmap.cfg|
+ neu erstellt, die alle installierten Schriftarten-map Dateien enthält.
+
+ Für |fmtutil.cnf| und die beiden |language| Dateien ist das neu
+ Erstellen normal und sowohl das Installationsprogramm als auch tlmgr
+ tun dies regelmäßig.
+
+ Für |updmap.cfg| jedoch ist dies nicht so. Weder das Installationsprogramm
+ noch tlmgr verwenden den |generate| Aufrufs, da dieser alle manuell
+ aktivierten Schriftarten-map Dateien die mit |updmap-sys --enable|
+ aktiviert worden sind, entfernen (z.B.\ für lokal installierte
+ kommerzielle Fonts). Nur Eintragungen die in |--localcfg| (siehe weiter
+ unten) eingetragen sind würden erhalten werden.
+
+ Wenn Sie jedoch nur Schriftarten aus \tl\ selbst verwenden, dann
+ ist der Aufruf von |generate| ohne negativen Konsequenzen. Wir verwenden
+ es um die Datei |updmap.cfg| in unserem Repository zu aktualisieren.
+
+ Sollten die Dateien |language-local.dat|, |language-local.def|,
+ |fmtutil-local.cnf|, oder |updmap-local.cfg| vorhanden sein unter
+ \path{TEXMFLOCAL} in den entsprechenden Ordnern, dann wird deren
+ Inhalt als letztes in die erstellten Dateien hineinkopiert.
+\end{itemize}
+
+
+\paragraph{Die Paketaktionen}
+\begin{itemize}
+\item |install| \var{pkg}\ldots\ installiert die angegebenen Pakete.
+ Normalerweise werden alle Pakete von denen ein angegebenes Paket
+ abhängt auch mitinstalliert. Dies kann mit der Option |--no-depends|
+ unterdrückt werden. Weiters gibt es noch |--no-depends-at-all|
+ was tlmgr zusätzlich die eng verknüpften Pakete mit architekturspezifischen
+ Paketen vergessen lässt; zum Beispiel |bin-bibtex| und
+ |bin-bibtex.i386-linux|. Das sollte niemals verwendet werden außer Sie
+ wissen sehr genau was Sie tun.
+ |--dry-run| simuliert die Installation nur.
+\item |update| \var{pkg}\ldots\ bringt die angegebenen Pakete auf den
+ neuesten Stand. Zusätzlich, sollte ein der \var{pkg} eine Paketgruppe
+ sein, und an der Installationsquelle gibt es die gleiche Paketgruppe
+ mit Paketen die nicht installiert sind lokal, so werden diese auch
+ installiert. Optionen sind:
+ \begin{description}
+ \item |--list| Listet nur die Pakete auf die erneuert oder
+ neu installiert werden würden ohne den Update wirklich durchzuführen.
+ Es werden zusätzlich die Revisionsnummern der lokalen Pakete und
+ der Pakete der Installationsquelle angegeben.
+ \item |--all| Bringt alle Pakete die Erneuerungen haben auf den neuesten
+ Stand.
+ \item |--dry-run| Die Installation wird nur simuliert.
+ \item |--backup| und |--backupdir |\var{directory}
+ Diese Optionen steuern die Erstellung von Sicherheitskopien der
+ Pakete bevor das Upgrade installiert wird.
+ Wird weder |--backup| noch |--backupdir| angegeben wird keine
+ Sicherheitskopie erstellt. Wird |--backupdir| angegeben und
+ zeigt auf einen beschreibbaren Ordner, wird eine Sicherungskopie
+ erstellt. Wird nur |--backup| angegeben wird versucht der in der
+ Datenbank vorher mit |option backupdir| festgelegte Ordner für
+ Sicherungskopien zu verwenden.
+ Werden beide Optionen angegeben dann wird die Sicherungskopie in
+ dem angegebenen Ordner erstellt.
+
+ tlmgr erstellt vor jedem Upgrade eine temporäre Sicherungskopie um
+ im Fehlerfall automatisch zur letzten installierten Version
+ zurückgehen zu können. Diese Optionen hier erlauben die Erstellung
+ von persistenten Sicherungskopien.
+
+ \item |--no-depends| Normale Abhängigkeiten werden nicht aufgelöst.
+ \item |--no-depends-at-all| Bitte die |install| Aktion weiter oben
+ dazu konsultieren.
+ \end{description}
+\item |remove| \var{pkg}\ldots\
+ entfernt die angegebenen Pakete. Wird eine Paketgruppe entfernt
+ werden auch alle darin gelisteten Pakete entfernt, jedoch keine
+ anderen Paketgruppen die darin referenziert sind.
+ Wird ein normales Pakete (keine Paketgruppe) entfernt dann werden
+ darin referenzierte Pakete nie entfernt.
+
+ Options:
+ \begin{description}
+ \item |--no-depends| referenziert Pakete werden nicht entfernt.
+ \item |--no-depends-at-all| Bitte die |install| Aktion weiter oben
+ dazu konsultieren.
+ \item |--force|
+ tlmgr überprüft ob ein zu entfernendes Paket oder Paketgruppe
+ in irgendeinem anderen Paket oder Paketgruppe referenziert ist. Ist
+ dies so wird das Paket oder die Paketgruppe nicht entfernt
+ außer man gibt diese Option an.
+ \item |--dry-run|
+ Das Entfernen der Pakete wird nur simuliert.
+ \end{description}
+\item |backup| \var{pkg}\ldots\
+ Wird die Option |--clean| nicht angegeben, wird von den angegebenen
+ Paketen, oder von allen wenn |--all| angegeben ist, eine
+ Sicherungskopie gemacht. Diese Kopien werden in den Ordner der
+ entweder durch die Option |--backupdir| angegeben ist, oder durch
+ den in der Datenbank festgelegten Ordner bestimmt. Sollten beide
+ nicht angegeben sein oder nicht beschreibbar, werden keine
+ Sicherungskopien erstellt.
+
+ Wird |--clean| angegeben dann werden alte Sicherungskopien gelöscht.
+ Der Wert der zu erhaltenden Sicherungskopien wird entweder durch
+ einen optionalen Parameter zu |--clean=N| angegeben, oder durch den
+ in der Datenbank gespeicherte Option |autobackup|.
+
+\item |restore --backupdir |\var{dir} |[|\var{pkg} |[|\var{rev}|]]|\\
+ Wird \var{pkg} nicht angegeben (und daher auch kein \var{rev}), dann
+ werden alle vorhanden Sicherungskopien für alle Pakete aufgelistet.
+
+ Wird \var{pkg} angegeben aber kein \var{rev} dann werden alle
+ vorhandenen Sicherungskopien nach Revisionen für das Paket
+ aufgelistet.
+
+ Werden sowohl \var{pkg} als auch \var{rev} angegeben wird die
+ Sicherungskopie des Pakets in der angegebenen Revision installiert.
+
+ Die Option |--backupdir dir| gibt den Ordner an wo nach
+ Sicherungskopien gesucht wird.
+ Die Option |--dry-run| wird ebenso unterstützt, wie üblich.
+
+\item |arch |\var{operation} \var{arg}\ldots
+ Ist \var{operation} gleich |list| so werden alle an der
+ Installationsquelle vorhandenen Architekturen/Plattformen ausgegeben.
+
+ Ist \var{operation} gleich |add| so werden die Programme für die
+ angegebenen Architekturen installiert.
+
+ Die Option |--dry-run| wird ebenso unterstützt, wie üblich.
+\end{itemize}
+
+
+\subsection{Typische Anwendungsbeispiele des tlmgr}
+
+Im Folgenden werden wir einige typische Anwendungsszenaria des \tlmgr\
+vorstellen.
+
+\paragraph{Installation einer neuen Paketgruppe}
+
+Angenommen Sie haben das Schema |scheme-medium| installiert und
+realisieren dass die Trennmuster für einige Sprachen die Sie benutzen
+fehlen, z.B.\ Norwegisch. Zuerst verwenden Sie tlmgr um nach diesem
+Schlüsselwort zu suchen:
+\begin{lstlisting}
+$ tlmgr search --global norwegian
+tlmgr: installation location ...
+collection-langnorwegian - Norwegian
+hyphen-norwegian -
+\end{lstlisting}
+und dann installieren Sie die Paketgruppe:
+\begin{lstlisting}
+$ tlmgr install collection-langnorwegian
+tlmgr: installation location ...
+install: collection-langnorwegian
+install: hyphen-norwegian
+tlmgr: package log updated at .../tlmgr.log
+regenerating language.dat
+regenerating language.def
+\end{lstlisting}
+gefolgt von der Ausgabe der Neuerstellung aller Formate die entweder von
+|language.dat| oder |language.def| abhängen.
+(Falls die |formats| Option auf 0 geändert wurde in der lokalen Datenbank
+wird die Neuerstellung übersprungen. Die Voreinstellung ist dass Format
+jeweils erneuert werden.)
+
+\paragraph{Suche nach einem Paket}
+
+Sie wollen eine Einladung mit Absätzen in besonderen Formen setzten, aber
+Sie wissen nicht welches Paket man da verwenden könnte. Ein Aufruf von
+tlmgr hilft:
+\begin{lstlisting}
+$ tlmgr search paragraph
+\end{lstlisting}
+zeigt aber keine Ausgabe. Vielleicht ist nichts entsprechendes installiert?
+Also versuchen Sie eine Globalsuche:
+\lstset{breaklines}
+\begin{lstlisting}
+$ tlmgr search -global paragraph
+tlmgr: installation location ...
+ bigfoot - Footnotes for critical editions
+ edmargin - Multiple series of endnotes for critical editions
+ footmisc - A range of footnote options
+ genmpage - Generalization of LaTeX's minipages
+ hanging - Hanging paragraphs
+ ibycus-babel - Use the Ibycus 4 Greek font with Babel
+ insbox - A TeX macro for inserting pictures/boxes into paragraphs
+ layouts - Display various elements of a document's layout
+ lettrine - Typeset dropped capitals
+ lineno - Line numbers on paragraphs
+ lipsum - Easy access to the Lorem Ipsum dummy text
+ moresize - Allows font sizes up to 35.83pt
+ ncctools - A collection of general packages for LaTeX
+ paralist - Enumerate and itemize within paragraphs
+ picinpar - Insert pictures into paragraphs
+ plari - Typesetting stageplay scripts
+ seqsplit - Split long sequences of characters in a neutral way
+ shapepar - A macro to typeset paragraphs in specific shapes
+ vwcol - Variable-width multiple text columns
+\end{lstlisting}
+und hier ist es, |shapepar| scheint genau zu sein was Sie brauchen. Also
+sehen Sie sich genauer an was diese Paket ist:
+\begin{lstlisting}
+$ tlmgr show shapepar
+tlmgr: installation location ...
+Package: shapepar
+Category: Package
+ShortDesc: A macro to typeset paragraphs in specific shapes.
+LongDesc: \shapepar is a macro to typeset paragraphs in a specific shape.
+...
+Installed: No
+Collection:collection-latexextra
+\end{lstlisting}
+Nun, das schaut gut aus. Sie können nun entweder die ganze Paketgruppe
+installieren:
+\begin{lstlisting}
+$ tlmgr install collection-latexextra
+\end{lstlisting}
+was aber nicht nur |shapepar| sondern eine Unmenge anderer Pakete mitbringt,
+oder sie installieren nur dieses eine Paket und hoffen dass keine
+anderen Pakete notwendig sind:
+\begin{lstlisting}
+$ tlmgr install shapepar
+tlmgr: installation location ...
+install: shapepar
+tlmgr: package log updated at .../tlmgr.log
+running mktexlsr
+...
+\end{lstlisting}
+
+Diese Beispiele demonstrieren wie man nicht installierte Pakete findet
+und installiert. Die Voreinstellung des Installationsprogrammes ist
+jedoch das gesamte \tl\ zu installieren, d.h.\ alles was verfügbar ist
+wird auch installiert.
+
+\paragraph{Update der Installation}
+
+Nach der ersten Installation wollen Sie nun die neuesten Versionen der
+gesamten Pakete bekommen, doch sicherheitshalber vorher überprüfen
+was denn das heißt:
+\begin{lstlisting}
+$ tlmgr update --list
+tlmgr: installation location /mnt/cdrom
+Cannot load TeX Live database from /mnt/cdrom at .../tl/2008/bin/i386-linux/tlmgr line 1505, <TMP> line 1982.
+\end{lstlisting}
+Hmm, das scheint ein Fehler sich eingeschlichen zu haben, tlmgr versucht
+noch immer von der \acro{DVD} zu installieren, die Sie schon lange
+an einen Freund weitergegeben haben. Da sollte Sie nun zur
+Netzwerkinstallationsquelle übergehen, und das gleich für alle weiteren
+Aktionen als Voreinstellung speichern. Nur haben Sie schon wieder die
+Adresse vergessen! Glücklicherweise kann sich der \tlmgr\ daran erinnern
+und Sie brauchen ihm nur sagen dass er |ctan| verwenden soll:
+\begin{lstlisting}
+$ tlmgr option location ctan
+tlmgr: setting default installation location to http://mirror.ctan.org/systems/texlive/tlnet/2008
+\end{lstlisting}
+Ok, nun schauen wir mal was es so Neues gibt:
+\begin{lstlisting}
+$ tlmgr update --list
+tlmgr: installation location /src/TeX/texlive-svn/Master
+bin-texlive: local: 12181, source: 12269
+cc-pl: local: 7340, source: 12724
+latexmk: local: 12697, source: 12749
+mfpic4ode: local: 7340, source: 12734
+pkfix-helper: local: 12532, source: 12713
+scheme-minimal: local: 10129, source: 12703
+texlive.infra: local: 12186, source: 12729
+\end{lstlisting}
+Da sind ja einige Dinge die ein Update brauchen, tun wir das einmal:
+\begin{lstlisting}
+$ tlmgr update --all
+tlmgr: installation location ...
+Updates for tlmgr itself are present.
+===========================================
+Please update the packages bin-texlive and texlive.infra first, via either
+ tlmgr update bin-texlive texlive.infra
+or by getting the latest updater for Unix-ish systems:
+ http://mirror.ctan.org/systems/texlive/tlnet/2008/update-tlmgr-latest.sh
+and/or Windows systems:
+ http://mirror.ctan.org/systems/texlive/tlnet/2008/update-tlmgr-latest.exe
+Then continue with other updates.
+===========================================
+.../tl/2008/bin/x86_64-linux/tlmgr: Exiting, please read above warning.
+\end{lstlisting}
+Ja, dies sollte gemacht werden. \tlmgr\ verweigert die Operation wenn
+Updates für tlmgr oder die Infrastrukturpakete zur Verfügung stehen.
+Dies garantiert dass Fehler im \tlmgr\ nicht zu lange unbehoben bleiben.
+Also tun Sie das:
+\begin{lstlisting}
+$ tlmgr update bin-texlive texlive.infra
+tlmgr: installation location ...
+[1/2] update: bin-texlive (12181 -> 12269) ... running post remove action for bin-texlive
+running post install action for bin-texlive
+done
+[2/2] update: texlive.infra (12186 -> 12729) ... running post install action for texlive.infra
+done
+tlmgr: package log updated at .../tlmgr.log
+running mktexlsr
+...
+\end{lstlisting}
+Gut, scheint ja geklappt zu haben. Jetzt probieren wir das mit den
+Updates noch einmal:
+\begin{lstlisting}
+$ tlmgr update --list
+tlmgr: installation location ...
+cc-pl: local: 7340, source: 12724
+latexmk: local: 12697, source: 12749
+mfpic4ode: local: 7340, source: 12734
+pkfix-helper: local: 12532, source: 12713
+scheme-minimal: local: 10129, source: 12703
+\end{lstlisting}
+und das tatsächliche Upgrade:
+\begin{lstlisting}
+$ tlmgr update --all
+tlmgr: installation location ...
+[1/5] update: cc-pl (7340 -> 12724) ... done
+[2/5] update: latexmk (12697 -> 12749) ... done
+[3/5] update: mfpic4ode (7340 -> 12734) ... done
+[4/5] update: pkfix-helper (12532 -> 12713) ... done
+[5/5] update: scheme-minimal (10129 -> 12703) ... done
+tlmgr: package log updated at .../tlmgr.log
+running mktexlsr ...
+running updmap-sys ...
+\end{lstlisting}
+
+\paragraph{Einstellen des Papierformats}
+
+Sie übersiedeln nach Japan und hätten gerne \emph{letter} als
+voreingestelltes Papierformat, nichts leichter als das:
+\begin{lstlisting}
+$ tlmgr paper letter
+\end{lstlisting}
+und die wichtigsten Programme werden ab nun \emph{letter} Papierformat
+verwenden.
+
+\section{Die graphische Oberfläche von tlmgr}
+
+Um die meisten Windows-Benutzer und einige Unix-Benutzer glücklich(er)
+zu machen gibt es für tlmgr auch eine graphische Oberfläche, die wie
+die des Installationsprogrammes in Perl/Tk geschrieben ist.
+Bisher ist jedoch nicht die volle Funktionalität der Kommandozeilenversion
+von tlmgr in der graphischen Oberfläche abgebildet.
+
+Die Oberfläche hat mehrere Fenster mit verschiedenen Funktionalitäten:
+Installation, Update, Entfernen von Paketen, Entfernen von \tl\ als
+Ganzes, Unterstützung verschiedener Architekturen, und Konfiguration.
+
+Die graphische Oberfläche wird mit |tlmgr gui| oder |tlmgr --gui action|
+gestartet. Im letzeren Fall versucht tlmgr gleich das Fenster das zur
+angegebenen Aktion passt anzuzeigen.
+
+\subsection{Das Installationsfenster}
+
+Das erste Fenster das man normalerweise sieht ist das Installationsfenster
+(fig.~\ref{fig:gui:install}).
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-install-de.png}}
+ \caption{\tlmgr\ \acro{GUI} Installationsfenster}
+ \label{fig:gui:install}
+\end{figure}
+
+Am oberen Ende sieht man die aktuelle Installationsquelle, die entweder
+über die Kommandozeilenoption |--location| angegeben wurde oder aus
+der Datenbank gelesen wird. Die entfernte Datenbank wird \emph{nicht}
+automatisch geladen, Sie müssen die \button{Load} Knopf drücken, oder
+den \button{Change} Knopf um vorher eine andere Installationsquelle
+anzugeben.
+
+Darunter sieht man die Liste der an der Installationsquelle verfügbaren
+Pakete auf der linken Seite, zuerst die Paketgruppen und Schemata, danach
+alle normalen Pakete in alphabetischer Ordnung. Durch Eingabe von Zeichen
+in das Eingabefeld neben \button{Suche} hüpft die Selektion sofort zum ersten
+passenden Paket. Der Knopf \button{Nächster} erlaubt es zum nächsten
+passenden Eintrag zu springen.
+
+Nachdem ein Paket auf der linken Seite selektiert wurde erscheint die
+Kurz- und Langbeschreibung des Paketes im rechten Teil des Fensters.
+
+Darunter gibt es einen Knopf um die selektierten Pakete zu installieren.
+Weiters zwei Auswahlschalter die es erlaubt die Installations zu
+erzwingen (falls Updates für tlmgr selbst vorhanden sind wird keinerlei
+Aktion durchgeführt), und einen Auswahlschalter der es erlaubt Pakete
+ohne Abhängigkeiten zu installieren.
+
+\subsection{Das Aktualisierungsfenster}
+
+Der Aktualisierungsfenster ähnelt dem Installationsfenster, mit dem
+Unterschied dass nur die Pakete angezeigt werden für die Aktualisierungen
+zur Verfügung stehen. Der Aktionsbereich im rechten unteren Eck erlaubt
+entweder alle Pakete zu aktualisieren, oder nur die selektierten.
+Wieder kann die Aktualisierung erzwungen werden falls neuere Versionen
+von tlmgr selbst vorhanden sind.
+
+In Abb.~\ref{fig:gui:update} ist der Aktualisierungsfenster sehen in dem für
+einige Pakete Aktualisierungen verfügbar sind.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-update-de.png}}
+ \caption{\tlmgr\ \acro{GUI} Aktualisierungsfenster}
+ \label{fig:gui:update}
+\end{figure}
+
+\subsection{Das Entfernfenster}
+
+Das Entfernfenster in Abb.~\ref{fig:gui:remove}
+ist ebenfalls dem Installationsfenster ähnlich, wobei
+die Liste aller installierten Pakete angezeigt werden. Das Aktionsfeld
+enthält diesmal einen Knopf um alle selektierten Pakete zu entfernen, und
+zwei Auswahlschalter um die Entfernung zu erzwingen (entsprechend
+der |--force| Kommandozeilenoption) und Abhängigkeiten zu ignorieren
+(entsprechend der |--no-depends| Kommandozeilenoption),
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-remove-de.png}}
+ \caption{\tlmgr\ \acro{GUI} Entfernfenster}
+ \label{fig:gui:remove}
+\end{figure}
+
+\subsection{Das Deinstallationsfenster}
+
+Dieses Fenster enthält nur einen Knopf der es erlaubt \tl\ vollständig
+zu entfernen. Auf Windowssystemen ist dieser Knopf durch einen Text
+ersetzt der darauf hinweist dass \cmd{Programme} aus der Systemsteuerung
+verwendet werden soll.
+
+\subsection{Das Architekturfenster}
+
+Unter Unix erlaubt \tl\ die Installation von Programmen für verschiedene
+Plattformen, d.h.\ für Architektur--Betriebssystem Kombinationen. Dies
+erlaubt die Verteilung einer \tl\ Installation in einem inhomogenen
+lokalen Netzwerk, z.B.\ via \acro{NFS}, siehe Abb.~\ref{fig:gui:arch}.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-arch-de.png}}
+ \caption{\tlmgr\ \acro{GUI} Architekturfenster}
+ \label{fig:gui:arch}
+\end{figure}
+
+Dieses Fenster listet die verfügbaren Architekturen an der aktuellen
+Installationsquelle auf, und erlaubt es neue Architekturen durch
+drücken des Knopfes \button{Änderungen anwenden} zu installieren.
+
+Während das hinzufügen von Architekturen unterstützt wird, ist das
+entfernen von derzeit installierten Architekturen (noch)
+nicht unterstützt. Weiters ist das gesamte Fenster unter Windows
+nicht vorhanden, da Windows keine symbolischen Verweise (symlinks)
+unterstützt.
+
+\subsection{Das Konfigurationsfenster}
+
+Dieses Fenster erlaubt es dem Benutzer sehr komfortabel diverse
+in der Datenbank gespeicherten Optionen zu überprüfen und zu ändern,
+siehe Abb.~\ref{fig:gui:option}.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-options-de.png}}
+ \caption{\tlmgr\ \acro{GUI} Konfigurationsfenster}
+ \label{fig:gui:option}
+\end{figure}
+
+Im oberen Teil werden die in der Datenbank gespeicherten Optionen angezeigt,
+und können jeweils mit dem \button{Ändern} geändert werden.
+
+Im unteren linken Teil wird das voreingestellte Papierformat für alle
+Programme angezeigt, und kann mit dem Knöpfen \button{A4} und
+\button{letter} für alle Programme auf einmal geändert werden, oder
+mit den Knöpfen \button{Ändern} für jedes Programm einzeln.
+
+Im unteren rechten Teil sind einige Knöpfe die hin und wieder nützlich
+sind, nämlich um die Dateilisten (ls-R) neu zu erstellen, alle Formate
+neu zu erstellen, und die Liste der Outline Schriftarten (|updmap-sys|).
+
+\subsection{Das Logfenster}
+
+Neben dem sich ändernden Hauptfenster gibt es ein permanentes Fenster
+das die Ausgabe, die tlmgr auf die Konsole schreibt, auch in diesem
+Fenster anzeigt, siehe Abb.~\ref{fig:gui:log}.
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-log-de.png}}
+ \caption{\tlmgr\ \acro{GUI} Logfenster}
+ \label{fig:gui:log}
+\end{figure}
+
+\section{Was gibt es noch (neues)?}
+
+Neben der vollkommen überarbeiteten Infrastruktur und den für Benutzer
+sichtbaren Änderungen des neuen Installationsprogrammes und
+des \tlmgr wurde wie jedes Jahr alle Pakete auf den neuesten Stand
+gebracht (und auch laufend aktualisiert). Derzeit stehen circa~1400
+normale Pakete wie \LaTeX\ Styles oder Fontpakete zur Verfügung, und
+zusätzlich knapp~300 andere Pakete, größtenteils Dokumentation und
+einige wenige \tl\ interne Pakete.
+
+Das wichtigeste neue Programm ist sicher die neue \TeX-Engine Lua\TeX\
+(\url{http://luatex.org}). Neben einem vollkommen neuen Grad an
+Flexibilität stellt Lua\TeX\ die Scriptsprache Lua bereit, die z.\,B.\ in
+|texdoc| verwendet wird.
+
+\subsection{Windows-spezifische Eigenheiten}
+
+Um als halbwegs komplett unter Windows zu gelten bringt jede \tl\ Installation
+noch einige zusätzliche Pakete für Windows mit:
+\begin{description}
+\item[Perl und Ghostscript.] Da sowohl Perl als auch Ghostscript in vielen
+ Programmen verwendet wird bringt \tl\ `versteckte' Kopien dieser
+ Programme mit. Die \tl-Programme wissen wo sie Perl und Ghostscript
+ finden können, aber diese versteckten Versionen verraten ihre Anwesenheit
+ sonst nicht durch Umgebungsvariablen oder Registrierungseinträge.
+ Sie sind auch kein Ersatz für eine vollständige Distribution dieser
+ Programme und liefern nur die in \tl\ verwendete Funktionalität.
+\item[Programme für die Kommandozeile.]
+ \tl\ installiert nun auch Portierungen von üblichen Unix-Programmen
+ die zusammen mit den anderen \tl-Programmen installiert werden. Unter
+ den installierten Programmen sind \cmd{gzip}, \cmd{chktex},
+ \cmd{jpeg2ps}, \cmd{unzip}, \cmd{wget} und die Kommandozeilenprogramme
+ der \cmd{xpdf} Suite. (Der \cmd{xpdf} Betrachter selber wird jedoch
+ nicht auf Windows installiert, aber der Sumatra \acro{PDF} Betrachter
+ basiert auf \cmd{xpdf}:
+ \url{http://blog.kowalczyk.info/software/sumatrapdf}.)
+\item[\texttt{fc-cache}] ist ein weiteres Kommandozeilenprogramm
+ dass \XeTeX\ erlaubt die installierten Schriftarten effizienter
+ zu handhaben.
+\item[PS\_View.] Als Neuerung dieses Jahr wird PS\_View installiert,
+ ein PostScript Betrachter der freie Software ist, siehe
+ Abb.~\ref{fig:psview}. Es unterstützt auch die Anzeige von \acro{PDF}
+ Dateien und ist extrem schnell und hat eine Vielzahl an Funktionen.
+ Bitte kontaktieren Sie uns für Vorschläge und Fehlermeldungen, dieses
+ Programm ist in aktiver Entwicklung.
+\item[dviout] Dieser \acro{DVI} Betrachter wurde auf der \acro{DVD} nur
+ im |support| Ordner ausgeliefert, aber er wird durch Aktualisierungen
+ über das Netzwerk installiert, siehe Abb.~\ref{fig:dviout}.
+\end{description}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{psview.png}}
+ \caption{PS\_View erlaubt hohe Vergrößerungen und unterstützt \acro{PDF}}
+ \label{fig:psview}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \resizebox{0.8\columnwidth}{!}{\includegraphics{dviout.png}}
+ \caption{DVIout auf Windows}
+ \label{fig:dviout}
+\end{figure}
+
+\section{Schlussbemerkungen und andere Informationsquellen}
+
+Der \tlmgr\ unterliegt schneller Entwicklung, und das graphische
+Frontend noch viel mehr. Wir versuchen immer mehr Funktionalität in
+tlmgr einzubauen und auch in der graphischen Oberfläche abzubilden.
+Bitte melden Sie jegliche Abnormalitäten an uns unter
+\url{tex-live@tug.org}.
+
+Wie mit jedem Projekt das auf freiwillige Mitarbeit beruht leiden wir
+an einem nur sehr kleinen Pool an Programmieren für die zentrale
+Infrastruktur und den \tlmgr. Praktisch die gesamte Infrastruktur,
+der gesamte tlmgr und das graphische Frontend wurde vom Autor mit nur
+geringen Beiträgen anderer Autoren programmiert. Jeder der Perl
+beherrscht ist herzliche eingeladen uns zu unterstützen, es gibt
+lange Listen von zu erledigenden Dingen für den \tlmgr,
+ganz zu schweigen von \tl\ als Ganzes.
+
+Wenn Sie mehr Informationen zu \tl\ suchen ist die erste Adresse
+\url{http://tug.org/texlive/} und die entsprechende Dokumentationsseite
+\url{http://tug.org/texlive/doc.html}.
+
+Die Liste der Personen denen Dank gebührt ist viel zu lange um hier
+inkludiert zu werden, sie ist in der online \tl\ Dokumentation, Kapitel~9
+(Danksagungen) zu finden. Natürlich darf ein Name hier nicht fehlen und
+das ist Karl Berry, der mit seinem unglaublichen Enthusiasmus und seiner
+permanenten Unterstützung (und seiner zur gegebenen Zeit kritischen Stimme)
+die Ausgabe von \tl~2008 überhaupt ermöglicht hat.
+
+\bibliography{tlmgr-article}
+
+%
+% END OF ARTICLE
+%
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-arch-de.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-arch-de.png
new file mode 100644
index 00000000000..ab8e44c4120
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-arch-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-arch.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-arch.png
new file mode 100644
index 00000000000..410dc26c419
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-arch.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-install-de.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-install-de.png
new file mode 100644
index 00000000000..9c077767592
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-install-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-install.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-install.png
new file mode 100644
index 00000000000..6151039e056
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-install.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-log-de.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-log-de.png
new file mode 100644
index 00000000000..771181af0a5
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-log-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-options-de.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-options-de.png
new file mode 100644
index 00000000000..287d36cccac
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-options-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-options.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-options.png
new file mode 100644
index 00000000000..d9051c72a79
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-options.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-remove-de.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-remove-de.png
new file mode 100644
index 00000000000..652cf017d95
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-remove-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-remove.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-remove.png
new file mode 100644
index 00000000000..163b75ae866
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-remove.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-update-de.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-update-de.png
new file mode 100644
index 00000000000..cf8c04e49c6
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-update-de.png
Binary files differ
diff --git a/Master/tlpkg/doc/articles/guit08/tlmgrgui-update.png b/Master/tlpkg/doc/articles/guit08/tlmgrgui-update.png
new file mode 100644
index 00000000000..cc15c5cb218
--- /dev/null
+++ b/Master/tlpkg/doc/articles/guit08/tlmgrgui-update.png
Binary files differ