public inbox for gentoo-pms@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
@ 2009-04-12 19:14 Christian Faulhammer
  2009-04-12 19:36 ` Ciaran McCreesh
  2009-04-12 21:25 ` David Leverton
  0 siblings, 2 replies; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-12 19:14 UTC (permalink / raw
  To: gentoo-pms


[-- Attachment #1.1: Type: text/plain, Size: 506 bytes --]

Hi,

on top of commit b1b3feb72b372d21d5d2443b7f7e9d0da2d84f29 in the eapi-3
branch:

0001: Text body setting with bigger outer margin
0002: pms.cls, with report.cls and changing of label display.
0003: Fix a label. (No, I won't rebase it, as the label has been
created by Ciaran)
0004: The complete new EAPI 3 aware cheat sheet.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Set-text-size-manually-to-generate-larger-right-marg.patch --]
[-- Type: text/x-patch, Size: 986 bytes --]

From 067eab09af0c6b52dc495ce257cb65c6ea8944ec Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Sun, 12 Apr 2009 19:23:09 +0200
Subject: [PATCH] Set text size manually to generate larger right margin

---
 pms.tex |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/pms.tex b/pms.tex
index 82318fd..daa19c0 100644
--- a/pms.tex
+++ b/pms.tex
@@ -23,7 +23,7 @@
   marginnote
 }
 \usepackage[orig,english]{isodate}
-\usepackage[DIV13]{typearea}
+\usepackage{typearea}
 \usepackage[position=top]{caption}
 \usepackage[utf8]{inputenc}
 
@@ -125,6 +125,10 @@
 \pagestyle{myheadings}
 \markboth{\scshape Package Manager Specification}{\scshape Package
   Manager Specification}
+% This is some kind of hack.  We set the proportions of the text area
+% and then move it 20mm to the left to increase the right (outer)
+% margin.
+\areaset[-20mm]{400pt}{700pt}
 
 \begin{document}
 \maketitle
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Factor-out-pms.cls-for-better-readability-of-source.patch --]
[-- Type: text/x-patch, Size: 9579 bytes --]

From 51194763dbcf4a117863b289a313b592868d4eff Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Sun, 12 Apr 2009 19:31:34 +0200
Subject: [PATCH] Factor out pms.cls for better readability of source

Use small capitals for references and margin labels.
Go back to report class (we want one-sided layout).
---
 Makefile |    2 +-
 pms.cls  |  142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pms.tex  |  132 +---------------------------------------------------------
 3 files changed, 144 insertions(+), 132 deletions(-)
 create mode 100644 pms.cls

diff --git a/Makefile b/Makefile
index 8b49437..e9c3dd4 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ clean :
 	rm -f *~ *.pdf *.dvi *.log *.aux *.bbl *.blg *.toc *.lol *.loa *.lox \
 	    *.lot *.out *.html *.css *.png *.4ct *.4tc *.idv *.lg *.tmp *.xref vc.tex || true
 
-LATEXFILES = $(shell ls *.tex)
+LATEXFILES = $(shell ls *.tex) pms.cls
 LISTINGFILES = $(shell ls *.listing)
 SOURCEFILES = $(LATEXFILES) $(LISTINGFILES)
 
