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

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