diff --git a/pms.cls b/pms.cls
new file mode 100644
index 0000000..ca0874c
--- /dev/null
+++ b/pms.cls
@@ -0,0 +1,142 @@
+\NeedsTeXFormat{LaTeX2e}%
+\newcommand{\ClassToLoad}{report}
+\ProvidesClass{pms}[2009/04/04]
+\DeclareOption*{%
+    \PassOptionsToClass{\CurrentOption}{\ClassToLoad}
+}
+\PassOptionsToClass{a4paper}{\ClassToLoad}
+\ProcessOptions\relax
+\LoadClass{\ClassToLoad}
+\PassOptionsToPackage{T1}{fontenc}
+\PassOptionsToPackage{orig,english}{isodate}
+\PassOptionsToPackage{position=top}{caption}
+\PassOptionsToPackage{utf8}{inputenc}
+% algorithmic and algorithm to be loaded last to avoid failures
+\RequirePackage{%
+  fontenc,
+  isodate,
+  typearea,
+  caption,
+  inputenc,
+  appendix,
+  booktabs,
+  color,
+  enumitem,
+  float,
+  fullpage,
+  graphicx,
+  hyperref,
+  ifthen,
+  longtable,
+  lscape,
+  marginnote,
+  paralist,
+  parskip,
+  verbatim,
+  algorithm,
+  algorithmic
+}
+\ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
+  Specification, loaded baseclass: \ClassToLoad\MessageBreak}
+\input{vc}
+
+\newboolean{TEX4HT-HACKS}
+\ifx\HCode\undefined
+    \RequirePackage{mathptmx,
+      courier
+    }
+    \RequirePackage[scaled=.90]{helvet}
+    \setboolean{TEX4HT-HACKS}{false}
+\else
+    \setboolean{TEX4HT-HACKS}{true}
+\fi
+
+\floatstyle{plaintop}
+\newfloat{listing}{tbp}{lol}[chapter]
+\floatname{listing}{Listing}
+\newcommand{\listoflistings}{\listof{listing}{Listings}}
+\newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
+\newcommand{\compactfeatureref}[1]{#1~p\pageref{feat:#1}}
+\newcommand{\featurelabel}[1]{\marginnote{\framebox{\textsc{#1}}}\label{feat:#1}}
+\bibliographystyle{plainurl}
+
+\renewcommand{\t}[1]{\texttt{#1}}
+\renewcommand{\i}[1]{\textit{#1}}
+\newcommand{\e}[1]{\emph{#1}}
+\renewcommand{\b}[1]{\textbf{#1}}
+\newcommand{\note}[1]{\paragraph{Note:} #1}
+
+\definecolor{deepblue}{rgb}{0.0, 0.2, 0.7}
+\definecolor{deeppurple}{rgb}{0.7, 0.0, 0.8}
+
+\newboolean{ENABLE-ALL-OPTIONS}
+\newboolean{ENABLE-KDEBUILD}
+
+%%% Enable the below option if you'd like to see both sides of KDEBUILD conditionals shown in
+%%% different colours. Disable it to either fully enable or fully disable KDEBUILD.
+%%% Not compatible with HTML output.
+\setboolean{ENABLE-ALL-OPTIONS}{false}
+
+%%% Enable the below if you'd like to see KDEBUILD things.
+\setboolean{ENABLE-KDEBUILD}{true}
+
+\ifthenelse{\boolean{ENABLE-ALL-OPTIONS}\and\not\boolean{TEX4HT-HACKS}}
+{
+    \newcommand{\IFKDEBUILDELSE}[2]{{\def\mycolour{\color{deepblue}}\mycolour #1}{\def\mycolour{\color{deeppurple}}\mycolour #2}}
+    \newcommand{\IFANYKDEBUILDELSE}[2]{#1}
+    \newcommand{\IFKDEBUILDCOLOUR}[1]{{\def\mycolour{\color{deepblue}}\mycolour #1}}
+}{
+    \ifthenelse{\boolean{ENABLE-KDEBUILD}}
+    {
+        \newcommand{\IFKDEBUILDELSE}[2]{#1}
+        \newcommand{\IFANYKDEBUILDELSE}[2]{#1}
+        \newcommand{\IFKDEBUILDCOLOUR}[1]{#1}
+    }{
+        \newcommand{\IFKDEBUILDELSE}[2]{#2}
+        \newcommand{\IFANYKDEBUILDELSE}[2]{#2}
+        \newcommand{\IFKDEBUILDCOLOUR}[1]{#1}
+    }
+}
+
+\newenvironment{centertable}[1]%
+{
+  \begin{table}
+    \ifx\mycolour\undefined\else\mycolour\fi
+    \centering
+    \caption{#1}
+  }{
+  \end{table}
+}
+
+\hypersetup{%
+  urlcolor=black,
+  colorlinks=true,
+  citecolor=black,
+  linkcolor=black,
+  pdftitle={Package Manager Specification},
+  pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
+  pdfcreator={pdfLaTeX and hyperref},
+  pdfsubject={Defining a feature set for package managers in the
+    Gentoo world},
+  pdflang={en},
+  pdfkeywords={Gentoo, package manager, specification},
+  pdfproducer={pdfLaTeX and hyperref},
+}
+\title{Package Manager Specification}
+\author{Stephen P. Bennett\\\url{spb@exherbo.org}
+\and Ciaran McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
+% Make the build succeed even when no Git repository is available
+\ifthenelse{\equal{\VCDateISO}{}}
+{
+  \date{Generated on: \today}
+}{
+  \date{\printdate{\VCDateISO}}
+}
+
+\pagestyle{myheadings}
+\markboth{\scshape Package Manager Specification}{\scshape Package
+  Manager Specification}
+% This is some kind of hack.  We set the proportions of the text area
+% and then move it 30mm to the left to increase the right (outer)
+% margin.
+\areaset[-30mm]{400pt}{700pt}
diff --git a/pms.tex b/pms.tex
index daa19c0..8426706 100644
--- a/pms.tex
+++ b/pms.tex
@@ -1,134 +1,4 @@
-\documentclass[a4paper]{book}
-\input{vc}
-% Definition of fonts, choose T1 encoding for fonts
-\usepackage[T1]{fontenc}
-%
-% algorithmic and algorithm to be loaded last to avoid failures
-\usepackage{appendix,
-  booktabs,
-  color,
-  enumitem,
-  float,
-  fullpage,
-  graphicx,
-  hyperref,
-  ifthen,
-  longtable,
-  paralist,
-  parskip,
-  verbatim,
-  algorithm,
-  algorithmic,
-  lscape,
-  marginnote
-}
-\usepackage[orig,english]{isodate}
-\usepackage{typearea}
-\usepackage[position=top]{caption}
-\usepackage[utf8]{inputenc}
-
-\newboolean{TEX4HT-HACKS}
-\ifx\HCode\undefined
-    \usepackage{mathptmx,
-      courier
-    }
-    \usepackage[scaled=.90]{helvet}
-    \setboolean{TEX4HT-HACKS}{false}
-\else
-    \setboolean{TEX4HT-HACKS}{true}
-\fi
-
-\floatstyle{plaintop}
-\newfloat{listing}{tbp}{lol}[chapter]
-\floatname{listing}{Listing}
-\newcommand{\listoflistings}{\listof{listing}{Listings}}
-
-\bibliographystyle{plainurl}
-
-\renewcommand{\t}[1]{\texttt{#1}}
-\renewcommand{\i}[1]{\textit{#1}}
-\newcommand{\e}[1]{\emph{#1}}
-\renewcommand{\b}[1]{\textbf{#1}}
-\newcommand{\note}[1]{\paragraph{Note:} #1}
-
-\newcommand{\featureref}[1]{\e{#1} on page~\pageref{feat:#1}}
-\newcommand{\compactfeatureref}[1]{#1~p\pageref{feat:#1}}
-\newcommand{\featurelabel}[1]{\marginnote{\framebox{#1}}\label{feat:#1}}
-
-\definecolor{deepblue}{rgb}{0.0, 0.2, 0.7}
-\definecolor{deeppurple}{rgb}{0.7, 0.0, 0.8}
-
-\newboolean{ENABLE-ALL-OPTIONS}
-\newboolean{ENABLE-KDEBUILD}
-
-%%% Enable the below option if you'd like to see both sides of KDEBUILD conditionals shown in
-%%% different colours. Disable it to either fully enable or fully disable KDEBUILD.
-%%% Not compatible with HTML output.
-\setboolean{ENABLE-ALL-OPTIONS}{false}
-
-%%% Enable the below if you'd like to see KDEBUILD things.
-\setboolean{ENABLE-KDEBUILD}{true}
-
-\ifthenelse{\boolean{ENABLE-ALL-OPTIONS}\and\not\boolean{TEX4HT-HACKS}}
-{
-    \newcommand{\IFKDEBUILDELSE}[2]{{\def\mycolour{\color{deepblue}}\mycolour #1}{\def\mycolour{\color{deeppurple}}\mycolour #2}}
-    \newcommand{\IFANYKDEBUILDELSE}[2]{#1}
-    \newcommand{\IFKDEBUILDCOLOUR}[1]{{\def\mycolour{\color{deepblue}}\mycolour #1}}
-}{
-    \ifthenelse{\boolean{ENABLE-KDEBUILD}}
-    {
-        \newcommand{\IFKDEBUILDELSE}[2]{#1}
-        \newcommand{\IFANYKDEBUILDELSE}[2]{#1}
-        \newcommand{\IFKDEBUILDCOLOUR}[1]{#1}
-    }{
-        \newcommand{\IFKDEBUILDELSE}[2]{#2}
-        \newcommand{\IFANYKDEBUILDELSE}[2]{#2}
-        \newcommand{\IFKDEBUILDCOLOUR}[1]{#1}
-    }
-}
-
-\newenvironment{centertable}[1]%
-{
-  \begin{table}
-    \ifx\mycolour\undefined\else\mycolour\fi
-    \centering
-    \caption{#1}
-  }{
-  \end{table}
-}
-
-\hypersetup{%
-  urlcolor=black,
-  colorlinks=true,
-  citecolor=black,
-  linkcolor=black,
-  pdftitle={Package Manager Specification},
-  pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
-  pdfcreator={pdfLaTeX and hyperref},
-  pdfsubject={Defining a feature set for package managers in the
-    Gentoo world},
-  pdflang={en},
-  pdfkeywords={Gentoo, package manager, specification},
-  pdfproducer={pdfLaTeX and hyperref},
-}
-\title{Package Manager Specification}
-\author{Stephen P. Bennett\\\url{spb@exherbo.org}
-\and Ciaran McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
-% Make the build succeed even when no Git repository is available
-\ifthenelse{\equal{\VCDateISO}{}}
-{
-  \date{Generated on: \today}
-}{
-  \date{\printdate{\VCDateISO}}
-}
-
-\pagestyle{myheadings}
-\markboth{\scshape Package Manager Specification}{\scshape Package
-  Manager Specification}
-% This is some kind of hack.  We set the proportions of the text area
-% and then move it 20mm to the left to increase the right (outer)
-% margin.
-\areaset[-20mm]{400pt}{700pt}
+\documentclass{pms}
 
 \begin{document}
 \maketitle
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Change-label-for-controllable-compression-as-it-is-t.patch --]
[-- Type: text/x-patch, Size: 2533 bytes --]

From 54ee23729925b4d44d3e762e916865d1d275472e Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Sun, 12 Apr 2009 19:52:44 +0200
Subject: [PATCH] Change label for controllable compression as it is too long

---
 eapi-differences.tex |    6 +++---
 pkg-mgr-commands.tex |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 1557108..ba6e6ca 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -247,10 +247,10 @@ Most utilities die & \compactfeatureref{die-on-failure} & No & No &
     \IFKDEBUILDCOLOUR{Yes} \\
 }{}
 
-Controllable compression & \compactfeatureref{controllable-compression} & No & No &
+Controllable compression & \compactfeatureref{controllable-compress} & No & No &
     \IFANYKDEBUILDELSE{\IFKDEBUILDCOLOUR{No} &}{} No & Yes \\
 
-\t{docompress} & \compactfeatureref{controllable-compression} & No & No &
+\t{docompress} & \compactfeatureref{controllable-compress} & No & No &
     \IFANYKDEBUILDELSE{\IFKDEBUILDCOLOUR{No} &}{} No & Yes \\
 
 \t{unpack -{}-if-compressed}? & \compactfeatureref{unpack-if-compressed} & No & No &
@@ -335,7 +335,7 @@ EAPI 3 is EAPI 2 with the following changes:
 \item \t{DEFINED\_PHASES} support is mandatory, \featureref{defined-phases}.
 \item \t{PROPERTIES} support is mandatory, \featureref{properties}.
 \item Default \t{src\_install} no longer a no-op, \featureref{src-install-3}.
-\item Controllable compression and \t{docompress}, \featureref{controllable-compression}.
+\item Controllable compression and \t{docompress}, \featureref{controllable-compress}.
 \item \t{dodoc -r} support, \featureref{dodoc}.
 \item \t{doins} supports symlinks, \featureref{doins}.
 \item \t{||~(~use?~(~)~)} is forbidden, \featureref{any-use}.
diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d26388d..6f5f70d 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -668,7 +668,7 @@ already exist. Failure behaviour is EAPI dependent as per section~\ref{sec:failu
 
 \subsubsection{Commands affecting install compression}
 
-\featurelabel{controllable-compression}
+\featurelabel{controllable-compress}
 In EAPIs listed in table~\ref{tab:compression-table} as supporting controllable compression, the
 package manager may optionally compress a subset of the files under the \t{D} directory. To control
 which directories may or may not be compressed, the package manager shall maintain two lists:
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.5: 0004-Desk-reference-for-quick-look-up.patch --]
[-- Type: text/x-patch, Size: 11037 bytes --]

From 951b015ca45a42ddfa363b54fc1fe3284c3d36ae Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Sun, 12 Apr 2009 20:01:02 +0200
Subject: [PATCH] Desk reference for quick look-up

This contains a short summary of all EAPI features so far, similar to
appendix E of PMS, but with more information.
---
 Makefile                       |    8 ++-
 cheatsheet/eapi_cheatsheet.tex |  175 ++++++++++++++++++++++++++++++++++++++++
 credits.tex                    |    3 +-
 pms.cls                        |    1 +
 pms.tex                        |    1 +
 5 files changed, 185 insertions(+), 3 deletions(-)
 create mode 100644 cheatsheet/eapi_cheatsheet.tex

diff --git a/Makefile b/Makefile
index e9c3dd4..b585411 100644
--- a/Makefile
+++ b/Makefile
@@ -5,13 +5,14 @@ clean :
 	rm -f *~ *.pdf *.dvi *.log *.aux *.bbl *.blg *.toc *.lol *.loa *.lox \
 	    *.lot *.out *.html *.css *.png *.4ct *.4tc *.idv *.lg *.tmp *.xref vc.tex || true
 
-LATEXFILES = $(shell ls *.tex) pms.cls
+LATEXFILES = $(shell find -name '*.tex') pms.cls
 LISTINGFILES = $(shell ls *.listing)
 SOURCEFILES = $(LATEXFILES) $(LISTINGFILES)
 
-pms.pdf: $(SOURCEFILES) pms.bbl vc.tex
+pms.pdf: $(SOURCEFILES) pms.bbl vc.tex eapi_cheatsheet.pdf
 	pdflatex pms
 	pdflatex pms
+	pdflatex cheatsheet/eapi_cheatsheet
 	pdflatex pms
 
 pms.html: $(SOURCEFILES) pms.bbl
@@ -31,6 +32,9 @@ pms.bbl: pms.bib pms.tex vc.tex
 	latex pms
 	bibtex pms
 
+eapi_cheatsheet.pdf: vc.tex
+	pdflatex cheatsheet/eapi_cheatsheet
+
 vc.tex: pms.tex
 	/bin/sh ./vc
 
diff --git a/cheatsheet/eapi_cheatsheet.tex b/cheatsheet/eapi_cheatsheet.tex
new file mode 100644
index 0000000..42db4ca
--- /dev/null
+++ b/cheatsheet/eapi_cheatsheet.tex
@@ -0,0 +1,175 @@
+\documentclass[a4paper,notumble]{leaflet}
+\input{vc}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{
+  url,
+  hyperref,
+  listings,
+  ifthen,
+  xr-hyper
+}
+\usepackage[orig,english]{isodate}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\version}{0.2}
+\renewcommand{\familydefault}{\sfdefault}
+\urlstyle{sf}
+\externaldocument{pms}
+
+\title{EAPI Cheat Sheet}
+\author{Christian Faulhammer\thanks{fauli@gentoo.org}}
+\ifthenelse{\equal{\VCDateISO}{}}
+{
+  \date{Version \version{}, generated on: \\\today}
+}{
+  \date{Version \version\\\printdate{\VCDateISO}}
+}
+\CutLine*{1}
+\CutLine*{3}
+\CutLine*{4}
+\CutLine*{6}
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+\begin{abstract}
+  This overview is meant for quick reference of the main EAPI features
+  found in Gentoo.  It is intended for everyone having to write
+  ebuilds regularly.  It is neither a full ebuild reference nor
+  complete regarding EAPI changes.  For the latter, refer to the
+  official Package Manager
+  specification\footnote{\url{http://www.gentoo.org/proj/en/qa/pms/}}.
+
+  Official EAPIs are consecutively numbered (other characters are
+  allowed though) and do usually stack, meaning that an EAPI contains
+  all features found in the previous one.  This is no requirement as
+  two EAPIs can in theory be totally different from one another, but
+  for ease of use this is not wanted for the official EAPIs.
+  Situations where this is not the case will be noted in the
+  appropriate sections.
+
+  Please report mistakes or enhancements to this document via the
+  Gentoo bug tracking system\footnote{\url{http://bugs.gentoo.org/}}
+  to the original author or the PMS team.
+
+  This document is released under the Creative Commons
+  Attribution-Share Alike 3.0
+  Licence\footnote{\url{http://creativecommons.org/licenses/by-sa/3.0/}}.
+\end{abstract}
+\section{EAPI 0}
+\label{sec:cs:eapi0}
+If there is no EAPI explicitely specified, EAPI 0 is assumed.
+Currently there is no full specification what EAPI 0 includes.
+Portage, official ebuild documentation and existing ebuilds set the
+standard here, although obvious errors are still errors.
+\newpage
+\section{EAPI 1}
+\label{sec:cs:eapi1}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi1-additions}
+\begin{description}
+\item[IUSE defaults] An USE flag can be marked as mandatory (if not
+  disabled explicitely by user configuration) with a \code{+} sign in
+  front.
+\item[Named slot dependencies] Dependencies can explicitely request a
+  specific slot by using the \code{dev-libs/foo:SLOT} syntax.
+\end{description}
+\section{EAPI 2 (2008-09-25)}
+\label{sec:cs:eapi2}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi2-additions}
+\begin{description}
+\item[\code{SRC\_URI} arrows] Allows redirection of upstream file
+  naming scheme by using an "arrow" (\code{->}) to a new file name in
+  DISTDIR.
+\item[USE dependencies] Dependencies can be specified to be built with
+  or without a specific USE flag, thus getting rid of countless
+  \code{built\_with\_use} checks.  A more sophisticated syntax is to
+  be found in EAPI 3.
+  \begin{description}
+  \item{[opt]} The flag must be enabled.
+  \item{[opt=]} The flag must be enabled if the flag is enabled for the
+    package with the dependency, or disabled otherwise.
+  \item{[!opt=]} The flag must be disabled if the flag is enabled for
+    the package with the dependency, or enabled otherwise.
+  \item{[opt?]} The flag must be enabled if the flag is enabled for the
+    package with the dependency.
+  \item{[!opt?]} The flag must be disabled if the use flag is disabled
+    for the package with the dependency.
+  \item{[-opt]} The flag must be disabled.
+  \end{description}
+\item[Blocker syntax] A single exclamation mark as a blocker may be
+  ignored by the package manager as long as the stated package is
+  uninstalled later on.  Two exclamation marks are a strong blocker
+  and will always be respected.
+\item[\code{src\_configure, src\_prepare}] Both new phases provide
+  finer granularity in the ebuild's structure.  Configure calls should
+  be moved from \code{src\_compile} to \code{src\_configure}.
+  Patching and other preparing tasks must no longer take place in
+  \code{src\_unpack} but in \code{src\_prepare}.
+\item[Default phase functions] The default functions for the phases
+  \code{pkg\_nofetch}, \code{src\_unpack}, \code{src\_prepare},
+  \code{src\_configure}, \code{src\_compile} and \code{src\_test} can
+  be called via \code{default\_\emph{phasename}}, so small additions
+  you need will not be accompanied by a complete reimplementation of
+  the phase.  Additionally as a shorthand for the current phase's
+  default definition \code{default} can be invoked.
+\item[\code{doman} language support] The \code{doman} installation
+  function recognizes lanugage specific man page extensions and
+  behaves accordingly.
+\end{description}
+\newpage
+\section{EAPI 3 (2009-??-??)}
+\label{sec:cs:eapi3}
+\subsection{Additions/Changes}
+\begin{description}
+\item[\code{pkg\_pretend}] Some useful checks (kernel options for
+  example) can be placed in this new phase to inform the user early.
+\item[\code{src\_install}] The \code{src\_install} phase is no
+  longer empty but has a default now.  This comes along with an
+  accompanying \code{default} function.
+\item[\code{pkg\_info} on uninstalled packages] The \code{pkg\_info}
+  phase can be called even for not-installed packages.  Do not
+  depend on any outside programs!
+\item[RDEPEND must be defined] The package manager will not fall back
+  to \code{RDEPEND=DEPEND} if RDEPEND is undefined.
+\item[Support for \code{.xz}] Unpack of \code{.xz} and \code{.tar.xz}
+  files is possible.
+\item[Slot operators] There are two ways to define a wanted slot in a
+  dependency string:
+  \begin{description}
+  \item[*] Indicates that any slot value is acceptable. In addition,
+    for runtime dependencies, indicates that the package will not
+    break if the matched package is uninstalled and replaced by a
+    different matching package in a different slot.
+  \item[=] Indicates that any slot value is acceptable. In addition,
+    for runtime dependencies, indicates that the package will break
+    unless a matching package with slot equal to the slot of the best
+    installed version at the time the package was installed is
+    available.
+  \end{description}
+\item[USE dependency defaults] Additionally to the features offered in
+  EAPI 2 for USE dependencies, a \code{+} or \code{-} can be added
+  after a USE flag.  The former leads to the assumption that the USE
+  flag is available when not found in the dependency, the latter leads
+  to the reverse behaviour.  This mimicks parts of the behaviour of
+  \code{-{}-missing} in \code{built\_with\_use}.
+\item[Controllable compression] Via the \code{docompress} command,
+  automatic installation of compressed files can be controlled.
+\item[\code{dodoc} recursion] If the \code{-r} switch is given as
+  first argument and followed by directories, files from there are
+  installed recursively.
+\item[\code{doins} symlink support] Symbolic links are now properly installed.
+\item[New installation functions] \code{doexample}, \code{newexample},
+  \code{doinclude} and \code{newinclude} install example and include
+  files respectively in the known manner.
+\end{description}
+\label{sec:cs:eapi3-additions}
+\subsection{Removals/Bans}
+\label{sec:cs:eapi3-removalsbans}
+\begin{description}
+\item[USE flags in any-of] Inside of \code{||} constructs USE flag
+  conditionals are forbidden (with exceptions).
+\item[\code{dohard}, \code{dosed}] Both functions are not allowed
+  anymore.
+\end{description}
+\end{document}
diff --git a/credits.tex b/credits.tex
index 8494516..77d40bd 100644
--- a/credits.tex
+++ b/credits.tex
@@ -3,7 +3,8 @@
 Thanks to Mike Kelly (package manager provided utilities, section~\ref{sec:pkg-mgr-commands}), Danny van
 Dyk (ebuild functions, section~\ref{sec:ebuild-functions}), David Leverton (various sections) and
 Petteri Räty (environment state, section~\ref{sec:ebuild-env-state}) for contributions. Thanks to
-Christian Faulhammer for fixing some of the more horrible formatting screwups. Thanks also to Mike
+Christian Faulhammer for fixing some of the more horrible formatting
+screwups and providing the EAPI cheat sheet. Thanks also to Mike
 Frysinger and Brian Harring for proof-reading and suggestions for fixes and/or clarification.
 
 \section*{Copyright and Licence}
diff --git a/pms.cls b/pms.cls
index ca0874c..acbcf00 100644
--- a/pms.cls
+++ b/pms.cls
@@ -32,6 +32,7 @@
   marginnote,
   paralist,
   parskip,
+  pdfpages,
   verbatim,
   algorithm,
   algorithmic
diff --git a/pms.tex b/pms.tex
index 8426706..2a164f9 100644
--- a/pms.tex
+++ b/pms.tex
@@ -46,6 +46,7 @@
 
 \bibliography{pms}
 
+\includepdf[pages=-,landscape]{eapi_cheatsheet}
 \end{document}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
-- 
1.6.0.6


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-12 19:14 [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet Christian Faulhammer
@ 2009-04-12 19:36 ` Ciaran McCreesh
  2009-04-13  9:01   ` Christian Faulhammer
  2009-04-12 21:25 ` David Leverton
  1 sibling, 1 reply; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-12 19:36 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 1802 bytes --]

On Sun, 12 Apr 2009 21:14:47 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
> on top of commit b1b3feb72b372d21d5d2443b7f7e9d0da2d84f29 in the
> eapi-3 branch:
> 
> 0001: Text body setting with bigger outer margin
> 0002: pms.cls, with report.cls and changing of label display.
> 0003: Fix a label. (No, I won't rebase it, as the label has been
> created by Ciaran)

Applied these three, thanks.

> 0004: The complete new EAPI 3 aware cheat sheet.

Some comments on this one:

Is the subdirectory necessary? Seems a bit weird to have it for one
thing.

Can we make each item have the PMS label name for full details at the
end of its paragraph? And add a new 'Other changes' item with the label
names of other changes not described?

The 'pkg_pretend' description should probably tell developers to
duplicate any checks done in pkg_setup.

I've stopped using 'uninstalled' for pkg_info in favour of
'non-installed'. Think it's less confusing.

'must be defined' is a bit dodgy for RDEPEND. 'Unset RDEPEND not set to
DEPEND' possibly.

The slot operator deps should include the : before the symbol.

Use dep defaults are in (+) and (-), not + or - on their own.

I'd mention the switch for docompress.

doins symlinks should say that it only works for -r. I probably need to
update the summaries for that too.

And some wording tinkering. Can cut the Abstract down to something like:

    An overview of the main EAPI changes in Gentoo, for ebuild authors.
    For full details, consult the Package Manager Specification; this
    is an incomplete summary only.

    Official EAPIs are consecutively numbered integers (0, 1, 2, ...).
    Except where otherwise noted, an EAPI is the same as the previous
    EAPI.

Cheers,
-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-12 19:14 [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet Christian Faulhammer
  2009-04-12 19:36 ` Ciaran McCreesh
@ 2009-04-12 21:25 ` David Leverton
  2009-04-13  9:05   ` Christian Faulhammer
  1 sibling, 1 reply; 27+ messages in thread
From: David Leverton @ 2009-04-12 21:25 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

On Sunday 12 April 2009 20:14:47 Christian Faulhammer wrote:
> 0002: pms.cls, with report.cls and changing of label display.

Just noticed that this one breaks make html (tried with all tex4ht versions in 
the tree, same results) with a rather bizarre error:

> [25] [26] [27] [28] [29] [30] [31]) [32] [33] (./profiles.tex [34]
> Chapter 5.
> [35] [36] [37] [38] [39]
>
> ! LaTeX Error: Something's wrong--perhaps a missing \item.
>
> See the LaTeX manual or LaTeX Companion for explanation.
> Type  H <return>  for immediate help.
>  ...
>
> l.140 \STATE
>              let masked = false
> ?

The problem is inside an algorithmic environment (and commenting it out causes 
the error to occur at the next one).  I have no clue how to fix this - any 
ideas, or at least any ideas about where to start looking?



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-12 19:36 ` Ciaran McCreesh
@ 2009-04-13  9:01   ` Christian Faulhammer
  2009-04-13 16:01     ` Ciaran McCreesh
  0 siblings, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-13  9:01 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 1611 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:
> > 0004: The complete new EAPI 3 aware cheat sheet.
> 
> Some comments on this one:
> 
> Is the subdirectory necessary? Seems a bit weird to have it for one
> thing.

 In the long term we should move the chapter files into a "chapters"
subdirectory.  I can create a patch for that.

> Can we make each item have the PMS label name for full details at the
> end of its paragraph? And add a new 'Other changes' item with the
> label names of other changes not described?

 I wanted to add it when all labels for all EAPIs are ready.
 
> The 'pkg_pretend' description should probably tell developers to
> duplicate any checks done in pkg_setup.
> I've stopped using 'uninstalled' for pkg_info in favour of
> 'non-installed'. Think it's less confusing.
> 'must be defined' is a bit dodgy for RDEPEND. 'Unset RDEPEND not set
> to DEPEND' possibly.
> The slot operator deps should include the : before the symbol.
> Use dep defaults are in (+) and (-), not + or - on their own.
> I'd mention the switch for docompress.
> doins symlinks should say that it only works for -r. I probably need
> to update the summaries for that too.

 Will work on those items.
 
> And some wording tinkering. Can cut the Abstract down to something
> like:

 The long abstract was needed to fill the first page, it looked so
empty in the first version.  So I will cut it down.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-12 21:25 ` David Leverton
@ 2009-04-13  9:05   ` Christian Faulhammer
  2009-04-13 21:16     ` [gentoo-pms] [PATCH] Work around TeX4ht being weird David Leverton
  0 siblings, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-13  9:05 UTC (permalink / raw
  To: David Leverton; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 630 bytes --]

Hi,

David Leverton <levertond@googlemail.com>:

> On Sunday 12 April 2009 20:14:47 Christian Faulhammer wrote:
> > 0002: pms.cls, with report.cls and changing of label display.
> 
> Just noticed that this one breaks make html (tried with all tex4ht
> versions in the tree, same results) with a rather bizarre error:

 You can debug with http://www.minimalbeispiel.de/ (there is an English
version, report bugs or inaccuracies to me, I am the author).

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-13  9:01   ` Christian Faulhammer
@ 2009-04-13 16:01     ` Ciaran McCreesh
  2009-04-14  8:44       ` Christian Faulhammer
  0 siblings, 1 reply; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-13 16:01 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 1180 bytes --]

On Mon, 13 Apr 2009 11:01:48 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
> Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:
> > > 0004: The complete new EAPI 3 aware cheat sheet.
> > Is the subdirectory necessary? Seems a bit weird to have it for one
> > thing.
> 
>  In the long term we should move the chapter files into a "chapters"
> subdirectory.  I can create a patch for that.

Why do we need subdirectories? So far as I can see we're a long way
off, and probably won't ever reach, the point where things are
unmanageable without them.

> > Can we make each item have the PMS label name for full details at
> > the end of its paragraph? And add a new 'Other changes' item with
> > the label names of other changes not described?
> 
>  I wanted to add it when all labels for all EAPIs are ready.

I thought they were. Didn't I do labels for 1 and 2 things?

> > And some wording tinkering. Can cut the Abstract down to something
> > like:
> 
>  The long abstract was needed to fill the first page, it looked so
> empty in the first version.  So I will cut it down.

Stick a picture of a cow there or something.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [gentoo-pms] [PATCH] Work around TeX4ht being weird
  2009-04-13  9:05   ` Christian Faulhammer
@ 2009-04-13 21:16     ` David Leverton
  2009-04-14  8:32       ` Christian Faulhammer
  0 siblings, 1 reply; 27+ messages in thread
From: David Leverton @ 2009-04-13 21:16 UTC (permalink / raw
  To: gentoo-pms; +Cc: David Leverton

---
 pms.cls |   27 +--------------------------
 pms.tex |   35 +++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 26 deletions(-)

Seems that loading hyperref inside a document class breaks TeX4ht: it
does funny magic to load itself after the document class, but it also
needs to be loaded before hyperref, so if hyperref is loaded in the
class, TeX4ht gets in too late.  This patch seems to get it to work,
but it's fairly hacky - might be cleaner just to revert the pms.cls
patch. :-(

diff --git a/pms.cls b/pms.cls
index ca0874c..8f9c093 100644
--- a/pms.cls
+++ b/pms.cls
@@ -9,32 +9,25 @@
 \LoadClass{\ClassToLoad}
 \PassOptionsToPackage{T1}{fontenc}
 \PassOptionsToPackage{orig,english}{isodate}
-\PassOptionsToPackage{position=top}{caption}
 \PassOptionsToPackage{utf8}{inputenc}
-% algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
   fontenc,
   isodate,
   typearea,
-  caption,
   inputenc,
   appendix,
   booktabs,
   color,
   enumitem,
-  float,
   fullpage,
   graphicx,
-  hyperref,
   ifthen,
   longtable,
   lscape,
   marginnote,
   paralist,
   parskip,
-  verbatim,
-  algorithm,
-  algorithmic
+  verbatim
 }
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
   Specification, loaded baseclass: \ClassToLoad\MessageBreak}
@@ -51,9 +44,6 @@
     \setboolean{TEX4HT-HACKS}{true}
 \fi
 
-\floatstyle{plaintop}
-\newfloat{listing}{tbp}{lol}[chapter]
-\floatname{listing}{Listing}
 \newcommand{\listoflistings}{\listof{listing}{Listings}}
 \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
 \newcommand{\compactfeatureref}[1]{#1~p\pageref{feat:#1}}
@@ -61,7 +51,6 @@
 \bibliographystyle{plainurl}
 
 \renewcommand{\t}[1]{\texttt{#1}}
-\renewcommand{\i}[1]{\textit{#1}}
 \newcommand{\e}[1]{\emph{#1}}
 \renewcommand{\b}[1]{\textbf{#1}}
 \newcommand{\note}[1]{\paragraph{Note:} #1}
@@ -108,20 +97,6 @@
   \end{table}
 }
 
-\hypersetup{%
-  urlcolor=black,
-  colorlinks=true,
-  citecolor=black,
-  linkcolor=black,
-  pdftitle={Package Manager Specification},
-  pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
-  pdfcreator={pdfLaTeX and hyperref},
-  pdfsubject={Defining a feature set for package managers in the
-    Gentoo world},
-  pdflang={en},
-  pdfkeywords={Gentoo, package manager, specification},
-  pdfproducer={pdfLaTeX and hyperref},
-}
 \title{Package Manager Specification}
 \author{Stephen P. Bennett\\\url{spb@exherbo.org}
 \and Ciaran McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
diff --git a/pms.tex b/pms.tex
index 8426706..60eea42 100644
--- a/pms.tex
+++ b/pms.tex
@@ -1,5 +1,40 @@
 \documentclass{pms}
 
+% Can't be in pms.cls because that interferes with tex4ht's weird
+% hacks, specifically hyperref has to be loaded /after/
+% \documentclass, and then the other packages, plus the redefinition
+% of \i, have to be after hyperref.
+
+% algorithmic and algorithm to be loaded last to avoid failures
+\usepackage[position=top]{caption}
+\usepackage{%
+  hyperref,
+  float,
+  algorithm,
+  algorithmic
+}
+
+\renewcommand{\i}[1]{\textit{#1}}
+
+\floatstyle{plaintop}
+\newfloat{listing}{tbp}{lol}[chapter]
+\floatname{listing}{Listing}
+
+\hypersetup{%
+  urlcolor=black,
+  colorlinks=true,
+  citecolor=black,
+  linkcolor=black,
+  pdftitle={Package Manager Specification},
+  pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
+  pdfcreator={pdfLaTeX and hyperref},
+  pdfsubject={Defining a feature set for package managers in the
+    Gentoo world},
+  pdflang={en},
+  pdfkeywords={Gentoo, package manager, specification},
+  pdfproducer={pdfLaTeX and hyperref},
+}
+
 \begin{document}
 \maketitle
 
-- 
1.6.2.2




^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] [PATCH] Work around TeX4ht being weird
  2009-04-13 21:16     ` [gentoo-pms] [PATCH] Work around TeX4ht being weird David Leverton
@ 2009-04-14  8:32       ` Christian Faulhammer
  2009-04-15 19:03         ` David Leverton
  0 siblings, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-14  8:32 UTC (permalink / raw
  To: David Leverton; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 810 bytes --]

Hi,

David Leverton <levertond@googlemail.com>:

> ---
>  pms.cls |   27 +--------------------------
>  pms.tex |   35 +++++++++++++++++++++++++++++++++++
>  2 files changed, 36 insertions(+), 26 deletions(-)
> 
> Seems that loading hyperref inside a document class breaks TeX4ht: it
> does funny magic to load itself after the document class, but it also
> needs to be loaded before hyperref, so if hyperref is loaded in the
> class, TeX4ht gets in too late.  This patch seems to get it to work,
> but it's fairly hacky - might be cleaner just to revert the pms.cls
> patch. :-(

 Or you use \AtEndOfClass{} to do your magic.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-13 16:01     ` Ciaran McCreesh
@ 2009-04-14  8:44       ` Christian Faulhammer
  2009-04-14 13:04         ` Ciaran McCreesh
  0 siblings, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-14  8:44 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 1289 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:
> >  In the long term we should move the chapter files into a "chapters"
> > subdirectory.  I can create a patch for that.
> 
> Why do we need subdirectories? So far as I can see we're a long way
> off, and probably won't ever reach, the point where things are
> unmanageable without them.

 It isn't about managing the files but about getting into the code.  A
root directory with only five files is easier to grasp for a
beginner than with 20. The move isn't hard, so we can do this at every
point in the future.

> >  I wanted to add it when all labels for all EAPIs are ready.
> 
> I thought they were. Didn't I do labels for 1 and 2 things?

 I wasn't sure if they were complete...anyway, I now have EAPI 3
properly referenced.  You want that version or should I go through 1
and 2, also?

> >  The long abstract was needed to fill the first page, it looked so
> > empty in the first version.  So I will cut it down.
> 
> Stick a picture of a cow there or something.

 I now have EAPI 0 described, so a shorter abstract should do it.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-14  8:44       ` Christian Faulhammer
@ 2009-04-14 13:04         ` Ciaran McCreesh
  2009-04-14 13:55           ` Christian Faulhammer
  0 siblings, 1 reply; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-14 13:04 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 828 bytes --]

On Tue, 14 Apr 2009 10:44:48 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
>  It isn't about managing the files but about getting into the code.  A
> root directory with only five files is easier to grasp for a
> beginner than with 20. The move isn't hard, so we can do this at every
> point in the future.

I agree with you on the principle, but not on the numbers. It's not
worth using subdirectories until 'ls' output won't fit on one screen.

> > >  I wanted to add it when all labels for all EAPIs are ready.
> > 
> > I thought they were. Didn't I do labels for 1 and 2 things?
> 
>  I wasn't sure if they were complete...anyway, I now have EAPI 3
> properly referenced.  You want that version or should I go through 1
> and 2, also?

Might as well go for the whole thing.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-14 13:04         ` Ciaran McCreesh
@ 2009-04-14 13:55           ` Christian Faulhammer
  2009-04-14 14:46             ` Ciaran McCreesh
  0 siblings, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-14 13:55 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms


[-- Attachment #1.1: Type: text/plain, Size: 1453 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:

> On Tue, 14 Apr 2009 10:44:48 +0200
> Christian Faulhammer <fauli@gentoo.org> wrote:
> >  It isn't about managing the files but about getting into the
> > code.  A root directory with only five files is easier to grasp for
> > a beginner than with 20. The move isn't hard, so we can do this at
> > every point in the future.
> 
> I agree with you on the principle, but not on the numbers. It's not
> worth using subdirectories until 'ls' output won't fit on one screen.

 Having actually done the change, does make the thing look really
good. After a make run all the .log, .aux and whatever files are also
around.

> > > >  I wanted to add it when all labels for all EAPIs are ready.
> > > 
> > > I thought they were. Didn't I do labels for 1 and 2 things?
> > 
> >  I wasn't sure if they were complete...anyway, I now have EAPI 3
> > properly referenced.  You want that version or should I go through 1
> > and 2, also?
> 
> Might as well go for the whole thing.

 See attached patches:

0001: Desk reference, updated and all issues you raised handled.
0002: Some Makefile tweaking (really minor).
0003: Use plainurl.bst from the system.
0004: Some proper using of the description environment.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Desk-reference-for-quick-look-up.patch --]
[-- Type: text/x-patch, Size: 12747 bytes --]

From 07a0d42ed1d963709739ffd509bf2b365355cf32 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Mon, 13 Apr 2009 12:11:54 +0200
Subject: [PATCH] Desk reference for quick look-up

This contains a short summary of all EAPI features so far, similar
to appendix E of PMS, but with more information.
---
 Makefile                       |    8 +-
 cheatsheet/eapi_cheatsheet.tex |  207 ++++++++++++++++++++++++++++++++++++++++
 credits.tex                    |    5 +-
 pms.cls                        |    1 +
 pms.tex                        |    2 +
 5 files changed, 219 insertions(+), 4 deletions(-)
 create mode 100644 cheatsheet/eapi_cheatsheet.tex

diff --git a/Makefile b/Makefile
index e9c3dd4..b585411 100644
--- a/Makefile
+++ b/Makefile
@@ -5,13 +5,14 @@ clean :
 	rm -f *~ *.pdf *.dvi *.log *.aux *.bbl *.blg *.toc *.lol *.loa *.lox \
 	    *.lot *.out *.html *.css *.png *.4ct *.4tc *.idv *.lg *.tmp *.xref vc.tex || true
 
-LATEXFILES = $(shell ls *.tex) pms.cls
+LATEXFILES = $(shell find -name '*.tex') pms.cls
 LISTINGFILES = $(shell ls *.listing)
 SOURCEFILES = $(LATEXFILES) $(LISTINGFILES)
 
-pms.pdf: $(SOURCEFILES) pms.bbl vc.tex
+pms.pdf: $(SOURCEFILES) pms.bbl vc.tex eapi_cheatsheet.pdf
 	pdflatex pms
 	pdflatex pms
+	pdflatex cheatsheet/eapi_cheatsheet
 	pdflatex pms
 
 pms.html: $(SOURCEFILES) pms.bbl
@@ -31,6 +32,9 @@ pms.bbl: pms.bib pms.tex vc.tex
 	latex pms
 	bibtex pms
 
+eapi_cheatsheet.pdf: vc.tex
+	pdflatex cheatsheet/eapi_cheatsheet
+
 vc.tex: pms.tex
 	/bin/sh ./vc
 
diff --git a/cheatsheet/eapi_cheatsheet.tex b/cheatsheet/eapi_cheatsheet.tex
new file mode 100644
index 0000000..169318e
--- /dev/null
+++ b/cheatsheet/eapi_cheatsheet.tex
@@ -0,0 +1,207 @@
+\documentclass[a4paper,notumble]{leaflet}
+\input{vc}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{
+  url,
+  hyperref,
+  listings,
+  ifthen,
+  xr-hyper,
+  mathptmx,
+  courier
+}
+\usepackage[orig,english]{isodate}
+\usepackage[scaled=.90]{helvet}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\version}{0.2}
+\newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
+\renewcommand{\familydefault}{\sfdefault}
+\urlstyle{sf}
+\externaldocument{pms}
+
+\title{EAPI Cheat Sheet}
+\author{Christian
+  Faulhammer\thanks{\href{mailto:fauli@gentoo.org}{fauli@gentoo.org}}}
+\ifthenelse{\equal{\VCDateISO}{}}
+{
+  \date{Version \version{}, generated on: \\\today}
+}{
+  \date{Version \version\\\printdate{\VCDateISO}}
+}
+\CutLine*{1}
+\CutLine*{3}
+\CutLine*{4}
+\CutLine*{6}
+\hypersetup{%
+  urlcolor=black,
+  colorlinks=true,
+  citecolor=black,
+  linkcolor=black,
+  pdftitle={EAPI Desk Reference},
+  pdfauthor={Christian Faulhammer},
+  pdfsubject={Making look-up faster for EAPI features},
+  pdflang={en},
+  pdfkeywords={Gentoo, package manager, reference},
+  pdfproducer={pdfLaTeX and hyperref},
+}
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+\begin{abstract}
+  An overview of the main EAPI changes in Gentoo, for ebuild authors.
+  For full details, consult the Package Manager
+  Specification\footnote{\url{http://www.gentoo.org/proj/en/qa/pms/}};
+  this is an incomplete summary only.
+
+  Official Gentoo EAPIs are consecutively numbered integers (0, 1, 2,
+  \dots).  Except where otherwise noted, an EAPI is the same as the
+  previous EAPI.  All label refer to the PMS document itself, built
+  from the same checkout as this overview.  
+
+  Please report mistakes or enhancements to this document via the
+  Gentoo bug tracking system\footnote{\url{http://bugs.gentoo.org/}}
+  to the original author or the PMS team.
+
+  This document is released under the Creative Commons
+  Attribution-Share Alike 3.0
+  Licence\footnote{\url{http://creativecommons.org/licenses/by-sa/3.0/}}.
+\end{abstract}
+\section{EAPI 0}
+\label{sec:cs:eapi0}
+If there is no EAPI explicitely specified, EAPI 0 is assumed.
+Currently there is no full specification what EAPI 0 includes.
+Portage, official ebuild documentation and existing ebuilds set the
+standard here, although obvious errors are still errors.
+\newpage
+\section{EAPI 1}
+\label{sec:cs:eapi1}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi1-additions}
+\begin{description}
+\item[IUSE defaults] An USE flag can be marked as mandatory (if not
+  disabled explicitely by user configuration) with a \code{+} sign in
+  front.  See \featureref{iuse-defaults}.
+\item[Named slot dependencies] Dependencies can explicitely request a
+  specific slot by using the \code{dev-libs/foo:SLOT} syntax.
+  See \featureref{slot-deps}.
+\end{description}
+\section{EAPI 2 (2008-09-25)}
+\label{sec:cs:eapi2}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi2-additions}
+\begin{description}
+\item[\code{SRC\_URI} arrows] Allows redirection of upstream file
+  naming scheme by using an "arrow" (\code{->}) to a new file name in
+  DISTDIR.  See \featureref{src-uri-arrows}.
+\item[USE dependencies] Dependencies can be specified to be built with
+  or without a specific USE flag, thus getting rid of countless
+  \code{built\_with\_use} checks.  A more sophisticated syntax is
+  available in EAPI 3.
+  \begin{description}
+  \item[{[opt]}] The flag must be enabled.
+  \item[{[opt=]}] The flag must be enabled if the flag is enabled for the
+    package with the dependency, or disabled otherwise.
+  \item[{[!opt=]}] The flag must be disabled if the flag is enabled for
+    the package with the dependency, or enabled otherwise.
+  \item[{[opt?]}] The flag must be enabled if the flag is enabled for the
+    package with the dependency.
+  \item[{[!opt?]}] The flag must be disabled if the use flag is disabled
+    for the package with the dependency.
+  \item[{[-opt]}] The flag must be disabled.
+  \end{description}
+  See \featureref{use-deps}.
+\item[Blocker syntax] A single exclamation mark as a blocker may be
+  ignored by the package manager as long as the stated package is
+  uninstalled later on.  Two exclamation marks are a strong blocker
+  and will always be respected.  See \featureref{bang-strength}.
+\item[\code{src\_configure, src\_prepare}] Both new phases provide
+  finer granularity in the ebuild's structure.  Configure calls should
+  be moved from \code{src\_compile} to \code{src\_configure}.
+  Patching and other preparing tasks must no longer take place in
+  \code{src\_unpack} but in \code{src\_prepare}.
+  See \featureref{src-prepare} and \featureref{src-configure}.
+\item[Default phase functions] The default functions for the phases
+  \code{pkg\_nofetch}, \code{src\_unpack}, \code{src\_prepare},
+  \code{src\_configure}, \code{src\_compile} and \code{src\_test} can
+  be called via \code{default\_\emph{phasename}}, so small additions
+  you need will not be accompanied by a complete reimplementation of
+  the phase.  Additionally as a shorthand for the current phase's
+  default definition \code{default} can be invoked.
+  See \featureref{default-phase-funcs} and \featureref{default-func}.
+\item[\code{doman} language support] The \code{doman} installation
+  function recognizes lanugage specific man page extensions and
+  behaves accordingly.  See \featureref{doman-langs}
+\end{description}
+\newpage
+\section{EAPI 3 (not yet approved)}
+\label{sec:cs:eapi3}
+\subsection{Additions/Changes}
+\begin{description}
+\item[\code{pkg\_pretend}] Some useful checks (kernel options for
+  example) can be placed in this new phase to inform the user early.
+  Duplicating checks from the \code{pkg\_setup} phase may be
+  necessary.  See \featureref{pkg-pretend}.
+\item[\code{src\_install}] The \code{src\_install} phase is no longer
+  empty but has a default now.  This comes along with an accompanying
+  \code{default} function.  See \featureref{src-install-3}.
+\item[\code{pkg\_info} on non-installed packages] The \code{pkg\_info}
+  phase can be called even for non-installed packages.  Do not depend
+  on any outside programs in that case!  See \featureref{pkg-info}.
+\item[No RDEPEND fall-back] The package manager will not fall back to
+  \code{RDEPEND=DEPEND} if RDEPEND is undefined.
+  See \featureref{rdepend-depend}
+\item[Support for \code{.xz}] Unpack of \code{.xz} and \code{.tar.xz}
+  files is possible.  See \featureref{unpack-extensions}.
+\item[Slot operators] There are two ways to define a wanted slot in a
+  dependency string:
+  \begin{description}
+  \item[\code{:*}] Indicates that any slot value is acceptable. In addition,
+    for runtime dependencies, indicates that the package will not
+    break if the matched package is uninstalled and replaced by a
+    different matching package in a different slot.
+  \item[\code{:=}] Indicates that any slot value is acceptable. In addition,
+    for runtime dependencies, indicates that the package will break
+    unless a matching package with slot equal to the slot of the best
+    installed version at the time the package was installed is
+    available.
+  \end{description}
+  See \featureref{slot-operator-deps}.
+\item[USE dependency defaults] Additionally to the features offered in
+  EAPI 2 for USE dependencies, a \code{(+)} or \code{(-)} can be added
+  after a USE flag (mind the braces).  The former leads to the
+  assumption that the USE flag is available when not found in the
+  dependency, the latter leads to the reverse behaviour.  This mimicks
+  parts of the behaviour of \code{-{}-missing} in
+  \code{built\_with\_use}.  See \featureref{use-dep-defaults}.
+\item[Controllable compression] All items in
+  \code{/usr/share\{doc,info,man\}} are compressed on-disk after
+  \code{src\_install}, except for \code{/usr/share/doc/\$\{PF\}/html}.
+  With \code{docompress} all arguments are passed to the inclusion
+  list, while the behaviour can be inverted with the \code{-x}
+  switch.  See \featureref{controllable-compress}.
+\item[\code{dodoc} recursion] If the \code{-r} switch is given as
+  first argument and followed by directories, files from there are
+  installed recursively.  See \featureref{dodoc}.
+\item[\code{doins} symlink support] Symbolic links are now properly
+  installed when using recursion (\code{-r} switch).
+  See \featureref{doins}.
+\item[New installation functions] \code{doexample}, \code{newexample},
+  \code{doinclude} and \code{newinclude} install example and include
+  files respectively in the known manner.  See \featureref{doexample} and
+  \featureref{doinclude}.
+\item[\code{nonfatal} for commands] If you call \code{nonfatal} the
+  command given as argument will not abort the build process in case
+  of a failure but preserve the exit status nonetheless.  See
+  \featureref{nonfatal}.
+\end{description}
+\label{sec:cs:eapi3-additions}
+\subsection{Removals/Bans}
+\label{sec:cs:eapi3-removalsbans}
+\begin{description}
+\item[USE flags in any-of] Inside of \code{||} constructs USE flag
+  conditionals are forbidden (with exceptions).  See \featureref{any-use}
+\item[\code{dohard}, \code{dosed}] Both functions are not allowed
+  anymore.  See \featureref{banned-commands}.
+\end{description}
+\end{document}
diff --git a/credits.tex b/credits.tex
index 8494516..ceec6cf 100644
--- a/credits.tex
+++ b/credits.tex
@@ -3,8 +3,9 @@
 Thanks to Mike Kelly (package manager provided utilities, section~\ref{sec:pkg-mgr-commands}), Danny van
 Dyk (ebuild functions, section~\ref{sec:ebuild-functions}), David Leverton (various sections) and
 Petteri Räty (environment state, section~\ref{sec:ebuild-env-state}) for contributions. Thanks to
-Christian Faulhammer for fixing some of the more horrible formatting screwups. Thanks also to Mike
-Frysinger and Brian Harring for proof-reading and suggestions for fixes and/or clarification.
+Christian Faulhammer for fixing some of the more horrible formatting screwups and providing the EAPI
+cheat sheet. Thanks also to Mike Frysinger and Brian Harring for proof-reading and suggestions for
+fixes and/or clarification.
 
 \section*{Copyright and Licence}
 
diff --git a/pms.cls b/pms.cls
index ca0874c..acbcf00 100644
--- a/pms.cls
+++ b/pms.cls
@@ -32,6 +32,7 @@
   marginnote,
   paralist,
   parskip,
+  pdfpages,
   verbatim,
   algorithm,
   algorithmic
diff --git a/pms.tex b/pms.tex
index 8426706..745882b 100644
--- a/pms.tex
+++ b/pms.tex
@@ -46,6 +46,8 @@
 
 \bibliography{pms}
 
+\includepdf[pages=-,landscape]{eapi_cheatsheet}
+
 \end{document}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Make-vc.tex-target-depend-on-the-existence-of-vc-git.patch --]
[-- Type: text/x-patch, Size: 650 bytes --]

From 7ed565f95c4d2d19bc98a5991ac6d1fdaad60ea0 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Tue, 14 Apr 2009 08:43:58 +0200
Subject: [PATCH] Make vc.tex target depend on the existence of vc-git.awk

---
 Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index b585411..9a49a6b 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ pms.bbl: pms.bib pms.tex vc.tex
 eapi_cheatsheet.pdf: vc.tex
 	pdflatex cheatsheet/eapi_cheatsheet
 
-vc.tex: pms.tex
+vc.tex: pms.tex vc-git.awk
 	/bin/sh ./vc
 
 pms.dvi: $(SOURCEFILES) pms.bbl
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Use-system-s-plainurl.bst.patch --]
[-- Type: text/x-patch, Size: 29212 bytes --]

From 04e3ca5c4bef9c66086071a509ddce927d8a1f99 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Tue, 14 Apr 2009 08:40:40 +0200
Subject: [PATCH] Use system's plainurl.bst

The one provided in the PMS repository is out of date and lacks
hyperref support.  This can be avoided by using plainurl.bst from
dev-texlive/texlive-bibtexextra.
---
 plainurl.bst | 1349 ----------------------------------------------------------
 1 files changed, 0 insertions(+), 1349 deletions(-)
 delete mode 100644 plainurl.bst

diff --git a/plainurl.bst b/plainurl.bst
deleted file mode 100644
index 2f6a0e7..0000000
--- a/plainurl.bst
+++ /dev/null
@@ -1,1349 +0,0 @@
-%%% Modification of BibTeX style file /usr/share/texmf/bibtex/bst/base/plain.bst
-%%% ... by urlbst, version 0.5 (marked with "% urlbst")
-%%% See <http://www.astro.gla.ac.uk/users/norman/distrib/urlbst/>
-%%% Added webpage entry type, and url and lastchecked fields.
-%%% Original headers follow...
-
-% BibTeX standard bibliography style `plain'
-	% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
-	% Copyright (C) 1985, all rights reserved.
-	% Copying of this file is authorized only if either
-	% (1) you make absolutely no changes to your copy, including name, or
-	% (2) if you do make changes, you name it something other than
-	% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
-	% This restriction helps ensure that all standard styles are identical.
-	% The file btxbst.doc has the documentation for this style.
-
-ENTRY
-  { address
-    author
-    booktitle
-    chapter
-    edition
-    editor
-    howpublished
-    institution
-    journal
-    key
-    month
-    note
-    number
-    organization
-    pages
-    publisher
-    school
-    series
-    title
-    type
-    volume
-    year
-    eprint % urlbst
-    doi % urlbst
-    url % urlbst
-    lastchecked % urlbst
-  }
-  {}
-  { label }
-
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-
-STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl } % urlbst...
-INTEGERS { hrefform addeprints adddoiresolver }
-% Following constants may be adjusted by hand, if desired
-FUNCTION {init.config.constants}
-{
-  "Available from: " 'urlintro := % prefix before URL
-  "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
-  "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
-  "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
-  "doi:" 'doiprefix := % text prefix printed before DOI ref
-  #0 'addeprints := % 0=no eprints; 1=include eprints
-  #0 'adddoiresolver := % 0=no DOI resolver; 1=include it
-  #0 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
-}
-INTEGERS { 
-  bracket.state
-  outside.brackets
-  open.brackets
-  within.brackets
-  close.brackets
-}
-% ...urlbst to here
-FUNCTION {init.state.consts}
-{ #0 'outside.brackets := % urlbst
-  #1 'open.brackets :=
-  #2 'within.brackets :=
-  #3 'close.brackets :=
-
-  #0 'before.all :=
-  #1 'mid.sentence :=
-  #2 'after.sentence :=
-  #3 'after.block :=
-}
-
-STRINGS { s t }
-
-% urlbst
-FUNCTION {output.nonnull.original}
-{ 's :=
-  output.state mid.sentence =
-    { ", " * write$ }
-    { output.state after.block =
-	{ add.period$ write$
-	  newline$
-	  "\newblock " write$
-	}
-	{ output.state before.all =
-	    'write$
-	    { add.period$ " " * write$ }
-	  if$
-	}
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-
-% urlbst...
-FUNCTION {output.nonnull}
-{ % Save the thing we've been asked to output
-  's :=
-  % If the bracket-state is close.brackets, then add a close-bracket to
-  % what is currently at the top of the stack, and set bracket.state
-  % to outside.brackets
-  bracket.state close.brackets =
-    { "]" *
-      outside.brackets 'bracket.state :=
-    }
-    'skip$
-  if$
-  bracket.state outside.brackets =
-    { % We're outside all brackets -- this is the normal situation.
-      % Write out what's currently at the top of the stack, using the
-      % original output.nonnull function.
-      s
-      output.nonnull.original
-    }
-    { % Still in brackets.  Add open-bracket or (continuation) comma, add the
-      % new text (in s) to the top of the stack, and move to the close-brackets
-      % state, ready for next time (unless inbrackets resets it).  If we come
-      % into this branch, then output.state is carefully undisturbed.
-      bracket.state open.brackets =
-        { " [" * }
-        { ", " * } % bracket.state will be within.brackets
-      if$ 
-      s * 
-      close.brackets 'bracket.state :=
-    }
-  if$
-}
-
-% Call this function just before adding something which should be presented in 
-% brackets.  bracket.state is handled specially within output.nonnull.
-FUNCTION {inbrackets}
-{ bracket.state close.brackets =
-    { within.brackets 'bracket.state := } % reset the state: not open nor closed
-    { open.brackets 'bracket.state := }
-  if$
-}
-
-FUNCTION {format.lastchecked}
-{ lastchecked empty$
-    { "" }
-    { inbrackets "cited " lastchecked * }
-  if$
-}
-% ...urlbst to here
-
-FUNCTION {output}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.check}
-{ 't :=
-  duplicate$ empty$
-    { pop$ "empty " t * " in " * cite$ * warning$ }
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.bibitem}
-{ outside.brackets 'bracket.state := % urlbst
-   newline$
-  "\bibitem{" write$
-  cite$ write$
-  "}" write$
-  newline$
-  ""
-  before.all 'output.state :=
-}
-
-FUNCTION {fin.entry}
-{ 
-  bracket.state close.brackets = % urlbst
-    { "]" * }
-    'skip$
-  if$
-   add.period$
-  write$
-  newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
-    'skip$
-    { after.block 'output.state := }
-  if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
-    'skip$
-    { output.state before.all =
-	'skip$
-	{ after.sentence 'output.state := }
-      if$
-    }
-  if$
-}
-
-FUNCTION {not}
-{   { #0 }
-    { #1 }
-  if$
-}
-
-FUNCTION {and}
-{   'skip$
-    { pop$ #0 }
-  if$
-}
-
-FUNCTION {or}
-{   { pop$ #1 }
-    'skip$
-  if$
-}
-
-FUNCTION {new.block.checka}
-{ empty$
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {new.sentence.checka}
-{ empty$
-    'skip$
-    'new.sentence
-  if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.sentence
-  if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
-    { pop$ "" }
-    'skip$
-  if$
-}
-
-FUNCTION {emphasize}
-{ duplicate$ empty$
-    { pop$ "" }
-    { "{\em " swap$ * "}" * }
-  if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {format.names}
-{ 's :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
-      nameptr #1 >
-	{ namesleft #1 >
-	    { ", " * t * }
-	    { numnames #2 >
-		{ "," * }
-		'skip$
-	      if$
-	      t "others" =
-		{ " et~al." * }
-		{ " and " * t * }
-	      if$
-	    }
-	  if$
-	}
-	't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {format.authors}
-{ author empty$
-    { "" }
-    { author format.names }
-  if$
-}
-
-FUNCTION {format.editors}
-{ editor empty$
-    { "" }
-    { editor format.names
-      editor num.names$ #1 >
-	{ ", editors" * }
-	{ ", editor" * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.title}
-{ title empty$
-    { "" }
-    { title "t" change.case$ }
-  if$
-}
-
-FUNCTION {n.dashify}
-{ 't :=
-  ""
-    { t empty$ not }
-    { t #1 #1 substring$ "-" =
-	{ t #1 #2 substring$ "--" = not
-	    { "--" *
-	      t #2 global.max$ substring$ 't :=
-	    }
-	    {   { t #1 #1 substring$ "-" = }
-		{ "-" *
-		  t #2 global.max$ substring$ 't :=
-		}
-	      while$
-	    }
-	  if$
-	}
-	{ t #1 #1 substring$ *
-	  t #2 global.max$ substring$ 't :=
-	}
-      if$
-    }
-  while$
-}
-
-FUNCTION {format.date}
-{ year empty$
-    { month empty$
-	{ "" }
-	{ "there's a month but no year in " cite$ * warning$
-	  month
-	}
-      if$
-    }
-    { month empty$
-	'year
-	{ month " " * year * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.btitle}
-{ title emphasize
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
-    { "~" }
-    { " " }
-  if$
-  swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
-    'pop$
-    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
-  if$
-}
-
-FUNCTION {format.bvolume}
-{ volume empty$
-    { "" }
-    { "volume" volume tie.or.space.connect
-      series empty$
-	'skip$
-	{ " of " * series emphasize * }
-      if$
-      "volume and number" number either.or.check
-    }
-  if$
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
-    { number empty$
-	{ series field.or.null }
-	{ output.state mid.sentence =
-	    { "number" }
-	    { "Number" }
-	  if$
-	  number tie.or.space.connect
-	  series empty$
-	    { "there's a number but no series in " cite$ * warning$ }
-	    { " in " * series * }
-	  if$
-	}
-      if$
-    }
-    { "" }
-  if$
-}
-
-FUNCTION {format.edition}
-{ edition empty$
-    { "" }
-    { output.state mid.sentence =
-	{ edition "l" change.case$ " edition" * }
-	{ edition "t" change.case$ " edition" * }
-      if$
-    }
-  if$
-}
-
-INTEGERS { multiresult }
-
-FUNCTION {multi.page.check}
-{ 't :=
-  #0 'multiresult :=
-    { multiresult not
-      t empty$ not
-      and
-    }
-    { t #1 #1 substring$
-      duplicate$ "-" =
-      swap$ duplicate$ "," =
-      swap$ "+" =
-      or or
-	{ #1 'multiresult := }
-	{ t #2 global.max$ substring$ 't := }
-      if$
-    }
-  while$
-  multiresult
-}
-
-FUNCTION {format.pages}
-{ pages empty$
-    { "" }
-    { pages multi.page.check
-	{ "pages" pages n.dashify tie.or.space.connect }
-	{ "page" pages tie.or.space.connect }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.vol.num.pages}
-{ volume field.or.null
-  number empty$
-    'skip$
-    { "(" number * ")" * *
-      volume empty$
-	{ "there's a number but no volume in " cite$ * warning$ }
-	'skip$
-      if$
-    }
-  if$
-  pages empty$
-    'skip$
-    { duplicate$ empty$
-	{ pop$ format.pages }
-	{ ":" * pages n.dashify * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
-    'format.pages
-    { type empty$
-	{ "chapter" }
-	{ type "l" change.case$ }
-      if$
-      chapter tie.or.space.connect
-      pages empty$
-	'skip$
-	{ ", " * format.pages * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
-    { "" }
-    { editor empty$
-	{ "In " booktitle emphasize * }
-	{ "In " format.editors * ", " * booktitle emphasize * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
-  month empty$ year empty$ note empty$
-  and and and and and
-  key empty$ not and
-    { "all relevant fields are empty in " cite$ * warning$ }
-    'skip$
-  if$
-}
-
-FUNCTION {format.thesis.type}
-{ type empty$
-    'skip$
-    { pop$
-      type "t" change.case$
-    }
-  if$
-}
-
-FUNCTION {format.tr.number}
-{ type empty$
-    { "Technical Report" }
-    'type
-  if$
-  number empty$
-    { "t" change.case$ }
-    { number tie.or.space.connect }
-  if$
-}
-
-FUNCTION {format.article.crossref}
-{ key empty$
-    { journal empty$
-	{ "need key or journal for " cite$ * " to crossref " * crossref *
-	  warning$
-	  ""
-	}
-	{ "In {\em " journal * "\/}" * }
-      if$
-    }
-    { "In " key * }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
-  editor num.names$ duplicate$
-  #2 >
-    { pop$ " et~al." * }
-    { #2 <
-	'skip$
-	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-	    { " et~al." * }
-	    { " and " * editor #2 "{vv~}{ll}" format.name$ * }
-	  if$
-	}
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.book.crossref}
-{ volume empty$
-    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
-      "In "
-    }
-    { "Volume" volume tie.or.space.connect
-      " of " *
-    }
-  if$
-  editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-	{ series empty$
-	    { "need editor, key, or series for " cite$ * " to crossref " *
-	      crossref * warning$
-	      "" *
-	    }
-	    { "{\em " * series * "\/}" * }
-	  if$
-	}
-	{ key * }
-      if$
-    }
-    { format.crossref.editor * }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{ editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-	{ booktitle empty$
-	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
-	      crossref * warning$
-	      ""
-	    }
-	    { "In {\em " booktitle * "\/}" * }
-	  if$
-	}
-	{ "In " key * }
-      if$
-    }
-    { "In " format.crossref.editor * }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-% urlbst...
-% Functions for making hypertext links.
-% In all cases, the stack has (link-text href-url)
-%
-% make 'null' specials
-FUNCTION {make.href.null}
-{
-  pop$
-}
-% make hypertex specials
-FUNCTION {make.href.hypertex}
-{ 
-  "\special {html:<a href=" quote$ *
-  swap$ * quote$ * "> }" * swap$ *
-  "\special {html:</a>}" *
-}
-% make hyperref specials
-FUNCTION {make.href.hyperref}
-{ 
-  "\href {" swap$ * "} {" * swap$ * "}" *
-}
-FUNCTION {make.href}
-{ hrefform #2 =
-    'make.href.hyperref      % hrefform = 2
-    { hrefform #1 =
-        'make.href.hypertex  % hrefform = 1
-        'make.href.null      % hrefform = 0 (or anything else)
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.url}
-{ url empty$
-    { "" }
-      { hrefform #1 =
-          { % special case -- add HyperTeX specials
-            urlintro "\url{" url * "}" * url make.href.hypertex * }
-          { urlintro "\url{" * url * "}" * }
-       if$
-     }
-  if$
-}
-
-FUNCTION {format.eprint}
-{ eprint empty$
-    { "" }
-    { eprintprefix eprint * eprinturl eprint * make.href }
-  if$
-}
-
-FUNCTION {format.doi}
-{ doi empty$
-    { "" }
-    { doiprefix doi * doiurl doi * make.href }
-  if$
-}
-
-% Output a URL.  We can't use the more normal idiom (something like
-% `format.url output'), because the `inbrackets' within
-% format.lastchecked applies to everything between calls to `output',
-% so that `format.url format.lastchecked * output' ends up with both
-% the URL and the lastchecked in brackets.
-FUNCTION {output.url}
-{ url empty$
-    'skip$ 
-    { new.block 
-      format.url output
-      format.lastchecked output 
-    }
-  if$
-}
-
-FUNCTION {output.web.refs}
-{
-  new.block
-  output.url
-  addeprints eprint empty$ not and
-    { format.eprint output.nonnull }
-    'skip$
-  if$
-  adddoiresolver doi empty$ not and
-    { format.doi output.nonnull }
-    'skip$
-  if$
-%  addeprints
-%    { eprint empty$
-%        'skip$
-%        { format.eprint output.nonnull }
-%      if$
-%    }
-%    'skip$
-%  if$
-}
-
-% Webpage entry type.
-% Title and url fields required;
-% author, note, year, month, and lastchecked fields optional
-% See references 
-%   ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
-%   http://www.classroom.net/classroom/CitingNetResources.html
-%   http://neal.ctstateu.edu/history/cite.html
-%   http://www.cas.usf.edu/english/walker/mla.html
-% for citation formats for web pages.
-FUNCTION {webpage}
-{ output.bibitem
-  author empty$
-    { editor empty$
-        'skip$  % author and editor both optional
-        { format.editors output.nonnull }
-      if$
-    }
-    { editor empty$
-        { format.authors output.nonnull }
-        { "can't use both author and editor fields in " cite$ * warning$ }
-      if$
-    }
-  if$
-%  author empty$
-%    'skip$
-%    { format.authors output.nonnull }
-%  if$
-  new.block
-  format.title "title" output.check
-  inbrackets "online" output
-  new.block
-  year empty$
-    'skip$
-    { format.date "year" output.check }
-  if$
-  lastchecked empty$
-    'skip$
-    { format.lastchecked output }
-  if$
-  new.block
-  format.url "url" output.check
-  new.block
-  note output
-  fin.entry
-}
-% ...urlbst to here
-
-
-FUNCTION {article}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { journal emphasize "journal" output.check
-      format.vol.num.pages output
-      format.date "year" output.check
-    }
-    { format.article.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {book}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check }
-    { format.authors output.nonnull
-      crossref missing$
-	{ "author and editor" editor either.or.check }
-	'skip$
-      if$
-    }
-  if$
-  new.block
-  format.btitle "title" output.check
-  crossref missing$
-    { format.bvolume output
-      new.block
-      format.number.series output
-      new.sentence
-      publisher "publisher" output.check
-      address output
-    }
-    { new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.edition output
-  format.date "year" output.check
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {booklet}
-{ output.bibitem
-  format.authors output
-  new.block
-  format.title "title" output.check
-  howpublished address new.block.checkb
-  howpublished output
-  address output
-  format.date output
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check }
-    { format.authors output.nonnull
-      crossref missing$
-	{ "author and editor" editor either.or.check }
-	'skip$
-      if$
-    }
-  if$
-  new.block
-  format.btitle "title" output.check
-  crossref missing$
-    { format.bvolume output
-      format.chapter.pages "chapter and pages" output.check
-      new.block
-      format.number.series output
-      new.sentence
-      publisher "publisher" output.check
-      address output
-    }
-    { format.chapter.pages "chapter and pages" output.check
-      new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.edition output
-  format.date "year" output.check
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.bvolume output
-      format.number.series output
-      format.chapter.pages output
-      new.sentence
-      publisher "publisher" output.check
-      address output
-      format.edition output
-      format.date "year" output.check
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.chapter.pages output
-    }
-  if$
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.bvolume output
-      format.number.series output
-      format.pages output
-      address empty$
-	{ organization publisher new.sentence.checkb
-	  organization output
-	  publisher output
-	  format.date "year" output.check
-	}
-	{ address output.nonnull
-	  format.date "year" output.check
-	  new.sentence
-	  organization output
-	  publisher output
-	}
-      if$
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-
-FUNCTION {manual}
-{ output.bibitem
-  author empty$
-    { organization empty$
-	'skip$
-	{ organization output.nonnull
-	  address output
-	}
-      if$
-    }
-    { format.authors output.nonnull }
-  if$
-  new.block
-  format.btitle "title" output.check
-  author empty$
-    { organization empty$
-	{ address new.block.checka
-	  address output
-	}
-	'skip$
-      if$
-    }
-    { organization address new.block.checkb
-      organization output
-      address output
-    }
-  if$
-  format.edition output
-  format.date output
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  "Master's thesis" format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  format.date "year" output.check
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
-  format.authors output
-  title howpublished new.block.checkb
-  format.title output
-  howpublished new.block.checka
-  howpublished output
-  format.date output
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-  empty.misc.check
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.btitle "title" output.check
-  new.block
-  "PhD thesis" format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  format.date "year" output.check
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
-  editor empty$
-    { organization output }
-    { format.editors output.nonnull }
-  if$
-  new.block
-  format.btitle "title" output.check
-  format.bvolume output
-  format.number.series output
-  address empty$
-    { editor empty$
-	{ publisher new.sentence.checka }
-	{ organization publisher new.sentence.checkb
-	  organization output
-	}
-      if$
-      publisher output
-      format.date "year" output.check
-    }
-    { address output.nonnull
-      format.date "year" output.check
-      new.sentence
-      editor empty$
-	'skip$
-	{ organization output }
-      if$
-      publisher output
-    }
-  if$
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  format.tr.number output.nonnull
-  institution "institution" output.check
-  address output
-  format.date "year" output.check
-  new.block
-  note output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
-  format.authors "author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  note "note" output.check
-  format.date output
-  output.web.refs  % urlbst
-  fin.entry
-}
-
-FUNCTION {default.type} { misc }
-
-MACRO {jan} {"January"}
-
-MACRO {feb} {"February"}
-
-MACRO {mar} {"March"}
-
-MACRO {apr} {"April"}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"June"}
-
-MACRO {jul} {"July"}
-
-MACRO {aug} {"August"}
-
-MACRO {sep} {"September"}
-
-MACRO {oct} {"October"}
-
-MACRO {nov} {"November"}
-
-MACRO {dec} {"December"}
-
-MACRO {acmcs} {"ACM Computing Surveys"}
-
-MACRO {acta} {"Acta Informatica"}
-
-MACRO {cacm} {"Communications of the ACM"}
-
-MACRO {ibmjrd} {"IBM Journal of Research and Development"}
-
-MACRO {ibmsj} {"IBM Systems Journal"}
-
-MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
-
-MACRO {ieeetc} {"IEEE Transactions on Computers"}
-
-MACRO {ieeetcad}
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
-
-MACRO {ipl} {"Information Processing Letters"}
-
-MACRO {jacm} {"Journal of the ACM"}
-
-MACRO {jcss} {"Journal of Computer and System Sciences"}
-
-MACRO {scp} {"Science of Computer Programming"}
-
-MACRO {sicomp} {"SIAM Journal on Computing"}
-
-MACRO {tocs} {"ACM Transactions on Computer Systems"}
-
-MACRO {tods} {"ACM Transactions on Database Systems"}
-
-MACRO {tog} {"ACM Transactions on Graphics"}
-
-MACRO {toms} {"ACM Transactions on Mathematical Software"}
-
-MACRO {toois} {"ACM Transactions on Office Information Systems"}
-
-MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
-
-MACRO {tcs} {"Theoretical Computer Science"}
-
-READ
-
-FUNCTION {sortify}
-{ purify$
-  "l" change.case$
-}
-
-INTEGERS { len }
-
-FUNCTION {chop.word}
-{ 's :=
-  'len :=
-  s #1 len substring$ =
-    { s len #1 + global.max$ substring$ }
-    's
-  if$
-}
-
-FUNCTION {sort.format.names}
-{ 's :=
-  #1 'nameptr :=
-  ""
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { nameptr #1 >
-	{ "   " * }
-	'skip$
-      if$
-      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
-      nameptr numnames = t "others" = and
-	{ "et al" * }
-	{ t sortify * }
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
-  "A " #2
-    "An " #3
-      "The " #4 t chop.word
-    chop.word
-  chop.word
-  sortify
-  #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
-    { key empty$
-	{ "to sort, need author or key in " cite$ * warning$
-	  ""
-	}
-	{ key sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
-    { editor empty$
-	{ key empty$
-	    { "to sort, need author, editor, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ editor sort.format.names }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.organization.sort}
-{ author empty$
-    { organization empty$
-	{ key empty$
-	    { "to sort, need author, organization, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ "The " #4 organization chop.word sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {editor.organization.sort}
-{ editor empty$
-    { organization empty$
-	{ key empty$
-	    { "to sort, need editor, organization, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ "The " #4 organization chop.word sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-
-FUNCTION {presort}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-	'editor.organization.sort
-	{ type$ "manual" =
-	    'author.organization.sort
-	    'author.sort
-	  if$
-	}
-      if$
-    }
-  if$
-  "    "
-  *
-  year field.or.null sortify
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {presort}
-
-SORT
-
-STRINGS { longest.label }
-
-INTEGERS { number.label longest.label.width }
-
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
-  #1 'number.label :=
-  #0 'longest.label.width :=
-}
-
-FUNCTION {longest.label.pass}
-{ number.label int.to.str$ 'label :=
-  number.label #1 + 'number.label :=
-  label width$ longest.label.width >
-    { label 'longest.label :=
-      label width$ 'longest.label.width :=
-    }
-    'skip$
-  if$
-}
-
-EXECUTE {initialize.longest.label}
-
-ITERATE {longest.label.pass}
-
-FUNCTION {begin.bib}
-{ preamble$ empty$
-    'skip$
-    { preamble$ write$ newline$ }
-  if$
-  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
-}
-
-EXECUTE {begin.bib}
-
-EXECUTE {init.config.constants}
-EXECUTE {init.state.consts}
-
-ITERATE {call.type$}
-
-FUNCTION {end.bib}
-{ newline$
-  "\end{thebibliography}" write$ newline$
-}
-
-EXECUTE {end.bib}
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.5: 0004-Make-item-recognise-its-optional-argument.patch --]
[-- Type: text/x-patch, Size: 3540 bytes --]

From 9aa62bfb269fc718900a13a31211288f3307d080 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Tue, 14 Apr 2009 15:01:13 +0200
Subject: [PATCH] Make \item recognise its optional argument

---
 dependencies.tex |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 9d26378..beda6f3 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -449,19 +449,19 @@ is only for package manager use and must not be used by ebuilds.
     A kdebuild-style use dependency consists of one of the following:
 
     \begin{description}
-    \item{[opt]} The flag must be enabled.
-    \item{[opt=]} The flag must be enabled if the flag is enabled for the package with the
+    \item[{[opt]}] The flag must be enabled.
+    \item[{[opt=]}] The flag must be enabled if the flag is enabled for the package with the
         dependency, or disabled otherwise.
-    \item{[opt!=]} The flag must be disabled if the flag is enabled for the package with the
+    \item[{[opt!=]}] The flag must be disabled if the flag is enabled for the package with the
         dependency, or enabled otherwise.
-    \item{[opt?]} The flag must be enabled if the flag is enabled for the package with the
+    \item[{[opt?]}] The flag must be enabled if the flag is enabled for the package with the
         dependency.
-    \item{[opt!?]} The flag must be enabled if the use flag is disabled for the package with the
+    \item[{[opt!?]}] The flag must be enabled if the use flag is disabled for the package with the
         dependency.
-    \item{[-opt]} The flag must be disabled.
-    \item{[-opt?]} The flag must be disabled if the flag is enabled for the package with the
+    \item[{[-opt]}] The flag must be disabled.
+    \item[{[-opt?]}] The flag must be disabled if the flag is enabled for the package with the
         dependency.
-    \item{[-opt!?]} The flag must be disabled if the flag is disabled for the package with the
+    \item[{[-opt!?]}] The flag must be disabled if the flag is disabled for the package with the
         dependency.
     \end{description}
 
@@ -479,16 +479,16 @@ is only for package manager use and must not be used by ebuilds.
 A 2-style or 3-style use dependency consists of one of the following:
 
 \begin{description}
-\item{[opt]} The flag must be enabled.
-\item{[opt=]} The flag must be enabled if the flag is enabled for the package with the
+\item[{[opt]}] The flag must be enabled.
+\item[{[opt=]}] The flag must be enabled if the flag is enabled for the package with the
     dependency, or disabled otherwise.
-\item{[!opt=]} The flag must be disabled if the flag is enabled for the package with the
+\item[{[!opt=]}] The flag must be disabled if the flag is enabled for the package with the
     dependency, or enabled otherwise.
-\item{[opt?]} The flag must be enabled if the flag is enabled for the package with the
+\item[{[opt?]}] The flag must be enabled if the flag is enabled for the package with the
     dependency.
-\item{[!opt?]} The flag must be disabled if the use flag is disabled for the package with the
+\item[{[!opt?]}] The flag must be disabled if the use flag is disabled for the package with the
     dependency.
-\item{[-opt]} The flag must be disabled.
+\item[{[-opt]}] The flag must be disabled.
 \end{description}
 
 Multiple requirements may be combined using commas, e.g. \t{[first,-second,third?]}.
-- 
1.6.0.6


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-14 13:55           ` Christian Faulhammer
@ 2009-04-14 14:46             ` Ciaran McCreesh
  2009-04-15 15:28               ` Christian Faulhammer
  0 siblings, 1 reply; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-14 14:46 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 5488 bytes --]

On Tue, 14 Apr 2009 15:55:43 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
> > I agree with you on the principle, but not on the numbers. It's not
> > worth using subdirectories until 'ls' output won't fit on one
> > screen.
> 
>  Having actually done the change, does make the thing look really
> good. After a make run all the .log, .aux and whatever files are also
> around.

Well, it's really an all or nothing thing. And all's going to be a pain
until we're sure we aren't going to have to go back and edit the
history.

> 0001: Desk reference, updated and all issues you raised handled.

You're indenting with two spaces rather than four, and don't have our
precious vim modelines. Lack of consistency makes me cry!

> +  from the same checkout as this overview.  

has trailing whitespace. Git moans about this.

> +  Please report mistakes or enhancements to this document via the

should read "mistakes in or enhancements to"

> +Currently there is no full specification what EAPI 0 includes.
> +Portage, official ebuild documentation and existing ebuilds set the
> +standard here, although obvious errors are still errors.

I'm wondering whether we can tone this (and the similar wording in PMS)
down a bit. The Council approved PMS as "correct, except where people
file bugs" a while back.

> +  disabled explicitely by user configuration) with a \code{+} sign in

Spelling of 'explicitly'.

> +\item[Named slot dependencies] Dependencies can explicitely request a

Ditto.

> +\item[\code{SRC\_URI} arrows] Allows redirection of upstream file
> +  naming scheme by using an "arrow" (\code{->}) to a new file name in
> +  DISTDIR.  See \featureref{src-uri-arrows}.

Not sure on this wording. How about something like:

    SRC_URI="http://some/url -> foo" can be used to use foo as the
    filename for downloads.

> +\item[USE dependencies] Dependencies can be specified to be built with
> +  or without a specific USE flag, thus getting rid of countless
> +  \code{built\_with\_use} checks.  A more sophisticated syntax is
> +  available in EAPI 3.

    Dependencies can specify use flag requirements on their target,
    removing the need for built_with_use checks. A more powerful syntax
    that does not require the flag to be in IUSE is in EAPI 3.

> +  Patching and other preparing tasks must no longer take place in
> +  \code{src\_unpack} but in \code{src\_prepare}.

    Patching and similar preparation must now be done in src_prepare,
    not src_unpack.

> +  be called via \code{default\_\emph{phasename}}, so small additions
> +  you need will not be accompanied by a complete reimplementation of
> +  the phase.  Additionally as a shorthand for the current phase's
> +  default definition \code{default} can be invoked.

    so duplicating the standard implementation is no longer necessary.
    The default function calls the current phase's default_ function
    automatically.

> +  Duplicating checks from the \code{pkg\_setup} phase may be
> +  necessary.

    Most checks should usually be repeated in pkg_setup.

> +  phase can be called even for non-installed packages.  Do not depend
> +  on any outside programs in that case!  See \featureref{pkg-info}.

    Be warned that dependencies might not have been installed.

> +\item[Slot operators] There are two ways to define a wanted slot in a
> +  dependency string:

    Dependencies that are both DEPEND and RDEPEND and that can match
    multiple slots should specify one of:

> +\item[USE dependency defaults] Additionally to the features offered in

    In addition to the ...

> +  after a USE flag (mind the braces).

Braces are {}. You want brackets or parentheses.

> The former leads to the
> +  assumption that the USE flag is available when not found in the
> +  dependency, the latter leads to the reverse behaviour.  This mimicks
> +  parts of the behaviour of \code{-{}-missing} in

    The former specifies that flags not in IUSE should be treated as
    enabled; the latter, disabled. Cannot be used with USE_EXPAND flags.

> +  \code{/usr/share\{doc,info,man\}} are compressed on-disk after

s/are/may be

> +  With \code{docompress} all arguments are passed to the inclusion
> +  list, while the behaviour can be inverted with the \code{-x}
> +  switch.  See \featureref{controllable-compress}.

    docompress path ... adds paths to the inclusion list for
    compression. docompress -x path ... adds paths to the exclusion
    list.

> +  files respectively in the known manner.

"in the known manner" sounds weird.

> +  command given as argument will not abort the build process in case
> +  of a failure but preserve the exit status nonetheless.  See

I'd mention that commands die on error before this. And then:

    will return non-zero on failure rather than aborting the build.

> +\item[USE flags in any-of] Inside of \code{||} constructs USE flag
> +  conditionals are forbidden (with exceptions).

    use? ( ) blocks are forbidden as direct children of || ( ) blocks.

> +  anymore.

'anymore' as a single word is generally considered horrible.

> 0002: Some Makefile tweaking (really minor).

OK, but won't apply easily without 0001, and I'm lazy.

> 0003: Use plainurl.bst from the system.

Applied, thanks.

> 0004: Some proper using of the description environment.

Applied, thanks.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-14 14:46             ` Ciaran McCreesh
@ 2009-04-15 15:28               ` Christian Faulhammer
  2009-04-15 20:35                 ` Ciaran McCreesh
  2009-04-17 14:11                 ` Yannick Mortier
  0 siblings, 2 replies; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-15 15:28 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms


[-- Attachment #1.1: Type: text/plain, Size: 6021 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:
[chapters subdir]
> Well, it's really an all or nothing thing. And all's going to be a
> pain until we're sure we aren't going to have to go back and edit the
> history.

 We can wait with it.


> > 0001: Desk reference, updated and all issues you raised handled.
> 
> You're indenting with two spaces rather than four, and don't have our
> precious vim modelines. Lack of consistency makes me cry!

 Then go change the other files, and if Vim is too dumb to recognise a
LaTeX file, I can't help it.

> > +  from the same checkout as this overview.  
> 
> has trailing whitespace. Git moans about this.

 Fixed.
 
> > +  Please report mistakes or enhancements to this document via the
> 
> should read "mistakes in or enhancements to"
> 
> > +Currently there is no full specification what EAPI 0 includes.
> > +Portage, official ebuild documentation and existing ebuilds set the
> > +standard here, although obvious errors are still errors.
> 
> I'm wondering whether we can tone this (and the similar wording in
> PMS) down a bit. The Council approved PMS as "correct, except where
> people file bugs" a while back.
> 
> > +  disabled explicitely by user configuration) with a \code{+} sign
> > in
> 
> Spelling of 'explicitly'.
> 
> > +\item[Named slot dependencies] Dependencies can explicitely
> > request a
> 
> Ditto.
> 
> > +\item[\code{SRC\_URI} arrows] Allows redirection of upstream file
> > +  naming scheme by using an "arrow" (\code{->}) to a new file name
> > in
> > +  DISTDIR.  See \featureref{src-uri-arrows}.
> 
> Not sure on this wording. How about something like:
> 
>     SRC_URI="http://some/url -> foo" can be used to use foo as the
>     filename for downloads.
> 
> > +\item[USE dependencies] Dependencies can be specified to be built
> > with
> > +  or without a specific USE flag, thus getting rid of countless
> > +  \code{built\_with\_use} checks.  A more sophisticated syntax is
> > +  available in EAPI 3.
> 
>     Dependencies can specify use flag requirements on their target,
>     removing the need for built_with_use checks. A more powerful
> syntax that does not require the flag to be in IUSE is in EAPI 3.
> 
> > +  Patching and other preparing tasks must no longer take place in
> > +  \code{src\_unpack} but in \code{src\_prepare}.
> 
>     Patching and similar preparation must now be done in src_prepare,
>     not src_unpack.
> 
> > +  be called via \code{default\_\emph{phasename}}, so small
> > additions
> > +  you need will not be accompanied by a complete reimplementation
> > of
> > +  the phase.  Additionally as a shorthand for the current phase's
> > +  default definition \code{default} can be invoked.
> 
>     so duplicating the standard implementation is no longer necessary.
>     The default function calls the current phase's default_ function
>     automatically.
> 
> > +  Duplicating checks from the \code{pkg\_setup} phase may be
> > +  necessary.
> 
>     Most checks should usually be repeated in pkg_setup.
> 
> > +  phase can be called even for non-installed packages.  Do not
> > depend
> > +  on any outside programs in that case!  See \featureref{pkg-info}.
> 
>     Be warned that dependencies might not have been installed.
> 
> > +\item[Slot operators] There are two ways to define a wanted slot
> > in a
> > +  dependency string:
> 
>     Dependencies that are both DEPEND and RDEPEND and that can match
>     multiple slots should specify one of:
> 
> > +\item[USE dependency defaults] Additionally to the features
> > offered in
> 
>     In addition to the ...
> 
> > +  after a USE flag (mind the braces).
> 
> Braces are {}. You want brackets or parentheses.
> 
> > The former leads to the
> > +  assumption that the USE flag is available when not found in the
> > +  dependency, the latter leads to the reverse behaviour.  This
> > mimicks
> > +  parts of the behaviour of \code{-{}-missing} in
> 
>     The former specifies that flags not in IUSE should be treated as
>     enabled; the latter, disabled. Cannot be used with USE_EXPAND
> flags.
> 
> > +  \code{/usr/share\{doc,info,man\}} are compressed on-disk after
> 
> s/are/may be
> 
> > +  With \code{docompress} all arguments are passed to the inclusion
> > +  list, while the behaviour can be inverted with the \code{-x}
> > +  switch.  See \featureref{controllable-compress}.
> 
>     docompress path ... adds paths to the inclusion list for
>     compression. docompress -x path ... adds paths to the exclusion
>     list.
> 
> > +  files respectively in the known manner.
> 
> "in the known manner" sounds weird.
> 
> > +  command given as argument will not abort the build process in
> > case
> > +  of a failure but preserve the exit status nonetheless.  See
> 
> I'd mention that commands die on error before this. And then:
> 
>     will return non-zero on failure rather than aborting the build.
> 
> > +\item[USE flags in any-of] Inside of \code{||} constructs USE flag
> > +  conditionals are forbidden (with exceptions).
> 
>     use? ( ) blocks are forbidden as direct children of || ( ) blocks.
> 
> > +  anymore.
> 
> 'anymore' as a single word is generally considered horrible.

 Adressed I hope.  Last iteration, what you don't find now, will go in
later.

And more patches:
0001: Corrected desk reference.
0002: Tell Emacs to use retarded indenting in all LaTeX files, so the
Vim weenies don't whine.
0003: Fix intendation to 4 spaces where needed.
0004: Comment class file
0005: Kick out appendix.sty and a little appendix tweak
0006: Some minor Makefile tweaking
0007: Make email addresses clickable

And for inital review:
0008: Add Gentoo logo to PMS and desk reference.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Desk-reference-for-quick-look-up.patch --]
[-- Type: text/x-patch, Size: 13761 bytes --]

From 39d589249a093170434df2a6185dbace3fd1221c Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Mon, 13 Apr 2009 12:11:54 +0200
Subject: [PATCH] Desk reference for quick look-up

This contains a short summary of all EAPI features so far, similar
to appendix E of PMS, but with more information.
---
 Makefile                       |    8 +-
 cheatsheet/eapi_cheatsheet.tex |  231 ++++++++++++++++++++++++++++++++++++++++
 credits.tex                    |    5 +-
 pms.cls                        |    1 +
 pms.tex                        |    2 +
 5 files changed, 243 insertions(+), 4 deletions(-)
 create mode 100644 cheatsheet/eapi_cheatsheet.tex

diff --git a/Makefile b/Makefile
index e9c3dd4..b585411 100644
--- a/Makefile
+++ b/Makefile
@@ -5,13 +5,14 @@ clean :
 	rm -f *~ *.pdf *.dvi *.log *.aux *.bbl *.blg *.toc *.lol *.loa *.lox \
 	    *.lot *.out *.html *.css *.png *.4ct *.4tc *.idv *.lg *.tmp *.xref vc.tex || true
 
-LATEXFILES = $(shell ls *.tex) pms.cls
+LATEXFILES = $(shell find -name '*.tex') pms.cls
 LISTINGFILES = $(shell ls *.listing)
 SOURCEFILES = $(LATEXFILES) $(LISTINGFILES)
 
-pms.pdf: $(SOURCEFILES) pms.bbl vc.tex
+pms.pdf: $(SOURCEFILES) pms.bbl vc.tex eapi_cheatsheet.pdf
 	pdflatex pms
 	pdflatex pms
+	pdflatex cheatsheet/eapi_cheatsheet
 	pdflatex pms
 
 pms.html: $(SOURCEFILES) pms.bbl
@@ -31,6 +32,9 @@ pms.bbl: pms.bib pms.tex vc.tex
 	latex pms
 	bibtex pms
 
+eapi_cheatsheet.pdf: vc.tex
+	pdflatex cheatsheet/eapi_cheatsheet
+
 vc.tex: pms.tex
 	/bin/sh ./vc
 
diff --git a/cheatsheet/eapi_cheatsheet.tex b/cheatsheet/eapi_cheatsheet.tex
new file mode 100644
index 0000000..278061e
--- /dev/null
+++ b/cheatsheet/eapi_cheatsheet.tex
@@ -0,0 +1,231 @@
+\documentclass[a4paper,notumble]{leaflet}
+\input{vc}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{
+    url,
+    xr-hyper,
+    hyperref,
+    listings,
+    ifthen,
+    mathptmx,
+    courier
+}
+\usepackage[orig,english]{isodate}
+\usepackage[scaled=.90]{helvet}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\version}{0.2}
+\newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
+\renewcommand{\familydefault}{\sfdefault}
+\urlstyle{sf}
+\externaldocument{pms}
+
+\title{EAPI Cheat Sheet}
+\author{Christian
+    Faulhammer\thanks{\href{mailto:fauli@gentoo.org}{fauli@gentoo.org}}}
+\ifthenelse{\equal{\VCDateISO}{}}
+{
+    \date{Version \version{}, generated on: \\\today}
+}{
+    \date{Version \version\\\printdate{\VCDateISO}}
+}
+\CutLine*{1}
+\CutLine*{3}
+\CutLine*{4}
+\CutLine*{6}
+\hypersetup{%
+    urlcolor=black,
+    colorlinks=true,
+    citecolor=black,
+    linkcolor=black,
+    pdftitle={EAPI Desk Reference},
+    pdfauthor={Christian Faulhammer},
+    pdfsubject={Making look-up faster for EAPI features},
+    pdflang={en},
+    pdfkeywords={Gentoo, package manager, reference},
+    pdfproducer={pdfLaTeX and hyperref},
+}
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+\begin{abstract}
+    An overview of the main EAPI changes in Gentoo, for ebuild
+    authors.  For full details, consult the Package Manager
+    Specification\footnote{\url{http://www.gentoo.org/proj/en/qa/pms/}};
+    this is an incomplete summary only.
+
+    Official Gentoo EAPIs are consecutively numbered integers (0, 1,
+    2, \dots).  Except where otherwise noted, an EAPI is the same as
+    the previous EAPI.  All label refer to the PMS document itself,
+    built from the same checkout as this overview.
+
+    Please report mistakes in or enhancements to this document via the
+    Gentoo bug tracking system\footnote{\url{http://bugs.gentoo.org/}}
+    to the original author or the PMS team.
+
+    This document is released under the Creative Commons
+    Attribution-Share Alike 3.0
+    Licence\footnote{\url{http://creativecommons.org/licenses/by-sa/3.0/}}.
+\end{abstract}
+\section{EAPI 0}
+\label{sec:cs:eapi0}
+If there is no EAPI explicitly specified, EAPI 0 is assumed.
+Currently there is no full specification what EAPI 0 includes.
+Portage, official ebuild documentation and existing ebuilds set the
+standard.  If you think you found a bug, you should file a bug report
+nonetheless.
+\newpage
+\section{EAPI 1}
+\label{sec:cs:eapi1}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi1-additions}
+\begin{description}
+    \item[IUSE defaults] An USE flag can be marked as mandatory (if
+    not disabled explicitly by user configuration) with a \code{+}
+    sign in front.  See \featureref{iuse-defaults}.
+    \item[Named slot dependencies] Dependencies can explicitly request
+    a specific slot by using the \code{dev-libs/foo:SLOT} syntax.  See
+    \featureref{slot-deps}.
+\end{description}
+\section{EAPI 2 (2008-09-25)}
+\label{sec:cs:eapi2}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi2-additions}
+\begin{description}
+    \item[\code{SRC\_URI} arrows] Allows redirection of upstream file
+    naming scheme.  By using \code{SRC\_URI="http://some/url -> foo"}
+    the file is saved as \code{foo} in DISTDIR.  See
+    \featureref{src-uri-arrows}.
+    \item[USE dependencies] Dependencies can specify USE flag
+    requirements on their target, removing the need for
+    \code{built\_with\_use} checks. A more powerful syntax that does
+    not require the flag to be in IUSE is in EAPI 3.
+    \begin{description}
+        \item[{[opt]}] The flag must be enabled.
+        \item[{[opt=]}] The flag must be enabled if the flag is
+        enabled for the package with the dependency, or disabled
+        otherwise.
+        \item[{[!opt=]}] The flag must be disabled if the flag is
+        enabled for the package with the dependency, or enabled
+        otherwise.
+        \item[{[opt?]}] The flag must be enabled if the flag is
+        enabled for the package with the dependency.
+        \item[{[!opt?]}] The flag must be disabled if the use flag is
+        disabled for the package with the dependency.
+        \item[{[-opt]}] The flag must be disabled.
+    \end{description}
+    See \featureref{use-deps}.
+    \item[Blocker syntax] A single exclamation mark as a blocker may
+    be ignored by the package manager as long as the stated package is
+    uninstalled later on.  Two exclamation marks are a strong blocker
+    and will always be respected.  See \featureref{bang-strength}.
+    \item[\code{src\_configure, src\_prepare}] Both new phases provide
+    finer granularity in the ebuild's structure.  Configure calls
+    should be moved from \code{src\_compile} to \code{src\_configure}.
+    Patching and similar preparation must now be done in
+    \code{src\_prepare}, not \code{src\_unpack}.  See
+    \featureref{src-prepare} and \featureref{src-configure}.
+    \item[Default phase functions] The default functions for the
+    phases \code{pkg\_nofetch}, \code{src\_unpack},
+    \code{src\_prepare}, \code{src\_configure}, \code{src\_compile}
+    and \code{src\_test} can be called via
+    \code{default\_\emph{phasename}}, so duplicating the standard
+    implementation is no longer necessary for small additions.  The
+    \code{default} function calls the current phase's \code{default\_}
+    function automatically.  so small additions you need will not be
+    accompanied by a complete reimplementation of the phase.
+    Additionally as a shorthand for the current phase's default
+    definition \code{default} can be invoked.  See
+    \featureref{default-phase-funcs} and \featureref{default-func}.
+    \item[\code{doman} language support] The \code{doman} installation
+    function recognizes lanugage specific man page extensions and
+    behaves accordingly.  See \featureref{doman-langs}
+\end{description}
+\newpage
+\section{EAPI 3 (not yet approved)}
+\label{sec:cs:eapi3}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi3-additions}
+\begin{description}
+    \item[\code{pkg\_pretend}] Some useful checks (kernel options for
+    example) can be placed in this new phase to inform the user early.
+    Most checks should usually be repeated in \code{pkg\_setup}.  See
+    \featureref{pkg-pretend}.
+    \item[\code{src\_install}] The \code{src\_install} phase is no
+    longer empty but has a default now.  This comes along with an
+    accompanying \code{default} function.  See
+    \featureref{src-install-3}.
+    \item[\code{pkg\_info} on non-installed packages] The
+    \code{pkg\_info} phase can be called even for non-installed
+    packages.  Be warned that dependencies might not have been
+    installed at execution time.  See \featureref{pkg-info}.
+    \item[No RDEPEND fall-back] The package manager will not fall back
+    to \code{RDEPEND=DEPEND} if RDEPEND is undefined.  See
+    \featureref{rdepend-depend}
+    \item[Support for \code{.xz}] Unpack of \code{.xz} and
+    \code{.tar.xz} files is possible.  See
+    \featureref{unpack-extensions}.
+    \item[Slot operators] Dependencies that are both DEPEND and
+    RDEPEND and that can match multiple slots should specify one of:
+    \begin{description}
+        \item[\code{:*}] Indicates that any slot value is
+        acceptable. In addition, for runtime dependencies, indicates
+        that the package will not break if the matched package is
+        uninstalled and replaced by a different matching package in a
+        different slot.
+        \item[\code{:=}] Indicates that any slot value is
+        acceptable. In addition, for runtime dependencies, indicates
+        that the package will break unless a matching package with
+        slot equal to the slot of the best installed version at the
+        time the package was installed is available.
+    \end{description}
+    See \featureref{slot-operator-deps}.
+    \item[USE dependency defaults] In addition to the features offered
+    in EAPI 2 for USE dependencies, a \code{(+)} or \code{(-)} can be
+    added after a USE flag (mind the parentheses).  The former
+    specifies that flags not in IUSE should be treated as enabled; the
+    latter, disabled. Cannot be used with USE\_EXPAND flags.  This
+    mimicks parts of the behaviour of \code{-{}-missing} in
+    \code{built\_with\_use}.  See \featureref{use-dep-defaults}.
+    \item[Controllable compression] All items in
+    \code{/usr/share\{doc,info,man\}} may be compressed on-disk after
+    \code{src\_install}, except for
+    \code{/usr/share/doc/\$\{PF\}/html}.  \code{docompress path \dots}
+    adds paths to the inclusion list for compression.
+    \code{docompress -x path \dots} adds paths to the exclusion list.
+    \featureref{controllable-compress}.
+    \item[\code{dodoc} recursion] If the \code{-r} switch is given as
+    first argument and followed by directories, files from there are
+    installed recursively.  See \featureref{dodoc}.
+    \item[\code{doins} symlink support] Symbolic links are now
+    properly installed when using recursion (\code{-r} switch).  See
+    \featureref{doins}.
+    \item[New installation functions] \code{doexample},
+    \code{newexample}, \code{doinclude} and \code{newinclude} install
+    example and include files respectively.  See
+    \featureref{doexample} and \featureref{doinclude}.
+    \item[\code{nonfatal} for commands] If you call \code{nonfatal}
+    the command given as argument will not abort the build process in
+    case of a failure (as is the default) but will return non-zero on
+    failure rather than aborting the build..  See
+    \featureref{nonfatal}.
+\end{description}
+\subsection{Removals/Bans}
+\label{sec:cs:eapi3-removalsbans}
+\begin{description}
+    \item[USE flags in any-of] \code{use? ( )} blocks are forbidden as
+    direct children of \code{|| ( )} blocks.  See \featureref{any-use}
+    \item[\code{dohard}, \code{dosed}] Both functions are not allowed
+    anymore.  See \featureref{banned-commands}.
+\end{description}
+\end{document}
+
+% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
+
+%%% Local Variables:
+%%% mode: latex
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
+%%% End:
+
diff --git a/credits.tex b/credits.tex
index 8494516..ceec6cf 100644
--- a/credits.tex
+++ b/credits.tex
@@ -3,8 +3,9 @@
 Thanks to Mike Kelly (package manager provided utilities, section~\ref{sec:pkg-mgr-commands}), Danny van
 Dyk (ebuild functions, section~\ref{sec:ebuild-functions}), David Leverton (various sections) and
 Petteri Räty (environment state, section~\ref{sec:ebuild-env-state}) for contributions. Thanks to
-Christian Faulhammer for fixing some of the more horrible formatting screwups. Thanks also to Mike
-Frysinger and Brian Harring for proof-reading and suggestions for fixes and/or clarification.
+Christian Faulhammer for fixing some of the more horrible formatting screwups and providing the EAPI
+cheat sheet. Thanks also to Mike Frysinger and Brian Harring for proof-reading and suggestions for
+fixes and/or clarification.
 
 \section*{Copyright and Licence}
 
diff --git a/pms.cls b/pms.cls
index 90e8584..c5ac869 100644
--- a/pms.cls
+++ b/pms.cls
@@ -32,6 +32,7 @@
   marginnote,
   paralist,
   parskip,
+  pdfpages,
   verbatim,
   algorithm,
   algorithmic
diff --git a/pms.tex b/pms.tex
index 8426706..745882b 100644
--- a/pms.tex
+++ b/pms.tex
@@ -46,6 +46,8 @@
 
 \bibliography{pms}
 
+\includepdf[pages=-,landscape]{eapi_cheatsheet}
+
 \end{document}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Expand-Emacs-local-variables.patch --]
[-- Type: text/x-patch, Size: 11599 bytes --]

From 603f19e4fbdc913d6ec191ab9629dd1610adc7f5 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 12:34:09 +0200
Subject: [PATCH] Expand Emacs local variables

Set indentation level to 4
Fix some cosmetic spacing issues
Add missing local variables list
---
 appendices.tex            |    3 +++
 credits.tex               |    3 +++
 dependencies.tex          |    4 +++-
 eapi-differences.tex      |    3 +++
 eapis.tex                 |    3 +++
 ebuild-env-commands.tex   |    3 +++
 ebuild-env-invariancy.tex |    4 +++-
 ebuild-env-state.tex      |    3 +++
 ebuild-env-vars.tex       |    3 +++
 ebuild-environment.tex    |    3 +++
 ebuild-format.tex         |    3 +++
 ebuild-functions.tex      |    3 +++
 ebuild-vars.tex           |    3 +++
 eclasses.tex              |    3 +++
 glossary.tex              |    4 +++-
 introduction.tex          |    3 +++
 merge.tex                 |    3 +++
 metadata-cache.tex        |    3 +++
 names.tex                 |    3 +++
 pkg-mgr-commands.tex      |    3 +++
 pms.cls                   |    8 ++++++++
 pms.tex                   |    4 +++-
 profile-variables.tex     |    3 +++
 profiles.tex              |    3 +++
 tree-layout.tex           |    4 ++++
 virtuals.tex              |    3 +++
 26 files changed, 84 insertions(+), 4 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index fef856b..be4e94f 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -63,4 +63,7 @@ it must not be used.
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/credits.tex b/credits.tex
index ceec6cf..95b66c1 100644
--- a/credits.tex
+++ b/credits.tex
@@ -44,4 +44,7 @@ If any issue cannot be resolved by the PMS team, it may be escalated to the Gent
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/dependencies.tex b/dependencies.tex
index beda6f3..1aacbbb 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -607,8 +607,10 @@ filename to the right of the arrow shall be requested instead of the filename in
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
-
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/eapi-differences.tex b/eapi-differences.tex
index a7d8d4c..b2b92f2 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -363,4 +363,7 @@ EAPI 3 is EAPI 2 with the following changes:
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/eapis.tex b/eapis.tex
index f749f1e..b9cdf62 100644
--- a/eapis.tex
+++ b/eapis.tex
@@ -68,4 +68,7 @@ Except where explicitly noted, everything in this specification applies to all o
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-env-commands.tex b/ebuild-env-commands.tex
index 065560d..5f4c4b3 100644
--- a/ebuild-env-commands.tex
+++ b/ebuild-env-commands.tex
@@ -51,4 +51,7 @@ in the following cases:
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-env-invariancy.tex b/ebuild-env-invariancy.tex
index f0f5a2d..9476a8b 100644
--- a/ebuild-env-invariancy.tex
+++ b/ebuild-env-invariancy.tex
@@ -30,8 +30,10 @@ The following exclusivity and invariancy requirements are mandated:
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
-
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-env-state.tex b/ebuild-env-state.tex
index 7505e4b..82bf6dc 100644
--- a/ebuild-env-state.tex
+++ b/ebuild-env-state.tex
@@ -29,4 +29,7 @@ This is demonstrated by code listing~\ref{lst:env-saving}.
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index b14f6e1..6ea8b59 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -311,4 +311,7 @@ shall be defined in \t{pkg\_prerm} and \t{pkg\_postrm}. It shall contain at most
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-environment.tex b/ebuild-environment.tex
index b1649a6..cf26e81 100644
--- a/ebuild-environment.tex
+++ b/ebuild-environment.tex
@@ -13,4 +13,7 @@
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-format.tex b/ebuild-format.tex
index 5b63822..d6c8270 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -13,4 +13,7 @@ anything to standard output or standard error, or modify the state of the system
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 2adcaf2..96105e4 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -684,4 +684,7 @@ and \t{pkg\_postinst} functions are not called.
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 419c96c..b2c1bd9 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -297,4 +297,7 @@ based upon any variant condition.
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/eclasses.tex b/eclasses.tex
index 3888a0e..e55190b 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -86,4 +86,7 @@ must be named \t{eclassname\_phasefunctionname}, where \t{eclassname} is the nam
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/glossary.tex b/glossary.tex
index 1ef41a9..729ee39 100644
--- a/glossary.tex
+++ b/glossary.tex
@@ -22,10 +22,12 @@ be immediately obvious.
 
 \end{description}
 
-
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/introduction.tex b/introduction.tex
index 95b5ecc..3986f57 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -39,4 +39,7 @@ applicable to tools or other applications that interact with ebuilds or ebuild r
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/merge.tex b/merge.tex
index aef0250..91db3fb 100644
--- a/merge.tex
+++ b/merge.tex
@@ -117,4 +117,7 @@ Ebuilds must not attempt to install any other type of file (FIFOs, device nodes
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/metadata-cache.tex b/metadata-cache.tex
index 60186c0..70afe2f 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -48,4 +48,7 @@ not a supported EAPI on line 15 if it does not.
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/names.tex b/names.tex
index 53ff520..42bbc99 100644
--- a/names.tex
+++ b/names.tex
@@ -161,4 +161,7 @@ For example, a repository may not contain more than one of \t{foo-bar/baz-1.0.2}
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 0e88ed0..cb9a6cf 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -988,4 +988,7 @@ ebuilds:
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/pms.cls b/pms.cls
index c5ac869..483b30c 100644
--- a/pms.cls
+++ b/pms.cls
@@ -143,3 +143,11 @@
 \areaset[-30mm]{400pt}{700pt}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
+%%% End:
diff --git a/pms.tex b/pms.tex
index 745882b..a1bab85 100644
--- a/pms.tex
+++ b/pms.tex
@@ -52,8 +52,10 @@
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
-
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: t
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/profile-variables.tex b/profile-variables.tex
index eb453e1..b514cac 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -101,4 +101,7 @@ and are not required to be interpreted by the package manager.
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/profiles.tex b/profiles.tex
index 4af3304..fb0577b 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -169,4 +169,7 @@ A package manager may treat \t{ARCH} values that are not the current architectur
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/tree-layout.tex b/tree-layout.tex
index e49a931..e15d047 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -246,9 +246,13 @@ various XML files used in the repository, and repository timestamps.
 
 The \t{metadata/cache} directory may contain a cached form of all important ebuild metadata
 variables. The contents of this directory are described in section~\ref{metadata-cache}.
+
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
diff --git a/virtuals.tex b/virtuals.tex
index b75c488..8ac05aa 100644
--- a/virtuals.tex
+++ b/virtuals.tex
@@ -39,4 +39,7 @@ Blocks on provided virtuals have special behaviour documented in section~\ref{pr
 %%% Local Variables:
 %%% mode: latex
 %%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
 %%% End:
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Change-intendation-to-4-spaces.patch --]
[-- Type: text/x-patch, Size: 3286 bytes --]

From e584fa958309219424175231c13ed75e63a80df5 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 13:38:32 +0200
Subject: [PATCH] Change intendation to 4 spaces

---
 pms.cls |   82 +++++++++++++++++++++++++++++++-------------------------------
 1 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/pms.cls b/pms.cls
index 483b30c..16eaf9d 100644
--- a/pms.cls
+++ b/pms.cls
@@ -13,32 +13,32 @@
 \PassOptionsToPackage{utf8}{inputenc}
 % algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
-  fontenc,
-  isodate,
-  typearea,
-  caption,
-  inputenc,
-  appendix,
-  booktabs,
-  color,
-  enumitem,
-  float,
-  fullpage,
-  graphicx,
-  hyperref,
-  ifthen,
-  longtable,
-  lscape,
-  marginnote,
-  paralist,
-  parskip,
-  pdfpages,
-  verbatim,
-  algorithm,
-  algorithmic
+    fontenc,
+    isodate,
+    typearea,
+    caption,
+    inputenc,
+    appendix,
+    booktabs,
+    color,
+    enumitem,
+    float,
+    fullpage,
+    graphicx,
+    hyperref,
+    ifthen,
+    longtable,
+    lscape,
+    marginnote,
+    paralist,
+    parskip,
+    pdfpages,
+    verbatim,
+    algorithm,
+    algorithmic
 }
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
-  Specification, loaded baseclass: \ClassToLoad\MessageBreak}
+    Specification, loaded baseclass: \ClassToLoad\MessageBreak}
 \input{vc}
 
 \newboolean{TEX4HT-HACKS}
@@ -110,33 +110,33 @@
 }
 
 \hypersetup{%
-  urlcolor=black,
-  colorlinks=true,
-  citecolor=black,
-  linkcolor=black,
-  pdftitle={Package Manager Specification},
-  pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
-  pdfcreator={pdfLaTeX and hyperref},
-  pdfsubject={Defining a feature set for package managers in the
-    Gentoo world},
-  pdflang={en},
-  pdfkeywords={Gentoo, package manager, specification},
-  pdfproducer={pdfLaTeX and hyperref},
+    urlcolor=black,
+    colorlinks=true,
+    citecolor=black,
+    linkcolor=black,
+    pdftitle={Package Manager Specification},
+    pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
+    pdfcreator={pdfLaTeX and hyperref},
+    pdfsubject={Defining a feature set for package managers in the
+        Gentoo world},
+    pdflang={en},
+    pdfkeywords={Gentoo, package manager, specification},
+    pdfproducer={pdfLaTeX and hyperref},
 }
 \title{Package Manager Specification}
-\author{Stephen P. Bennett\\\url{spb@exherbo.org}
-\and Ciaran McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
+\author{Stephen P. Bennett\\\url{spb@exherbo.org} \and Ciaran
+    McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
 % Make the build succeed even when no Git repository is available
 \ifthenelse{\equal{\VCDateISO}{}}
 {
-  \date{Generated on: \today}
+    \date{Generated on: \today}
 }{
-  \date{\printdate{\VCDateISO}}
+    \date{\printdate{\VCDateISO}}
 }
 
 \pagestyle{myheadings}
 \markboth{\scshape Package Manager Specification}{\scshape Package
-  Manager Specification}
+    Manager Specification}
 % This is some kind of hack.  We set the proportions of the text area
 % and then move it 30mm to the left to increase the right (outer)
 % margin.
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.5: 0004-Comment-class-file-a-bit-more-for-beginner.patch --]
[-- Type: text/x-patch, Size: 5591 bytes --]

From 79d6b8f71f6b205576a37144aabb703338d70cd1 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 13:49:22 +0200
Subject: [PATCH] Comment class file a bit more for beginner

---
 pms.cls |   75 +++++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 47 insertions(+), 28 deletions(-)

diff --git a/pms.cls b/pms.cls
index 16eaf9d..8fc943f 100644
--- a/pms.cls
+++ b/pms.cls
@@ -1,46 +1,54 @@
 \NeedsTeXFormat{LaTeX2e}%
 \newcommand{\ClassToLoad}{report}
-\ProvidesClass{pms}[2009/04/04]
+\ProvidesClass{pms}
+% Accept all options given through the loading tex file
 \DeclareOption*{%
     \PassOptionsToClass{\CurrentOption}{\ClassToLoad}
 }
 \PassOptionsToClass{a4paper}{\ClassToLoad}
+% Let the base class process all give options, either from this class
+% or user defined from an outside tex file.
 \ProcessOptions\relax
 \LoadClass{\ClassToLoad}
 \PassOptionsToPackage{T1}{fontenc}
 \PassOptionsToPackage{orig,english}{isodate}
+% Position caption of float environments at the top
 \PassOptionsToPackage{position=top}{caption}
+% Enable UTF-8 input encoding
 \PassOptionsToPackage{utf8}{inputenc}
 % algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
-    fontenc,
-    isodate,
-    typearea,
-    caption,
-    inputenc,
-    appendix,
-    booktabs,
-    color,
+    fontenc,	% Load extended font sets
+    isodate,	% Date formatting and conversions
+    typearea,	% Set page layout
+    caption,	% Extended float environment formatting
+    inputenc,	% Allow input methods apart from ASCII
+    appendix,	
+    booktabs,	% Nicer formatting of tables
+    color,	% Support more than black&white
     enumitem,
-    float,
+    float,	% More control over float environments
     fullpage,
-    graphicx,
-    hyperref,
-    ifthen,
-    longtable,
-    lscape,
-    marginnote,
-    paralist,
-    parskip,
-    pdfpages,
-    verbatim,
-    algorithm,
-    algorithmic
+    graphicx,	% Image support
+    hyperref,	% Support for hyperlinks
+    ifthen,	% Comfortable conditional routines
+    longtable,	% Extend tables over more than one page
+    lscape,	% Rotating pages
+    marginnote, % Typeset a paragraph in the page margin
+    paralist,	% Additional list environments
+    parskip,	% Space between paragraps instead of intendation
+    pdfpages,	% Include PDF files wholly
+    verbatim,	% Extend the print-as-is functionality
+    algorithm,	%
+    algorithmic % Set algorithms
 }
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
     Specification, loaded baseclass: \ClassToLoad\MessageBreak}
+% Contains information over the source control system, generated
+% through Makefile
 \input{vc}
 
+% Make processing with TeX4HT possible
 \newboolean{TEX4HT-HACKS}
 \ifx\HCode\undefined
     \RequirePackage{mathptmx,
@@ -56,11 +64,16 @@
 \newfloat{listing}{tbp}{lol}[chapter]
 \floatname{listing}{Listing}
 \newcommand{\listoflistings}{\listof{listing}{Listings}}
+% Define own label and reference commands, that display the label in
+% the page margin.
 \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
 \newcommand{\compactfeatureref}[1]{#1~p\pageref{feat:#1}}
-\newcommand{\featurelabel}[1]{\marginnote{\framebox{\textsc{#1}}}\label{feat:#1}}
+\newcommand{\featurelabel}[1]{\marginnote{%
+        \framebox{\textsc{#1}}}\label{feat:#1}
+}
 \bibliographystyle{plainurl}
 
+% Some shorthands for the lazy ones.
 \renewcommand{\t}[1]{\texttt{#1}}
 \renewcommand{\i}[1]{\textit{#1}}
 \newcommand{\e}[1]{\emph{#1}}
@@ -73,12 +86,12 @@
 \newboolean{ENABLE-ALL-OPTIONS}
 \newboolean{ENABLE-KDEBUILD}
 
-%%% Enable the below option if you'd like to see both sides of KDEBUILD conditionals shown in
-%%% different colours. Disable it to either fully enable or fully disable KDEBUILD.
-%%% Not compatible with HTML output.
+% Enable the below option if you'd like to see both sides of KDEBUILD
+% conditionals shown in different colours. Disable it to either fully
+% enable or fully disable KDEBUILD.  Not compatible with HTML output.
 \setboolean{ENABLE-ALL-OPTIONS}{false}
 
-%%% Enable the below if you'd like to see KDEBUILD things.
+% Enable the below if you'd like to see KDEBUILD things.
 \setboolean{ENABLE-KDEBUILD}{true}
 
 \ifthenelse{\boolean{ENABLE-ALL-OPTIONS}\and\not\boolean{TEX4HT-HACKS}}
@@ -99,6 +112,8 @@
     }
 }
 
+% Because we are lazy, we define a table environment to fullfil our
+% needs
 \newenvironment{centertable}[1]%
 {
   \begin{table}
@@ -109,6 +124,7 @@
   \end{table}
 }
 
+% Define some PDF meta-data.
 \hypersetup{%
     urlcolor=black,
     colorlinks=true,
@@ -123,10 +139,12 @@
     pdfkeywords={Gentoo, package manager, specification},
     pdfproducer={pdfLaTeX and hyperref},
 }
+% Some metadata needed for the title page generation
 \title{Package Manager Specification}
 \author{Stephen P. Bennett\\\url{spb@exherbo.org} \and Ciaran
     McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
-% Make the build succeed even when no Git repository is available
+% Reads the last commit date from the Git repository and even succeeds
+% when none is available
 \ifthenelse{\equal{\VCDateISO}{}}
 {
     \date{Generated on: \today}
@@ -134,6 +152,7 @@
     \date{\printdate{\VCDateISO}}
 }
 
+% Set page title
 \pagestyle{myheadings}
 \markboth{\scshape Package Manager Specification}{\scshape Package
     Manager Specification}
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.6: 0005-Remove-appendix.sty.patch --]
[-- Type: text/x-patch, Size: 1235 bytes --]

From e1ca8aeccac2b0844d3acf591d0bfd83c57d3757 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 13:57:34 +0200
Subject: [PATCH] Remove appendix.sty

Seems not to be in use.  Move \appendix switch from appendices.tex to
pms.tex main file.
---
 appendices.tex |    2 --
 pms.cls        |    1 -
 pms.tex        |    1 +
 3 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index be4e94f..82c1109 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -1,5 +1,3 @@
-\appendix
-
 \chapter{metadata.xml}
 \label{sec:metadata-xml}
 
diff --git a/pms.cls b/pms.cls
index 8fc943f..b046973 100644
--- a/pms.cls
+++ b/pms.cls
@@ -23,7 +23,6 @@
     typearea,	% Set page layout
     caption,	% Extended float environment formatting
     inputenc,	% Allow input methods apart from ASCII
-    appendix,	
     booktabs,	% Nicer formatting of tables
     color,	% Support more than black&white
     enumitem,
diff --git a/pms.tex b/pms.tex
index a1bab85..b7e5c9d 100644
--- a/pms.tex
+++ b/pms.tex
@@ -40,6 +40,7 @@
 
 \include{glossary}
 
+\appendix
 \include{appendices}
 
 \include{eapi-differences}
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.7: 0006-Tweak-Makefile-with-additional-dependency-on-targets.patch --]
[-- Type: text/x-patch, Size: 925 bytes --]

From 9048120e6d4f7da329c790441642b1b8f3c615d1 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 15:08:03 +0200
Subject: [PATCH] Tweak Makefile with additional dependency on targets

---
 Makefile |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index b585411..dd23de5 100644
--- a/Makefile
+++ b/Makefile
@@ -28,14 +28,14 @@ pms.html: $(SOURCEFILES) pms.bbl
 	@# align algorithm line numbers properly
 	sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
 
-pms.bbl: pms.bib pms.tex vc.tex
+pms.bbl: pms.bib pms.tex vc.tex eapi_cheatsheet.pdf
 	latex pms
 	bibtex pms
 
 eapi_cheatsheet.pdf: vc.tex
 	pdflatex cheatsheet/eapi_cheatsheet
 
-vc.tex: pms.tex
+vc.tex: pms.tex vc-git.awk
 	/bin/sh ./vc
 
 pms.dvi: $(SOURCEFILES) pms.bbl
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.8: 0007-Make-email-addresses-clickable.patch --]
[-- Type: text/x-patch, Size: 974 bytes --]

From d9dc7964a91ad377e430d5884a4cf6a6ae90bc78 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 15:16:37 +0200
Subject: [PATCH] Make email addresses clickable

---
 pms.cls |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index b046973..8a0c0f0 100644
--- a/pms.cls
+++ b/pms.cls
@@ -140,8 +140,10 @@
 }
 % Some metadata needed for the title page generation
 \title{Package Manager Specification}
-\author{Stephen P. Bennett\\\url{spb@exherbo.org} \and Ciaran
-    McCreesh\\\url{ciaran.mccreesh@googlemail.com}}
+\author{Stephen P. Bennett \\
+    \href{mailto:spb@exherbo.org}{spb@exherbo.org} \and Ciaran
+    McCreesh \\
+    \href{mailto:ciaran.mccreesh@googlemail.com}{ciaran.mccreesh@googlemail.com}}
 % Reads the last commit date from the Git repository and even succeeds
 % when none is available
 \ifthenelse{\equal{\VCDateISO}{}}
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.9: 0008-Add-Gentoo-logo-to-desk-reference-and-titlepage-of-P.patch --]
[-- Type: text/x-patch, Size: 17760 bytes --]

From a963ed74f76e04a2ca89ecccd2fe1721cf4bf001 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 17:04:49 +0200
Subject: [PATCH] Add Gentoo logo to desk reference and titlepage of PMS

pms.dvi target thus invalid as it won't process png files
---
 Makefile                       |   16 +-
 cheatsheet/eapi_cheatsheet.tex |    5 +-
 gentoo-logo.svg                |  328 ++++++++++++++++++++++++++++++++++++++++
 pms.cls                        |    3 +-
 4 files changed, 341 insertions(+), 11 deletions(-)
 create mode 100644 gentoo-logo.svg

diff --git a/Makefile b/Makefile
index dd23de5..55e9834 100644
--- a/Makefile
+++ b/Makefile
@@ -9,13 +9,13 @@ LATEXFILES = $(shell find -name '*.tex') pms.cls
 LISTINGFILES = $(shell ls *.listing)
 SOURCEFILES = $(LATEXFILES) $(LISTINGFILES)
 
-pms.pdf: $(SOURCEFILES) pms.bbl vc.tex eapi_cheatsheet.pdf
+pms.pdf: $(SOURCEFILES) pms.bbl vc.tex eapi_cheatsheet.pdf gentoo-logo.png
 	pdflatex pms
 	pdflatex pms
 	pdflatex cheatsheet/eapi_cheatsheet
 	pdflatex pms
 
-pms.html: $(SOURCEFILES) pms.bbl
+pms.html: $(SOURCEFILES) pms.bbl gentoo-logo.png
 	@# need to do it twice to make the big env var table work
 	xhlatex pms
 	xhlatex pms
@@ -28,20 +28,18 @@ pms.html: $(SOURCEFILES) pms.bbl
 	@# align algorithm line numbers properly
 	sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
 
-pms.bbl: pms.bib pms.tex vc.tex eapi_cheatsheet.pdf
-	latex pms
+pms.bbl: pms.bib pms.tex vc.tex eapi_cheatsheet.pdf gentoo-logo.png
+	pdflatex pms
 	bibtex pms
 
-eapi_cheatsheet.pdf: vc.tex
+eapi_cheatsheet.pdf: vc.tex gentoo-logo.png
 	pdflatex cheatsheet/eapi_cheatsheet
 
 vc.tex: pms.tex vc-git.awk
 	/bin/sh ./vc
 
-pms.dvi: $(SOURCEFILES) pms.bbl
-	latex pms
-	latex pms
-	latex pms
+gentoo-logo.png: gentoo-logo.svg
+	convert gentoo-logo.svg gentoo-logo.png
 
 upload: pms.pdf
 	scp pms.pdf dev.gentoo.org:public_html
diff --git a/cheatsheet/eapi_cheatsheet.tex b/cheatsheet/eapi_cheatsheet.tex
index 278061e..1bbcbab 100644
--- a/cheatsheet/eapi_cheatsheet.tex
+++ b/cheatsheet/eapi_cheatsheet.tex
@@ -9,7 +9,8 @@
     listings,
     ifthen,
     mathptmx,
-    courier
+    courier,
+    graphicx
 }
 \usepackage[orig,english]{isodate}
 \usepackage[scaled=.90]{helvet}
@@ -45,6 +46,8 @@
     pdfkeywords={Gentoo, package manager, reference},
     pdfproducer={pdfLaTeX and hyperref},
 }
+\AddToBackground*{2}{\hspace*{5cm}\includegraphics{gentoo-logo}}
+\AddToBackground*{1}{\hspace*{5cm}\includegraphics{gentoo-logo}}
 \begin{document}
 \maketitle
 \thispagestyle{empty}
diff --git a/gentoo-logo.svg b/gentoo-logo.svg
new file mode 100644
index 0000000..cf7c270
--- /dev/null
+++ b/gentoo-logo.svg
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="594.6626"
+   height="622.50458"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.44"
+   sodipodi:docbase="/home/mike/gentoo-cvs/gentoo/xml/images"
+   sodipodi:docname="gentoo-logo.svg"
+   version="1.0">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient2096">
+      <stop
+         style="stop-color:#7e3615;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2098" />
+      <stop
+         id="stop2100"
+         offset="0.50000000"
+         style="stop-color:#7e3615;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ed5b1a;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2102" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2085">
+      <stop
+         style="stop-color:#7f3615;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2087" />
+      <stop
+         id="stop2089"
+         offset="0.50000000"
+         style="stop-color:#ef743d;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ef743d;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2091" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2077">
+      <stop
+         id="stop2079"
+         offset="0.0000000"
+         style="stop-color:#ed5b1a;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ed5b1a;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop2083" />
+      <stop
+         id="stop2081"
+         offset="1.0000000"
+         style="stop-color:#7e3615;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3560">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3562" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3564" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3539">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3541" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3543" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3004">
+      <stop
+         id="stop3006"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0.34214258"
+         id="stop7609" />
+      <stop
+         style="stop-color:#bebdf3;stop-opacity:1;"
+         offset="0.51998252"
+         id="stop7599" />
+      <stop
+         id="stop7611"
+         offset="0.75408828"
+         style="stop-color:#8f82f9;stop-opacity:1;" />
+      <stop
+         style="stop-color:#9f99c7;stop-opacity:1;"
+         offset="0.8711412"
+         id="stop7613" />
+      <stop
+         id="stop3008"
+         offset="1"
+         style="stop-color:#524c76;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2988">
+      <stop
+         style="stop-color:#c9491c;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2990" />
+      <stop
+         style="stop-color:#6b2e26;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2992" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2980">
+      <stop
+         style="stop-color:#e76226;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2982" />
+      <stop
+         style="stop-color:#7e3615;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2984" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2127">
+      <stop
+         style="stop-color:#cc0045;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2129" />
+      <stop
+         style="stop-color:#ff794d;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2131" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2986"
+       x1="464.01675"
+       y1="697.43707"
+       x2="368.62137"
+       y2="269.70941"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.237124,0,0,1.237124,-161.0905,-377.3414)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2994"
+       x1="783.86316"
+       y1="-313.5238"
+       x2="1099.6853"
+       y2="1340.5599"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.237124,0,0,1.237124,-1037.425,-1010.413)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2786"
+       gradientUnits="userSpaceOnUse"
+       x1="142.8909"
+       y1="560.31262"
+       x2="305.19791"
+       y2="560.31262" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="radialGradient2788"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.182864e-2,-1.020879,1.918033,-4.101524e-2,-759.031,896.8714)"
+       cx="298.04648"
+       cy="512.46417"
+       fx="298.04648"
+       fy="512.46417"
+       r="218.02184" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2801"
+       gradientUnits="userSpaceOnUse"
+       x1="34.285702"
+       y1="185.21933"
+       x2="-32.857155"
+       y2="205.21933"
+       gradientTransform="matrix(0.413051,0,0,0.413051,209.7551,299.5351)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3539"
+       id="radialGradient3553"
+       cx="278.19101"
+       cy="365.99103"
+       fx="278.19101"
+       fy="365.99103"
+       r="22.023195"
+       gradientTransform="matrix(-1.335307,0.232165,-0.156016,-0.897333,707.4359,624.6685)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3560"
+       id="radialGradient3566"
+       cx="281.96429"
+       cy="374.32648"
+       fx="281.96429"
+       fy="374.32648"
+       r="30.535715"
+       gradientTransform="matrix(1.586984,6.491459e-2,-3.791318e-3,0.906694,-164.0892,16.62349)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2085"
+       id="radialGradient2075"
+       cx="616.66583"
+       cy="357.7851"
+       fx="616.66583"
+       fy="357.7851"
+       r="77.994896"
+       gradientTransform="matrix(-0.784367,2.082605,-1.36893,-0.515577,1619.589,-726.3586)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="radialGradient3228"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-6.60395e-2,4.190266,-3.573754,-5.626827e-2,2168.154,-1171.421)"
+       cx="332.72311"
+       cy="590.5899"
+       fx="332.72311"
+       fy="590.5899"
+       r="218.02184" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="radialGradient5851"
+       cx="49.529819"
+       cy="320.08572"
+       fx="49.529819"
+       fy="320.08572"
+       r="31.94874"
+       gradientTransform="matrix(3.287367,0,0,2.519654,111.6891,-642.7214)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="341.56282"
+     inkscape:cy="336.08702"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer4"
+     inkscape:window-width="1024"
+     inkscape:window-height="719"
+     inkscape:window-x="0"
+     inkscape:window-y="27" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="back"
+     style="display:inline"
+     sodipodi:insensitive="true"
+     transform="translate(-25.69105,-25.5213)">
+    <path
+       id="path2973"
+       style="opacity:1;fill:url(#linearGradient2994);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 25.756851,521.91391 C 25.825031,495.65357 48.148853,458.98977 79.868697,425.68116 C 101.06675,403.42137 122.59556,383.88231 169.52585,343.86782 C 137.06358,326.05537 86.575337,304.5643 61.242464,276.41883 C 51.868932,266.00461 34.879101,242.4107 38.174477,210.88878 C 44.890902,146.64282 124.18914,49.142619 236.90525,28.529375 C 274.4094,21.670714 317.46879,26.621594 352.90796,42.554294 C 464.08832,92.538537 600.05593,216.71656 616.78506,277.34922 C 622.67343,298.69087 621.54162,332.70947 611.39031,351.66904 C 598.8089,375.16727 555.25451,422.89399 495.66547,472.14219 C 402.16607,549.41609 271.14445,632.39066 173.31256,646.35271 C 141.70156,650.86406 109.40481,646.15872 86.740094,633.36993 C 51.279241,613.36083 39.508186,586.6468 35.370326,578.63961 C 24.367104,557.34729 25.73287,530.37254 25.756851,521.91391 z M 288.89937,226.87362 C 290.10675,211.9842 348.49263,226.80785 344.80352,238.59909 C 340.91155,251.03875 287.51426,243.95446 288.89937,226.87362 z "
+       sodipodi:nodetypes="cscssssssssssscss" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="mid"
+     style="display:inline"
+     sodipodi:insensitive="true"
+     transform="translate(-25.69105,-25.5213)">
+    <path
+       id="path2975"
+       style="opacity:1;fill:url(#linearGradient2986);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 201.12502,319.26488 C 170.40092,345.206 149.97273,362.69737 124.3619,386.10521 C 62.686019,442.47585 20.779962,485.38384 42.384986,544.03745 C 67.307886,611.6985 121.94112,608.26771 186.00654,595.69143 C 351.14346,563.12161 622.59855,354.43165 608.76251,277.34931 C 597.56708,214.97818 445.90819,90.975251 356.11423,46.84913 C 328.062,33.063819 295.73224,25.934162 263.30502,27.459889 C 139.83437,33.287522 43.410732,145.70192 48.3364,206.6102 C 53.12843,265.866 202.89233,317.49757 201.12502,319.26488 z M 182.59146,112.40184 C 145.4382,153.73813 169.19273,233.71314 230.80632,277.3046 C 302.90158,328.31181 419.65062,337.54732 442.88372,298.21016 C 486.21887,224.83738 438.90343,147.25466 368.27318,112.64681 C 298.47778,78.448086 205.75091,86.63492 182.59146,112.40184 z "
+       sodipodi:nodetypes="csssssssccssss" />
+    <path
+       id="path4976"
+       style="opacity:1;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       d="M 309.29559,275.57053 C 361.45453,282.82047 406.41278,261.93195 413.44309,210.42711 C 418.79846,171.19341 358.75371,128.32717 322.65314,118.4403 C 292.50683,110.18416 227.05767,120.80064 222.64536,177.81809 C 218.05858,237.09011 278.88214,271.34317 309.29559,275.57053 z M 283.75291,176.98953 C 249.47413,230.09349 333.52318,246.4198 346.39128,236.73513 C 401.86836,194.98252 298.85531,153.59322 283.75291,176.98953 z "
+       sodipodi:nodetypes="csssscss" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="top"
+     style="display:inline"
+     sodipodi:insensitive="true"
+     transform="translate(-25.69105,-25.5213)">
+    <path
+       style="opacity:1;fill:url(#radialGradient3228);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 253.35285,41.570018 C 192.71898,47.959829 181.10644,55.76371 126.17687,97.322591 C 107.767,111.25125 73.883463,145.14202 65.201668,185.34831 C 61.895163,200.66106 65.803612,213.8809 76.831852,223.15243 C 112.14485,252.84039 171.24791,276.92638 219.73633,300.20947 C 233.93865,307.02911 224.53507,319.39451 201.63241,339.22199 C 143.84068,389.25385 65.705469,450.15645 60.25071,496.56402 C 57.680295,518.43239 65.166835,548.14722 91.710107,563.35382 C 122.71683,581.11751 187.08224,569.52337 230.06148,553.51882 C 292.86747,530.1312 375.36929,478.51514 440.86776,427.77778 C 508.97789,375.01736 572.3054,308.00452 575.43793,297.07484 C 579.28461,283.65337 578.90118,271.25689 571.47758,257.00416 C 559.81983,234.62227 544.23417,217.99109 527.49924,199.37578 C 482.59667,152.03725 435.087,110.44129 378.2447,78.565883 C 337.19672,55.547464 301.08129,36.540217 253.35285,41.570018 z M 342.42072,147.69946 C 386.22586,168.87809 431.21043,224.50639 342.03037,256.52426 C 317.78022,265.23068 240.87245,235.14204 243.22679,194.08046 C 246.65995,133.42478 288.93402,121.84005 342.42072,147.69946 z "
+       id="path2977"
+       sodipodi:nodetypes="cssssssssssscsscsss" />
+  </g>
+</svg>
diff --git a/pms.cls b/pms.cls
index 8a0c0f0..b767685 100644
--- a/pms.cls
+++ b/pms.cls
@@ -139,7 +139,8 @@
     pdfproducer={pdfLaTeX and hyperref},
 }
 % Some metadata needed for the title page generation
-\title{Package Manager Specification}
+\title{Package Manager
+    Specification\\\includegraphics[height=5ex,keepaspectratio]{gentoo-logo}}
 \author{Stephen P. Bennett \\
     \href{mailto:spb@exherbo.org}{spb@exherbo.org} \and Ciaran
     McCreesh \\
-- 
1.6.0.6


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [gentoo-pms] [PATCH] Work around TeX4ht being weird
  2009-04-14  8:32       ` Christian Faulhammer
@ 2009-04-15 19:03         ` David Leverton
  2009-04-15 21:59           ` Christian Faulhammer
  2009-04-16 19:37           ` [gentoo-pms] [PATCH 1/2] " David Leverton
  0 siblings, 2 replies; 27+ messages in thread
From: David Leverton @ 2009-04-15 19:03 UTC (permalink / raw
  To: gentoo-pms; +Cc: David Leverton

---
 pms.cls |   61 ++++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 38 insertions(+), 23 deletions(-)

On Tuesday 14 April 2009 09:32:28 Christian Faulhammer wrote:
>  Or you use \AtEndOfClass{} to do your magic.

That's still too early, but \g@addto@macro\@documentclasshook (the
same mechanism TeX4ht itself uses) seems to work.  Do you think it's
safe to rely on this being true in future versions?  Obviously it's
not a disaster if it doesn't, but I'd rather not go looking for
trouble.

diff --git a/pms.cls b/pms.cls
index 90e8584..d7ef774 100644
--- a/pms.cls
+++ b/pms.cls
@@ -16,25 +16,31 @@
   fontenc,
   isodate,
   typearea,
-  caption,
   inputenc,
   appendix,
   booktabs,
   color,
   enumitem,
-  float,
   fullpage,
   graphicx,
-  hyperref,
   ifthen,
   longtable,
   lscape,
   marginnote,
   paralist,
   parskip,
-  verbatim,
-  algorithm,
-  algorithmic
+  verbatim
+}
+
+% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
+\g@addto@macro\@documentclasshook{
+  \RequirePackage{
+    caption,
+    float,
+    hyperref,
+    algorithm,
+    algorithmic
+  }
 }
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
   Specification, loaded baseclass: \ClassToLoad\MessageBreak}
@@ -51,9 +57,12 @@
     \setboolean{TEX4HT-HACKS}{true}
 \fi
 
-\floatstyle{plaintop}
-\newfloat{listing}{tbp}{lol}[chapter]
-\floatname{listing}{Listing}
+% tex4ht workaround: these need to happen after loading the float package
+\g@addto@macro\@documentclasshook{
+  \floatstyle{plaintop}
+  \newfloat{listing}{tbp}{lol}[chapter]
+  \floatname{listing}{Listing}
+}
 \newcommand{\listoflistings}{\listof{listing}{Listings}}
 \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
 \newcommand{\compactfeatureref}[1]{#1~p\pageref{feat:#1}}
@@ -61,7 +70,10 @@
 \bibliographystyle{plainurl}
 
 \renewcommand{\t}[1]{\texttt{#1}}
-\renewcommand{\i}[1]{\textit{#1}}
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+  \renewcommand{\i}[1]{\textit{#1}}
+}
 \newcommand{\e}[1]{\emph{#1}}
 \renewcommand{\b}[1]{\textbf{#1}}
 \newcommand{\note}[1]{\paragraph{Note:} #1}
@@ -108,19 +120,22 @@
   \end{table}
 }
 
-\hypersetup{%
-  urlcolor=black,
-  colorlinks=true,
-  citecolor=black,
-  linkcolor=black,
-  pdftitle={Package Manager Specification},
-  pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
-  pdfcreator={pdfLaTeX and hyperref},
-  pdfsubject={Defining a feature set for package managers in the
-    Gentoo world},
-  pdflang={en},
-  pdfkeywords={Gentoo, package manager, specification},
-  pdfproducer={pdfLaTeX and hyperref},
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+  \hypersetup{%
+    urlcolor=black,
+    colorlinks=true,
+    citecolor=black,
+    linkcolor=black,
+    pdftitle={Package Manager Specification},
+    pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
+    pdfcreator={pdfLaTeX and hyperref},
+    pdfsubject={Defining a feature set for package managers in the
+      Gentoo world},
+    pdflang={en},
+    pdfkeywords={Gentoo, package manager, specification},
+    pdfproducer={pdfLaTeX and hyperref},
+  }
 }
 \title{Package Manager Specification}
 \author{Stephen P. Bennett\\\url{spb@exherbo.org}
-- 
1.6.2.3




^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-15 15:28               ` Christian Faulhammer
@ 2009-04-15 20:35                 ` Ciaran McCreesh
  2009-04-15 21:58                   ` Christian Faulhammer
  2009-04-15 22:46                   ` Christian Faulhammer
  2009-04-17 14:11                 ` Yannick Mortier
  1 sibling, 2 replies; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-15 20:35 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 2176 bytes --]

On Wed, 15 Apr 2009 17:28:01 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
> > > 0001: Desk reference, updated and all issues you raised handled.
> > 
> > You're indenting with two spaces rather than four, and don't have
> > our precious vim modelines. Lack of consistency makes me cry!
> 
>  Then go change the other files, and if Vim is too dumb to recognise a
> LaTeX file, I can't help it.

The modelines are there for indenting rules. And if everyone used them,
the other files wouldn't be in the mess they're in. Maybe.

> 0001: Corrected desk reference.

> +    the previous EAPI.  All label refer to the PMS document itself,
> +    built from the same checkout as this overview.

s/label/labels/, and s/built/which can be built/

> +    \item[IUSE defaults] An USE flag can be marked as mandatory (if

A use flag, not an.

> +    function automatically.  so small additions you need will not be

That '.' should be a ','. I'd also say "so any small" rather than "so
small".

> 0002: Tell Emacs to use retarded indenting in all LaTeX files, so the
> Vim weenies don't whine.

Applied, thanks.

> 0003: Fix intendation to 4 spaces where needed.

Applied, minus the bits from 0001.

> 0004: Comment class file

Some of the lines in this one have trailing whitespace. Git moans about
this, and it looks horrible. Can you get your editor to show you these
so they don't slip through?

Fixed up and applied, minus the bits from 0001.

> 0005: Kick out appendix.sty and a little appendix tweak

Applied, thanks.

> 0006: Some minor Makefile tweaking

This one needs 0001, so I've left it for now.

> 0007: Make email addresses clickable

Applied, thanks.

> And for inital review:
> 0008: Add Gentoo logo to PMS and desk reference.

What's the copyright / licence / author information for the logo?

You need to update .gitignore for the .png.

There's something weird with convert -- if it doesn't support svg, it
exits successfully anyway. Not sure whether we can do anything about
that.

Can't get it to build, either:

    ! LaTeX Error: File `gentoo-logo' not found.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-15 20:35                 ` Ciaran McCreesh
@ 2009-04-15 21:58                   ` Christian Faulhammer
  2009-04-15 22:10                     ` Ciaran McCreesh
  2009-04-15 22:46                   ` Christian Faulhammer
  1 sibling, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-15 21:58 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 1860 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:

> On Wed, 15 Apr 2009 17:28:01 +0200
> Christian Faulhammer <fauli@gentoo.org> wrote:
> > > > 0001: Desk reference, updated and all issues you raised handled.
> > > 
> > > You're indenting with two spaces rather than four, and don't have
> > > our precious vim modelines. Lack of consistency makes me cry!
> > 
> >  Then go change the other files, and if Vim is too dumb to
> > recognise a LaTeX file, I can't help it.
> 
> The modelines are there for indenting rules. And if everyone used
> them, the other files wouldn't be in the mess they're in. Maybe.

 Emacs has set up indenting rules for LaTeX specifically, which is two
spaces in all cases.  And as far as I can see, vim needs the modeline
for character set recognition and mode setting, while Emacs has some
automagic which only makes setting the master file necessary...but
enough from that.  We are both biased.

 You haven't pushed the changes to github.

> > And for inital review:
> > 0008: Add Gentoo logo to PMS and desk reference.
> 
> What's the copyright / licence / author information for the logo?

 Gentoo Foundation holds the copyright and we can talk to the trustees
about it.  In the end, PMS is a Gentoo project.

> There's something weird with convert -- if it doesn't support svg, it
> exits successfully anyway. Not sure whether we can do anything about
> that.

 Problem of the user...so a check for USE=svg on imagemagick is then
needed in the ebuild for app-doc/pms. :) 

> Can't get it to build, either:
> 
>     ! LaTeX Error: File `gentoo-logo' not found.

 Because you haven't applied some of the patches.

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] [PATCH] Work around TeX4ht being weird
  2009-04-15 19:03         ` David Leverton
@ 2009-04-15 21:59           ` Christian Faulhammer
  2009-04-16  7:25             ` David Leverton
  2009-04-16 19:37           ` [gentoo-pms] [PATCH 1/2] " David Leverton
  1 sibling, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-15 21:59 UTC (permalink / raw
  To: David Leverton; +Cc: gentoo-pms, David Leverton

[-- Attachment #1: Type: text/plain, Size: 894 bytes --]

Hi,

David Leverton <levertond@googlemail.com>:

> ---
>  pms.cls |   61
> ++++++++++++++++++++++++++++++++++++++----------------------- 1 files
> changed, 38 insertions(+), 23 deletions(-)
> 
> On Tuesday 14 April 2009 09:32:28 Christian Faulhammer wrote:
> >  Or you use \AtEndOfClass{} to do your magic.
> 
> That's still too early, but \g@addto@macro\@documentclasshook (the
> same mechanism TeX4ht itself uses) seems to work.  Do you think it's
> safe to rely on this being true in future versions?  Obviously it's
> not a disaster if it doesn't, but I'd rather not go looking for
> trouble.

 This seems ok, although all the TeX4HT stuff is some kind of a bad
hack.  Do we really need the HTML target?

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-15 21:58                   ` Christian Faulhammer
@ 2009-04-15 22:10                     ` Ciaran McCreesh
  0 siblings, 0 replies; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-15 22:10 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 1308 bytes --]

On Wed, 15 Apr 2009 23:58:22 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
>  You haven't pushed the changes to github.

Mmm. I had, but lolgithub timed out and I didn't notice. They're
definitely pushed now.

> > > And for inital review:
> > > 0008: Add Gentoo logo to PMS and desk reference.
> > 
> > What's the copyright / licence / author information for the logo?
> 
>  Gentoo Foundation holds the copyright and we can talk to the trustees
> about it.  In the end, PMS is a Gentoo project.

I get very wary dealing with things where we don't have all that
information very clearly indicated. I'd appreciate it if you could get
a definitive answer.

> > There's something weird with convert -- if it doesn't support svg,
> > it exits successfully anyway. Not sure whether we can do anything
> > about that.
> 
>  Problem of the user...so a check for USE=svg on imagemagick is then
> needed in the ebuild for app-doc/pms. :) 

Yeah, but I'd still rather we failed sensibly if there's an easy way
of doing so.

> > Can't get it to build, either:
> > 
> >     ! LaTeX Error: File `gentoo-logo' not found.
> 
>  Because you haven't applied some of the patches.

Ah. Thought I'd correctly picked out all the necessary bits. Evidently
not...

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-15 20:35                 ` Ciaran McCreesh
  2009-04-15 21:58                   ` Christian Faulhammer
@ 2009-04-15 22:46                   ` Christian Faulhammer
  2009-04-16 14:16                     ` Ciaran McCreesh
  1 sibling, 1 reply; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-15 22:46 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms


[-- Attachment #1.1: Type: text/plain, Size: 800 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:
> s/label/labels/, and s/built/which can be built/
.. 
> A use flag, not an.
.. 
> That '.' should be a ','. I'd also say "so any small" rather than "so
> small".

 Addressed.

> > 0004: Comment class file
> 
> Some of the lines in this one have trailing whitespace. Git moans
> about this, and it looks horrible. Can you get your editor to show
> you these so they don't slip through?

 I thought I had that activated...I was wrong.

0001: Desk reference anew, even with TOC entry now
0002: Makefile tweaking
0003: Gentoo logo addition for playing around

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Desk-reference-for-quick-look-up.patch --]
[-- Type: text/x-patch, Size: 14008 bytes --]

From 819a055857d9f891ca46a7c72fb5bda58589e909 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Mon, 13 Apr 2009 12:11:54 +0200
Subject: [PATCH] Desk reference for quick look-up

This contains a short summary of all EAPI features so far, similar
to appendix E of PMS, but with more information.
---
 Makefile                       |    8 +-
 cheatsheet/eapi_cheatsheet.tex |  231 ++++++++++++++++++++++++++++++++++++++++
 credits.tex                    |    5 +-
 pms.cls                        |    1 +
 pms.tex                        |    2 +
 5 files changed, 243 insertions(+), 4 deletions(-)
 create mode 100644 cheatsheet/eapi_cheatsheet.tex

diff --git a/Makefile b/Makefile
index e9c3dd4..c7496a0 100644
--- a/Makefile
+++ b/Makefile
@@ -5,13 +5,14 @@ clean :
 	rm -f *~ *.pdf *.dvi *.log *.aux *.bbl *.blg *.toc *.lol *.loa *.lox \
 	    *.lot *.out *.html *.css *.png *.4ct *.4tc *.idv *.lg *.tmp *.xref vc.tex || true
 
-LATEXFILES = $(shell ls *.tex) pms.cls
+LATEXFILES = $(shell find -name  '*.tex') pms.cls
 LISTINGFILES = $(shell ls *.listing)
 SOURCEFILES = $(LATEXFILES) $(LISTINGFILES)
 
-pms.pdf: $(SOURCEFILES) pms.bbl vc.tex
+pms.pdf: $(SOURCEFILES) pms.bbl vc.tex eapi_cheatsheet.pdf
 	pdflatex pms
 	pdflatex pms
+	pdflatex cheatsheet/eapi_cheatsheet
 	pdflatex pms
 
 pms.html: $(SOURCEFILES) pms.bbl
@@ -31,6 +32,9 @@ pms.bbl: pms.bib pms.tex vc.tex
 	latex pms
 	bibtex pms
 
+eapi_cheatsheet.pdf: vc.tex
+	pdflatex cheatsheet/eapi_cheatsheet
+
 vc.tex: pms.tex
 	/bin/sh ./vc
 
diff --git a/cheatsheet/eapi_cheatsheet.tex b/cheatsheet/eapi_cheatsheet.tex
new file mode 100644
index 0000000..5b2bf8b
--- /dev/null
+++ b/cheatsheet/eapi_cheatsheet.tex
@@ -0,0 +1,231 @@
+\documentclass[a4paper,notumble]{leaflet}
+\input{vc}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{
+    url,
+    xr-hyper,
+    hyperref,
+    listings,
+    ifthen,
+    mathptmx,
+    courier
+}
+\usepackage[orig,english]{isodate}
+\usepackage[scaled=.90]{helvet}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\version}{0.2}
+\newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
+\renewcommand{\familydefault}{\sfdefault}
+\urlstyle{sf}
+\externaldocument{pms}
+
+\title{EAPI Cheat Sheet}
+\author{Christian
+    Faulhammer\thanks{\href{mailto:fauli@gentoo.org}{fauli@gentoo.org}}}
+\ifthenelse{\equal{\VCDateISO}{}}
+{
+    \date{Version \version{}, generated on: \\\today}
+}{
+    \date{Version \version\\\printdate{\VCDateISO}}
+}
+\CutLine*{1}
+\CutLine*{3}
+\CutLine*{4}
+\CutLine*{6}
+\hypersetup{%
+    urlcolor=black,
+    colorlinks=true,
+    citecolor=black,
+    linkcolor=black,
+    pdftitle={EAPI Desk Reference},
+    pdfauthor={Christian Faulhammer},
+    pdfsubject={Making look-up faster for EAPI features},
+    pdflang={en},
+    pdfkeywords={Gentoo, package manager, reference},
+    pdfproducer={pdfLaTeX and hyperref},
+}
+\begin{document}
+\maketitle
+\thispagestyle{empty}
+\begin{abstract}
+    An overview of the main EAPI changes in Gentoo, for ebuild
+    authors.  For full details, consult the Package Manager
+    Specification\footnote{\url{http://www.gentoo.org/proj/en/qa/pms/}};
+    this is an incomplete summary only.
+
+    Official Gentoo EAPIs are consecutively numbered integers (0, 1,
+    2, \dots).  Except where otherwise noted, an EAPI is the same as
+    the previous EAPI.  All labels refer to the PMS document itself,
+    built from the same checkout as this overview.
+
+    Please report mistakes in or enhancements to this document via the
+    Gentoo bug tracking system\footnote{\url{http://bugs.gentoo.org/}}
+    to the original author or the PMS team.
+
+    This document is released under the Creative Commons
+    Attribution-Share Alike 3.0
+    Licence\footnote{\url{http://creativecommons.org/licenses/by-sa/3.0/}}.
+\end{abstract}
+\section{EAPI 0}
+\label{sec:cs:eapi0}
+If there is no EAPI explicitly specified, EAPI 0 is assumed.
+Currently there is no full specification what EAPI 0 includes.
+Portage, official ebuild documentation and existing ebuilds set the
+standard.  If you think you found a bug, you should file a bug report
+nonetheless.
+\newpage
+\section{EAPI 1}
+\label{sec:cs:eapi1}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi1-additions}
+\begin{description}
+    \item[IUSE defaults] A USE flag can be marked as mandatory (if
+    not disabled explicitly by user configuration) with a \code{+}
+    sign in front.  See \featureref{iuse-defaults}.
+    \item[Named slot dependencies] Dependencies can explicitly request
+    a specific slot by using the \code{dev-libs/foo:SLOT} syntax.  See
+    \featureref{slot-deps}.
+\end{description}
+\section{EAPI 2 (2008-09-25)}
+\label{sec:cs:eapi2}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi2-additions}
+\begin{description}
+    \item[\code{SRC\_URI} arrows] Allows redirection of upstream file
+    naming scheme.  By using \code{SRC\_URI="http://some/url -> foo"}
+    the file is saved as \code{foo} in DISTDIR.  See
+    \featureref{src-uri-arrows}.
+    \item[USE dependencies] Dependencies can specify USE flag
+    requirements on their target, removing the need for
+    \code{built\_with\_use} checks. A more powerful syntax that does
+    not require the flag to be in IUSE is in EAPI 3.
+    \begin{description}
+        \item[{[opt]}] The flag must be enabled.
+        \item[{[opt=]}] The flag must be enabled if the flag is
+        enabled for the package with the dependency, or disabled
+        otherwise.
+        \item[{[!opt=]}] The flag must be disabled if the flag is
+        enabled for the package with the dependency, or enabled
+        otherwise.
+        \item[{[opt?]}] The flag must be enabled if the flag is
+        enabled for the package with the dependency.
+        \item[{[!opt?]}] The flag must be disabled if the use flag is
+        disabled for the package with the dependency.
+        \item[{[-opt]}] The flag must be disabled.
+    \end{description}
+    See \featureref{use-deps}.
+    \item[Blocker syntax] A single exclamation mark as a blocker may
+    be ignored by the package manager as long as the stated package is
+    uninstalled later on.  Two exclamation marks are a strong blocker
+    and will always be respected.  See \featureref{bang-strength}.
+    \item[\code{src\_configure, src\_prepare}] Both new phases provide
+    finer granularity in the ebuild's structure.  Configure calls
+    should be moved from \code{src\_compile} to \code{src\_configure}.
+    Patching and similar preparation must now be done in
+    \code{src\_prepare}, not \code{src\_unpack}.  See
+    \featureref{src-prepare} and \featureref{src-configure}.
+    \item[Default phase functions] The default functions for the
+    phases \code{pkg\_nofetch}, \code{src\_unpack},
+    \code{src\_prepare}, \code{src\_configure}, \code{src\_compile}
+    and \code{src\_test} can be called via
+    \code{default\_\emph{phasename}}, so duplicating the standard
+    implementation is no longer necessary for small additions.  The
+    \code{default} function calls the current phase's \code{default\_}
+    function automatically, so any small additions you need will not
+    be accompanied by a complete reimplementation of the phase.
+    Additionally as a shorthand for the current phase's default
+    definition \code{default} can be invoked.  See
+    \featureref{default-phase-funcs} and \featureref{default-func}.
+    \item[\code{doman} language support] The \code{doman} installation
+    function recognizes lanugage specific man page extensions and
+    behaves accordingly.  See \featureref{doman-langs}
+\end{description}
+\newpage
+\section{EAPI 3 (not yet approved)}
+\label{sec:cs:eapi3}
+\subsection{Additions/Changes}
+\label{sec:cs:eapi3-additions}
+\begin{description}
+    \item[\code{pkg\_pretend}] Some useful checks (kernel options for
+    example) can be placed in this new phase to inform the user early.
+    Most checks should usually be repeated in \code{pkg\_setup}.  See
+    \featureref{pkg-pretend}.
+    \item[\code{src\_install}] The \code{src\_install} phase is no
+    longer empty but has a default now.  This comes along with an
+    accompanying \code{default} function.  See
+    \featureref{src-install-3}.
+    \item[\code{pkg\_info} on non-installed packages] The
+    \code{pkg\_info} phase can be called even for non-installed
+    packages.  Be warned that dependencies might not have been
+    installed at execution time.  See \featureref{pkg-info}.
+    \item[No RDEPEND fall-back] The package manager will not fall back
+    to \code{RDEPEND=DEPEND} if RDEPEND is undefined.  See
+    \featureref{rdepend-depend}
+    \item[Support for \code{.xz}] Unpack of \code{.xz} and
+    \code{.tar.xz} files is possible.  See
+    \featureref{unpack-extensions}.
+    \item[Slot operators] Dependencies that are both DEPEND and
+    RDEPEND and that can match multiple slots should specify one of:
+    \begin{description}
+        \item[\code{:*}] Indicates that any slot value is
+        acceptable. In addition, for runtime dependencies, indicates
+        that the package will not break if the matched package is
+        uninstalled and replaced by a different matching package in a
+        different slot.
+        \item[\code{:=}] Indicates that any slot value is
+        acceptable. In addition, for runtime dependencies, indicates
+        that the package will break unless a matching package with
+        slot equal to the slot of the best installed version at the
+        time the package was installed is available.
+    \end{description}
+    See \featureref{slot-operator-deps}.
+    \item[USE dependency defaults] In addition to the features offered
+    in EAPI 2 for USE dependencies, a \code{(+)} or \code{(-)} can be
+    added after a USE flag (mind the parentheses).  The former
+    specifies that flags not in IUSE should be treated as enabled; the
+    latter, disabled. Cannot be used with USE\_EXPAND flags.  This
+    mimicks parts of the behaviour of \code{-{}-missing} in
+    \code{built\_with\_use}.  See \featureref{use-dep-defaults}.
+    \item[Controllable compression] All items in
+    \code{/usr/share\{doc,info,man\}} may be compressed on-disk after
+    \code{src\_install}, except for
+    \code{/usr/share/doc/\$\{PF\}/html}.  \code{docompress path \dots}
+    adds paths to the inclusion list for compression.
+    \code{docompress -x path \dots} adds paths to the exclusion list.
+    \featureref{controllable-compress}.
+    \item[\code{dodoc} recursion] If the \code{-r} switch is given as
+    first argument and followed by directories, files from there are
+    installed recursively.  See \featureref{dodoc}.
+    \item[\code{doins} symlink support] Symbolic links are now
+    properly installed when using recursion (\code{-r} switch).  See
+    \featureref{doins}.
+    \item[New installation functions] \code{doexample},
+    \code{newexample}, \code{doinclude} and \code{newinclude} install
+    example and include files respectively.  See
+    \featureref{doexample} and \featureref{doinclude}.
+    \item[\code{nonfatal} for commands] If you call \code{nonfatal}
+    the command given as argument will not abort the build process in
+    case of a failure (as is the default) but will return non-zero on
+    failure rather than aborting the build..  See
+    \featureref{nonfatal}.
+\end{description}
+\subsection{Removals/Bans}
+\label{sec:cs:eapi3-removalsbans}
+\begin{description}
+    \item[USE flags in any-of] \code{use? ( )} blocks are forbidden as
+    direct children of \code{|| ( )} blocks.  See \featureref{any-use}
+    \item[\code{dohard}, \code{dosed}] Both functions are not allowed
+    anymore.  See \featureref{banned-commands}.
+\end{description}
+\end{document}
+
+% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
+
+%%% Local Variables:
+%%% mode: latex
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
+%%% End:
+
diff --git a/credits.tex b/credits.tex
index 2b1f56d..95b66c1 100644
--- a/credits.tex
+++ b/credits.tex
@@ -3,8 +3,9 @@
 Thanks to Mike Kelly (package manager provided utilities, section~\ref{sec:pkg-mgr-commands}), Danny van
 Dyk (ebuild functions, section~\ref{sec:ebuild-functions}), David Leverton (various sections) and
 Petteri Räty (environment state, section~\ref{sec:ebuild-env-state}) for contributions. Thanks to
-Christian Faulhammer for fixing some of the more horrible formatting screwups. Thanks also to Mike
-Frysinger and Brian Harring for proof-reading and suggestions for fixes and/or clarification.
+Christian Faulhammer for fixing some of the more horrible formatting screwups and providing the EAPI
+cheat sheet. Thanks also to Mike Frysinger and Brian Harring for proof-reading and suggestions for
+fixes and/or clarification.
 
 \section*{Copyright and Licence}
 
diff --git a/pms.cls b/pms.cls
index 3cef249..5188190 100644
--- a/pms.cls
+++ b/pms.cls
@@ -36,6 +36,7 @@
     marginnote, % Typeset a paragraph in the page margin
     paralist,	% Additional list environments
     parskip,	% Space between paragraps instead of intendation
+    pdfpages,	% Insert whole PDF documents as separate pages
     verbatim,	% Extend the print-as-is functionality
     algorithm,	%
     algorithmic % Set algorithms
diff --git a/pms.tex b/pms.tex
index 2bf7482..9b7be14 100644
--- a/pms.tex
+++ b/pms.tex
@@ -45,6 +45,8 @@
 
 \include{eapi-differences}
 
+\includepdf[pages=-,landscape,addtotoc={1,chapter,0,Desk Reference,cheatsheet}]{eapi_cheatsheet}
+
 \bibliography{pms}
 
 \end{document}
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Tweak-Makefile-with-additional-dependency-on-targets.patch --]
[-- Type: text/x-patch, Size: 925 bytes --]

From 32840bf8f167c83826a2c1b0303695577f4000f7 Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 15:08:03 +0200
Subject: [PATCH] Tweak Makefile with additional dependency on targets

---
 Makefile |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index c7496a0..3c17b72 100644
--- a/Makefile
+++ b/Makefile
@@ -28,14 +28,14 @@ pms.html: $(SOURCEFILES) pms.bbl
 	@# align algorithm line numbers properly
 	sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
 
-pms.bbl: pms.bib pms.tex vc.tex
+pms.bbl: pms.bib pms.tex vc.tex eapi_cheatsheet.pdf
 	latex pms
 	bibtex pms
 
 eapi_cheatsheet.pdf: vc.tex
 	pdflatex cheatsheet/eapi_cheatsheet
 
-vc.tex: pms.tex
+vc.tex: pms.tex vc-git.awk
 	/bin/sh ./vc
 
 pms.dvi: $(SOURCEFILES) pms.bbl
-- 
1.6.0.6


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Add-Gentoo-logo-to-desk-reference-and-titlepage-of-P.patch --]
[-- Type: text/x-patch, Size: 17280 bytes --]

From e9ef865e2f5f8ba5805bb3db3f392d677b4c7d6a Mon Sep 17 00:00:00 2001
From: Christian Faulhammer <fauli@gentoo.org>
Date: Wed, 15 Apr 2009 17:04:49 +0200
Subject: [PATCH] Add Gentoo logo to desk reference and titlepage of PMS

pms.dvi target thus invalid as it won't process png files
---
 .gitignore                     |    1 +
 Makefile                       |   10 +-
 cheatsheet/eapi_cheatsheet.tex |    5 +-
 gentoo-logo.svg                |  328 ++++++++++++++++++++++++++++++++++++++++
 pms.cls                        |    3 +-
 5 files changed, 339 insertions(+), 8 deletions(-)
 create mode 100644 gentoo-logo.svg

diff --git a/.gitignore b/.gitignore
index 6d5cd39..9127031 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+*.png
 *.aux
 *.bbl
 *.blg
diff --git a/Makefile b/Makefile
index 3c17b72..55de96b 100644
--- a/Makefile
+++ b/Makefile
@@ -29,19 +29,17 @@ pms.html: $(SOURCEFILES) pms.bbl
 	sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
 
 pms.bbl: pms.bib pms.tex vc.tex eapi_cheatsheet.pdf
-	latex pms
+	pdflatex pms
 	bibtex pms
 
-eapi_cheatsheet.pdf: vc.tex
+eapi_cheatsheet.pdf: vc.tex gentoo-logo.png
 	pdflatex cheatsheet/eapi_cheatsheet
 
 vc.tex: pms.tex vc-git.awk
 	/bin/sh ./vc
 
-pms.dvi: $(SOURCEFILES) pms.bbl
-	latex pms
-	latex pms
-	latex pms
+gentoo-logo.png: gentoo-logo.svg
+	convert gentoo-logo.svg gentoo-logo.png
 
 upload: pms.pdf
 	scp pms.pdf dev.gentoo.org:public_html
diff --git a/cheatsheet/eapi_cheatsheet.tex b/cheatsheet/eapi_cheatsheet.tex
index 5b2bf8b..2727b88 100644
--- a/cheatsheet/eapi_cheatsheet.tex
+++ b/cheatsheet/eapi_cheatsheet.tex
@@ -9,7 +9,8 @@
     listings,
     ifthen,
     mathptmx,
-    courier
+    courier,
+    graphicx
 }
 \usepackage[orig,english]{isodate}
 \usepackage[scaled=.90]{helvet}
@@ -45,6 +46,8 @@
     pdfkeywords={Gentoo, package manager, reference},
     pdfproducer={pdfLaTeX and hyperref},
 }
+\AddToBackground*{2}{\hspace*{5cm}\includegraphics{gentoo-logo}}
+\AddToBackground*{1}{\hspace*{5cm}\includegraphics{gentoo-logo}}
 \begin{document}
 \maketitle
 \thispagestyle{empty}
diff --git a/gentoo-logo.svg b/gentoo-logo.svg
new file mode 100644
index 0000000..cf7c270
--- /dev/null
+++ b/gentoo-logo.svg
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="594.6626"
+   height="622.50458"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.44"
+   sodipodi:docbase="/home/mike/gentoo-cvs/gentoo/xml/images"
+   sodipodi:docname="gentoo-logo.svg"
+   version="1.0">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient2096">
+      <stop
+         style="stop-color:#7e3615;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2098" />
+      <stop
+         id="stop2100"
+         offset="0.50000000"
+         style="stop-color:#7e3615;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ed5b1a;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2102" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2085">
+      <stop
+         style="stop-color:#7f3615;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2087" />
+      <stop
+         id="stop2089"
+         offset="0.50000000"
+         style="stop-color:#ef743d;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ef743d;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2091" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2077">
+      <stop
+         id="stop2079"
+         offset="0.0000000"
+         style="stop-color:#ed5b1a;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ed5b1a;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop2083" />
+      <stop
+         id="stop2081"
+         offset="1.0000000"
+         style="stop-color:#7e3615;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3560">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3562" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3564" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3539">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop3541" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop3543" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3004">
+      <stop
+         id="stop3006"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0.34214258"
+         id="stop7609" />
+      <stop
+         style="stop-color:#bebdf3;stop-opacity:1;"
+         offset="0.51998252"
+         id="stop7599" />
+      <stop
+         id="stop7611"
+         offset="0.75408828"
+         style="stop-color:#8f82f9;stop-opacity:1;" />
+      <stop
+         style="stop-color:#9f99c7;stop-opacity:1;"
+         offset="0.8711412"
+         id="stop7613" />
+      <stop
+         id="stop3008"
+         offset="1"
+         style="stop-color:#524c76;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2988">
+      <stop
+         style="stop-color:#c9491c;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2990" />
+      <stop
+         style="stop-color:#6b2e26;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2992" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2980">
+      <stop
+         style="stop-color:#e76226;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2982" />
+      <stop
+         style="stop-color:#7e3615;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2984" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2127">
+      <stop
+         style="stop-color:#cc0045;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2129" />
+      <stop
+         style="stop-color:#ff794d;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2131" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2986"
+       x1="464.01675"
+       y1="697.43707"
+       x2="368.62137"
+       y2="269.70941"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.237124,0,0,1.237124,-161.0905,-377.3414)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2994"
+       x1="783.86316"
+       y1="-313.5238"
+       x2="1099.6853"
+       y2="1340.5599"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.237124,0,0,1.237124,-1037.425,-1010.413)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2786"
+       gradientUnits="userSpaceOnUse"
+       x1="142.8909"
+       y1="560.31262"
+       x2="305.19791"
+       y2="560.31262" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="radialGradient2788"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.182864e-2,-1.020879,1.918033,-4.101524e-2,-759.031,896.8714)"
+       cx="298.04648"
+       cy="512.46417"
+       fx="298.04648"
+       fy="512.46417"
+       r="218.02184" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="linearGradient2801"
+       gradientUnits="userSpaceOnUse"
+       x1="34.285702"
+       y1="185.21933"
+       x2="-32.857155"
+       y2="205.21933"
+       gradientTransform="matrix(0.413051,0,0,0.413051,209.7551,299.5351)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3539"
+       id="radialGradient3553"
+       cx="278.19101"
+       cy="365.99103"
+       fx="278.19101"
+       fy="365.99103"
+       r="22.023195"
+       gradientTransform="matrix(-1.335307,0.232165,-0.156016,-0.897333,707.4359,624.6685)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3560"
+       id="radialGradient3566"
+       cx="281.96429"
+       cy="374.32648"
+       fx="281.96429"
+       fy="374.32648"
+       r="30.535715"
+       gradientTransform="matrix(1.586984,6.491459e-2,-3.791318e-3,0.906694,-164.0892,16.62349)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2085"
+       id="radialGradient2075"
+       cx="616.66583"
+       cy="357.7851"
+       fx="616.66583"
+       fy="357.7851"
+       r="77.994896"
+       gradientTransform="matrix(-0.784367,2.082605,-1.36893,-0.515577,1619.589,-726.3586)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="radialGradient3228"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-6.60395e-2,4.190266,-3.573754,-5.626827e-2,2168.154,-1171.421)"
+       cx="332.72311"
+       cy="590.5899"
+       fx="332.72311"
+       fy="590.5899"
+       r="218.02184" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3004"
+       id="radialGradient5851"
+       cx="49.529819"
+       cy="320.08572"
+       fx="49.529819"
+       fy="320.08572"
+       r="31.94874"
+       gradientTransform="matrix(3.287367,0,0,2.519654,111.6891,-642.7214)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="341.56282"
+     inkscape:cy="336.08702"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer4"
+     inkscape:window-width="1024"
+     inkscape:window-height="719"
+     inkscape:window-x="0"
+     inkscape:window-y="27" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="back"
+     style="display:inline"
+     sodipodi:insensitive="true"
+     transform="translate(-25.69105,-25.5213)">
+    <path
+       id="path2973"
+       style="opacity:1;fill:url(#linearGradient2994);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+       d="M 25.756851,521.91391 C 25.825031,495.65357 48.148853,458.98977 79.868697,425.68116 C 101.06675,403.42137 122.59556,383.88231 169.52585,343.86782 C 137.06358,326.05537 86.575337,304.5643 61.242464,276.41883 C 51.868932,266.00461 34.879101,242.4107 38.174477,210.88878 C 44.890902,146.64282 124.18914,49.142619 236.90525,28.529375 C 274.4094,21.670714 317.46879,26.621594 352.90796,42.554294 C 464.08832,92.538537 600.05593,216.71656 616.78506,277.34922 C 622.67343,298.69087 621.54162,332.70947 611.39031,351.66904 C 598.8089,375.16727 555.25451,422.89399 495.66547,472.14219 C 402.16607,549.41609 271.14445,632.39066 173.31256,646.35271 C 141.70156,650.86406 109.40481,646.15872 86.740094,633.36993 C 51.279241,613.36083 39.508186,586.6468 35.370326,578.63961 C 24.367104,557.34729 25.73287,530.37254 25.756851,521.91391 z M 288.89937,226.87362 C 290.10675,211.9842 348.49263,226.80785 344.80352,238.59909 C 340.91155,251.03875 287.51426,243.95446 288.89937,226.87362 z "
+       sodipodi:nodetypes="cscssssssssssscss" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="mid"
+     style="display:inline"
+     sodipodi:insensitive="true"
+     transform="translate(-25.69105,-25.5213)">
+    <path
+       id="path2975"
+       style="opacity:1;fill:url(#linearGradient2986);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 201.12502,319.26488 C 170.40092,345.206 149.97273,362.69737 124.3619,386.10521 C 62.686019,442.47585 20.779962,485.38384 42.384986,544.03745 C 67.307886,611.6985 121.94112,608.26771 186.00654,595.69143 C 351.14346,563.12161 622.59855,354.43165 608.76251,277.34931 C 597.56708,214.97818 445.90819,90.975251 356.11423,46.84913 C 328.062,33.063819 295.73224,25.934162 263.30502,27.459889 C 139.83437,33.287522 43.410732,145.70192 48.3364,206.6102 C 53.12843,265.866 202.89233,317.49757 201.12502,319.26488 z M 182.59146,112.40184 C 145.4382,153.73813 169.19273,233.71314 230.80632,277.3046 C 302.90158,328.31181 419.65062,337.54732 442.88372,298.21016 C 486.21887,224.83738 438.90343,147.25466 368.27318,112.64681 C 298.47778,78.448086 205.75091,86.63492 182.59146,112.40184 z "
+       sodipodi:nodetypes="csssssssccssss" />
+    <path
+       id="path4976"
+       style="opacity:1;fill:url(#radialGradient5851);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+       d="M 309.29559,275.57053 C 361.45453,282.82047 406.41278,261.93195 413.44309,210.42711 C 418.79846,171.19341 358.75371,128.32717 322.65314,118.4403 C 292.50683,110.18416 227.05767,120.80064 222.64536,177.81809 C 218.05858,237.09011 278.88214,271.34317 309.29559,275.57053 z M 283.75291,176.98953 C 249.47413,230.09349 333.52318,246.4198 346.39128,236.73513 C 401.86836,194.98252 298.85531,153.59322 283.75291,176.98953 z "
+       sodipodi:nodetypes="csssscss" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="top"
+     style="display:inline"
+     sodipodi:insensitive="true"
+     transform="translate(-25.69105,-25.5213)">
+    <path
+       style="opacity:1;fill:url(#radialGradient3228);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 253.35285,41.570018 C 192.71898,47.959829 181.10644,55.76371 126.17687,97.322591 C 107.767,111.25125 73.883463,145.14202 65.201668,185.34831 C 61.895163,200.66106 65.803612,213.8809 76.831852,223.15243 C 112.14485,252.84039 171.24791,276.92638 219.73633,300.20947 C 233.93865,307.02911 224.53507,319.39451 201.63241,339.22199 C 143.84068,389.25385 65.705469,450.15645 60.25071,496.56402 C 57.680295,518.43239 65.166835,548.14722 91.710107,563.35382 C 122.71683,581.11751 187.08224,569.52337 230.06148,553.51882 C 292.86747,530.1312 375.36929,478.51514 440.86776,427.77778 C 508.97789,375.01736 572.3054,308.00452 575.43793,297.07484 C 579.28461,283.65337 578.90118,271.25689 571.47758,257.00416 C 559.81983,234.62227 544.23417,217.99109 527.49924,199.37578 C 482.59667,152.03725 435.087,110.44129 378.2447,78.565883 C 337.19672,55.547464 301.08129,36.540217 253.35285,41.570018 z M 342.42072,147.69946 C 386.22586,168.87809 431.21043,224.50639 342.03037,256.52426 C 317.78022,265.23068 240.87245,235.14204 243.22679,194.08046 C 246.65995,133.42478 288.93402,121.84005 342.42072,147.69946 z "
+       id="path2977"
+       sodipodi:nodetypes="cssssssssssscsscsss" />
+  </g>
+</svg>
diff --git a/pms.cls b/pms.cls
index 5188190..ff3ac42 100644
--- a/pms.cls
+++ b/pms.cls
@@ -139,7 +139,8 @@
     pdfproducer={pdfLaTeX and hyperref},
 }
 % Some metadata needed for the title page generation
-\title{Package Manager Specification}
+\title{Package Manager
+    Specification\\\includegraphics[height=5ex,keepaspectratio]{gentoo-logo}}
 \author{Stephen P. Bennett \\
     \href{mailto:spb@exherbo.org}{spb@exherbo.org} \and Ciaran
     McCreesh \\
-- 
1.6.0.6


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] [PATCH] Work around TeX4ht being weird
  2009-04-15 21:59           ` Christian Faulhammer
@ 2009-04-16  7:25             ` David Leverton
  0 siblings, 0 replies; 27+ messages in thread
From: David Leverton @ 2009-04-16  7:25 UTC (permalink / raw
  To: gentoo-pms

On Wednesday 15 April 2009 22:59:52 Christian Faulhammer wrote:
>  This seems ok, although all the TeX4HT stuff is some kind of a bad
> hack.  Do we really need the HTML target?

"Need" is relative.  It's not strictly required, but people seem to like it 
(and it seems to have mostly silenced the LaTeX-haters).  It is also more 
convenient if you want to look something up quickly - just open the URL in 
your browser, no need to open up a PDF viewer and find the right page.  And 
yes, TeX4ht is rather hackish, but the output is nice after a small amount 
amount of babysitting.  The only thing I don't like is that it puts footnotes 
in their own HTML files.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-15 22:46                   ` Christian Faulhammer
@ 2009-04-16 14:16                     ` Ciaran McCreesh
  2009-04-16 22:23                       ` Christian Faulhammer
  0 siblings, 1 reply; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-16 14:16 UTC (permalink / raw
  To: Christian Faulhammer; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 742 bytes --]

On Thu, 16 Apr 2009 00:46:07 +0200
Christian Faulhammer <fauli@gentoo.org> wrote:
> 0001: Desk reference anew, even with TOC entry now

Applied, thanks. I got rid of the subdirectory, it looked weird. Once
we're back to a single branch we can go and subdirectory everything.

The new dep is dev-tex/leaflet, for anyone who's too lazy to work it
out.

> 0002: Makefile tweaking

Applied, thanks.

> 0003: Gentoo logo addition for playing around

Ok, I got this working.

For PMS, I think there needs to be a bigger vertical gap between the
main title and the logo.

I'm not convinced by it as the background for the cheatsheet. It'll
just make it a lot harder to print, and a bit harder to read.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [gentoo-pms] [PATCH 1/2] Work around TeX4ht being weird
  2009-04-15 19:03         ` David Leverton
  2009-04-15 21:59           ` Christian Faulhammer
@ 2009-04-16 19:37           ` David Leverton
  2009-04-16 19:37             ` [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks David Leverton
  1 sibling, 1 reply; 27+ messages in thread
From: David Leverton @ 2009-04-16 19:37 UTC (permalink / raw
  To: gentoo-pms; +Cc: David Leverton

---
 pms.cls |   61 ++++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 38 insertions(+), 23 deletions(-)

Updated patch to apply against latest HEAD.

diff --git a/pms.cls b/pms.cls
index 5188190..05d44b0 100644
--- a/pms.cls
+++ b/pms.cls
@@ -21,15 +21,12 @@
     fontenc,	% Load extended font sets
     isodate,	% Date formatting and conversions
     typearea,	% Set page layout
-    caption,	% Extended float environment formatting
     inputenc,	% Allow input methods apart from ASCII
     booktabs,	% Nicer formatting of tables
     color,	% Support more than black&white
     enumitem,
-    float,	% More control over float environments
     fullpage,
     graphicx,	% Image support
-    hyperref,	% Support for hyperlinks
     ifthen,	% Comfortable conditional routines
     longtable,	% Extend tables over more than one page
     lscape,	% Rotating pages
@@ -37,9 +34,18 @@
     paralist,	% Additional list environments
     parskip,	% Space between paragraps instead of intendation
     pdfpages,	% Insert whole PDF documents as separate pages
-    verbatim,	% Extend the print-as-is functionality
-    algorithm,	%
-    algorithmic % Set algorithms
+    verbatim	% Extend the print-as-is functionality
+}
+
+% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
+\g@addto@macro\@documentclasshook{
+    \RequirePackage{
+        caption,	% Extended float environment formatting
+        float,		% More control over float environments
+        hyperref,	% Support for hyperlinks
+        algorithm,	%
+        algorithmic 	% Set algorithms
+    }
 }
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
     Specification, loaded baseclass: \ClassToLoad\MessageBreak}
@@ -59,9 +65,12 @@
     \setboolean{TEX4HT-HACKS}{true}
 \fi
 
-\floatstyle{plaintop}
-\newfloat{listing}{tbp}{lol}[chapter]
-\floatname{listing}{Listing}
+% tex4ht workaround: these need to happen after loading the float package
+\g@addto@macro\@documentclasshook{
+    \floatstyle{plaintop}
+    \newfloat{listing}{tbp}{lol}[chapter]
+    \floatname{listing}{Listing}
+}
 \newcommand{\listoflistings}{\listof{listing}{Listings}}
 % Define own label and reference commands, that display the label in
 % the page margin.
@@ -74,7 +83,10 @@
 
 % Some shorthands for the lazy ones.
 \renewcommand{\t}[1]{\texttt{#1}}
-\renewcommand{\i}[1]{\textit{#1}}
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+    \renewcommand{\i}[1]{\textit{#1}}
+}
 \newcommand{\e}[1]{\emph{#1}}
 \renewcommand{\b}[1]{\textbf{#1}}
 \newcommand{\note}[1]{\paragraph{Note:} #1}
@@ -124,19 +136,22 @@
 }
 
 % Define some PDF meta-data.
-\hypersetup{%
-    urlcolor=black,
-    colorlinks=true,
-    citecolor=black,
-    linkcolor=black,
-    pdftitle={Package Manager Specification},
-    pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
-    pdfcreator={pdfLaTeX and hyperref},
-    pdfsubject={Defining a feature set for package managers in the
-        Gentoo world},
-    pdflang={en},
-    pdfkeywords={Gentoo, package manager, specification},
-    pdfproducer={pdfLaTeX and hyperref},
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+    \hypersetup{%
+        urlcolor=black,
+        colorlinks=true,
+        citecolor=black,
+        linkcolor=black,
+        pdftitle={Package Manager Specification},
+        pdfauthor={Stephen P. Bennett, Ciaran McCreesh},
+        pdfcreator={pdfLaTeX and hyperref},
+        pdfsubject={Defining a feature set for package managers in the
+            Gentoo world},
+        pdflang={en},
+        pdfkeywords={Gentoo, package manager, specification},
+        pdfproducer={pdfLaTeX and hyperref},
+    }
 }
 % Some metadata needed for the title page generation
 \title{Package Manager Specification}
-- 
1.6.2.3




^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks
  2009-04-16 19:37           ` [gentoo-pms] [PATCH 1/2] " David Leverton
@ 2009-04-16 19:37             ` David Leverton
  2009-04-16 19:42               ` Ciaran McCreesh
  2009-04-17 14:13               ` Yannick Mortier
  0 siblings, 2 replies; 27+ messages in thread
From: David Leverton @ 2009-04-16 19:37 UTC (permalink / raw
  To: gentoo-pms; +Cc: David Leverton

Account for slightly different whitespace in the output of newer
versions, the possibility of tables in appendices, and the silly
locale-dependent behaviour of sed.
---
 Makefile |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 27d58c1..a9f1108 100644
--- a/Makefile
+++ b/Makefile
@@ -21,12 +21,12 @@ pms.html: $(SOURCEFILES) pms.bbl
 	xhlatex pms
 	@# work around irregularity in how links to longtables are
 	@# formatted in the List of Tables
-	sed -i -e '/<span class="lotToc" >&#x00A0;/{N;N;s/\(&#x00A0;<a \nhref="[^"]\+">\)\([0-9.]\+\)\n/\2\1/}' pms.html
+	LC_ALL=C sed -i -e '/<span class="lotToc" >&#x00A0;/{N;N;s/\(&#x00A0;<a \nhref="[^"]\+">\)\([0-9A-Z.]\+\)[ \n]/\2\1/}' pms.html
 	@# indent algorithms properly, and avoid adding extra vertical
 	@# space in Konqueror
-	sed -i -e 's/span style="width:/span style="display:-moz-inline-box;display:inline-block;height:1px;width:/' pms.html
+	LC_ALL=C sed -i -e 's/span style="width:/span style="display:-moz-inline-box;display:inline-block;height:1px;width:/' pms.html
 	@# align algorithm line numbers properly
-	sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
+	LC_ALL=C sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
 
 pms.bbl: pms.bib pms.tex vc.tex eapi-cheatsheet.pdf
 	latex pms
-- 
1.6.2.3




^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks
  2009-04-16 19:37             ` [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks David Leverton
@ 2009-04-16 19:42               ` Ciaran McCreesh
  2009-04-17 14:13               ` Yannick Mortier
  1 sibling, 0 replies; 27+ messages in thread
From: Ciaran McCreesh @ 2009-04-16 19:42 UTC (permalink / raw
  To: David Leverton; +Cc: gentoo-pms, David Leverton

[-- Attachment #1: Type: text/plain, Size: 309 bytes --]

On Thu, 16 Apr 2009 20:37:27 +0100
David Leverton <levertond@googlemail.com> wrote:
> Account for slightly different whitespace in the output of newer
> versions, the possibility of tables in appendices, and the silly
> locale-dependent behaviour of sed.

Applied both, thanks.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet
  2009-04-16 14:16                     ` Ciaran McCreesh
@ 2009-04-16 22:23                       ` Christian Faulhammer
  0 siblings, 0 replies; 27+ messages in thread
From: Christian Faulhammer @ 2009-04-16 22:23 UTC (permalink / raw
  To: Ciaran McCreesh; +Cc: gentoo-pms

[-- Attachment #1: Type: text/plain, Size: 580 bytes --]

Hi,

Ciaran McCreesh <ciaran.mccreesh@googlemail.com>:
> For PMS, I think there needs to be a bigger vertical gap between the
> main title and the logo.

 We can work on that...but let's wait for an answer to the mail I sent
to the Foundation.

> I'm not convinced by it as the background for the cheatsheet. It'll
> just make it a lot harder to print, and a bit harder to read.

 But looks cool(TM).

V-Li

-- 
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode

<URL:http://gentoo.faulhammer.org/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] Patches for your reviewing pleasure: Various  improvements, including cheat sheet
  2009-04-15 15:28               ` Christian Faulhammer
  2009-04-15 20:35                 ` Ciaran McCreesh
@ 2009-04-17 14:11                 ` Yannick Mortier
  1 sibling, 0 replies; 27+ messages in thread
From: Yannick Mortier @ 2009-04-17 14:11 UTC (permalink / raw
  To: gentoo-pms+unsubscribe; +Cc: Ciaran McCreesh, gentoo-pms

unsubscribe



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks
  2009-04-16 19:37             ` [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks David Leverton
  2009-04-16 19:42               ` Ciaran McCreesh
@ 2009-04-17 14:13               ` Yannick Mortier
  1 sibling, 0 replies; 27+ messages in thread
From: Yannick Mortier @ 2009-04-17 14:13 UTC (permalink / raw
  To: David Leverton; +Cc: gentoo-pms

Please unsubscribe me from this list, I just can't!

I always get an error message like

This is an automatically generated Delivery Status Notification

Delivery to the following recipient failed permanently:

    gentoo-pms+confunsub-6fd8d26550446518-mvmortier=googlemail.com@gentoo.org

Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the
recipient domain. We recommend contacting the other email provider for
further information about the cause of this error. The error that the
other server returned was: 550 550
<gentoo-pms+confunsub-6fd8d26550446518-mvmortier=googlemail.com@gentoo.org>:
Recipient address rejected: User unknown in local recipient table
(state 14).

when I try to confirm unsubscription!

2009/4/16 David Leverton <levertond@googlemail.com>:
> Account for slightly different whitespace in the output of newer
> versions, the possibility of tables in appendices, and the silly
> locale-dependent behaviour of sed.
> ---
>  Makefile |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 27d58c1..a9f1108 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -21,12 +21,12 @@ pms.html: $(SOURCEFILES) pms.bbl
>        xhlatex pms
>        @# work around irregularity in how links to longtables are
>        @# formatted in the List of Tables
> -       sed -i -e '/<span class="lotToc" >&#x00A0;/{N;N;s/\(&#x00A0;<a \nhref="[^"]\+">\)\([0-9.]\+\)\n/\2\1/}' pms.html
> +       LC_ALL=C sed -i -e '/<span class="lotToc" >&#x00A0;/{N;N;s/\(&#x00A0;<a \nhref="[^"]\+">\)\([0-9A-Z.]\+\)[ \n]/\2\1/}' pms.html
>        @# indent algorithms properly, and avoid adding extra vertical
>        @# space in Konqueror
> -       sed -i -e 's/span style="width:/span style="display:-moz-inline-box;display:inline-block;height:1px;width:/' pms.html
> +       LC_ALL=C sed -i -e 's/span style="width:/span style="display:-moz-inline-box;display:inline-block;height:1px;width:/' pms.html
>        @# align algorithm line numbers properly
> -       sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
> +       LC_ALL=C sed -i -e '/<span class="ALCitem">/{N;s/\n\(class="[^"]\+">\)\([0-9]:\)<\/span>/\1\&#x2007;\2/}' pms.html
>
>  pms.bbl: pms.bib pms.tex vc.tex eapi-cheatsheet.pdf
>        latex pms
> --
> 1.6.2.3
>
>
>



-- 
Currently developing a browsergame...
http://www.p-game.de
Trade - Expand - Fight

Follow me on twitter!
http://twitter.com/moortier



^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2009-04-17 14:13 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-12 19:14 [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet Christian Faulhammer
2009-04-12 19:36 ` Ciaran McCreesh
2009-04-13  9:01   ` Christian Faulhammer
2009-04-13 16:01     ` Ciaran McCreesh
2009-04-14  8:44       ` Christian Faulhammer
2009-04-14 13:04         ` Ciaran McCreesh
2009-04-14 13:55           ` Christian Faulhammer
2009-04-14 14:46             ` Ciaran McCreesh
2009-04-15 15:28               ` Christian Faulhammer
2009-04-15 20:35                 ` Ciaran McCreesh
2009-04-15 21:58                   ` Christian Faulhammer
2009-04-15 22:10                     ` Ciaran McCreesh
2009-04-15 22:46                   ` Christian Faulhammer
2009-04-16 14:16                     ` Ciaran McCreesh
2009-04-16 22:23                       ` Christian Faulhammer
2009-04-17 14:11                 ` Yannick Mortier
2009-04-12 21:25 ` David Leverton
2009-04-13  9:05   ` Christian Faulhammer
2009-04-13 21:16     ` [gentoo-pms] [PATCH] Work around TeX4ht being weird David Leverton
2009-04-14  8:32       ` Christian Faulhammer
2009-04-15 19:03         ` David Leverton
2009-04-15 21:59           ` Christian Faulhammer
2009-04-16  7:25             ` David Leverton
2009-04-16 19:37           ` [gentoo-pms] [PATCH 1/2] " David Leverton
2009-04-16 19:37             ` [gentoo-pms] [PATCH 2/2] Update TeX4ht sed hacks David Leverton
2009-04-16 19:42               ` Ciaran McCreesh
2009-04-17 14:13               ` Yannick Mortier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox