From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Lt4Cp-0001Tk-7n for garchives@archives.gentoo.org; Sun, 12 Apr 2009 18:14:59 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D58FBE057F; Sun, 12 Apr 2009 18:14:58 +0000 (UTC) Received: from mo-p05-ob.rzone.de (mo-p05-ob.rzone.de [81.169.146.180]) by pigeon.gentoo.org (Postfix) with ESMTP id 3B82DE057F for ; Sun, 12 Apr 2009 18:14:58 +0000 (UTC) X-RZG-AUTH: :K2kKYU+nW/MMMlTokcN5Yot1/Bj/FTl+WviP6RIJci0HRMpbh/x+X6ShOQjVOj0+68XVNRUHOgAY X-RZG-CLASS-ID: mo05 Received: from terra.solaris (p54AE7CC0.dip.t-dialin.net [84.174.124.192]) by post.strato.de (klopstock mo16) (RZmta 18.28) with ESMTP id L04461l3CI7B5a for ; Sun, 12 Apr 2009 20:14:55 +0200 (MEST) Date: Sun, 12 Apr 2009 21:14:47 +0200 From: Christian Faulhammer To: gentoo-pms@lists.gentoo.org Subject: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet Message-ID: <20090412211447.536a297a@terra.solaris> X-Mailer: Claws Mail 3.7.1 (GTK+ 2.14.7; i686-pc-linux-gnu) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Package Manager Specification discussions X-BeenThere: gentoo-pms@gentoo.org X-BeenThere: gentoo-pms@lists.gentoo.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/8KckVOZO6gM4.eahI+VrJ=z"; protocol="application/pgp-signature"; micalg=PGP-SHA1 X-Archives-Salt: c800af68-a1d6-4c19-bc05-ca99b45a7991 X-Archives-Hash: d02c8df6811576f4ea204a89331326fe --Sig_/8KckVOZO6gM4.eahI+VrJ=z Content-Type: multipart/mixed; boundary="MP_/2P+cR_LpkNwKMPDI_JbB8FH" --MP_/2P+cR_LpkNwKMPDI_JbB8FH Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline 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 --=20 Christian Faulhammer, Gentoo Lisp project , #gentoo-lisp on FreeNode --MP_/2P+cR_LpkNwKMPDI_JbB8FH Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-Set-text-size-manually-to-generate-larger-right-marg.patch =46rom 067eab09af0c6b52dc495ce257cb65c6ea8944ec Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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=3Dtop]{caption} \usepackage[utf8]{inputenc} =20 @@ -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} =20 \begin{document} \maketitle --=20 1.6.0.6 --MP_/2P+cR_LpkNwKMPDI_JbB8FH Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-Factor-out-pms.cls-for-better-readability-of-source.patch =46rom 51194763dbcf4a117863b289a313b592868d4eff Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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 =20 -LATEXFILES =3D $(shell ls *.tex) +LATEXFILES =3D $(shell ls *.tex) pms.cls LISTINGFILES =3D $(shell ls *.listing) SOURCEFILES =3D $(LATEXFILES) $(LISTINGFILES) =20 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=3Dtop}{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=3D.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{fe= at:#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 co= nditionals 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}}\mycol= our #1}{\def\mycolour{\color{deeppurple}}\mycolour #2}} + \newcommand{\IFANYKDEBUILDELSE}[2]{#1} + \newcommand{\IFKDEBUILDCOLOUR}[1]{{\def\mycolour{\color{deepblue}}\myc= olour #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=3Dblack, + colorlinks=3Dtrue, + citecolor=3Dblack, + linkcolor=3Dblack, + pdftitle=3D{Package Manager Specification}, + pdfauthor=3D{Stephen P. Bennett, Ciaran McCreesh}, + pdfcreator=3D{pdfLaTeX and hyperref}, + pdfsubject=3D{Defining a feature set for package managers in the + Gentoo world}, + pdflang=3D{en}, + pdfkeywords=3D{Gentoo, package manager, specification}, + pdfproducer=3D{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=3Dtop]{caption} -\usepackage[utf8]{inputenc} - -\newboolean{TEX4HT-HACKS} -\ifx\HCode\undefined - \usepackage{mathptmx, - courier - } - \usepackage[scaled=3D.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 co= nditionals 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}}\mycol= our #1}{\def\mycolour{\color{deeppurple}}\mycolour #2}} - \newcommand{\IFANYKDEBUILDELSE}[2]{#1} - \newcommand{\IFKDEBUILDCOLOUR}[1]{{\def\mycolour{\color{deepblue}}\myc= olour #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=3Dblack, - colorlinks=3Dtrue, - citecolor=3Dblack, - linkcolor=3Dblack, - pdftitle=3D{Package Manager Specification}, - pdfauthor=3D{Stephen P. Bennett, Ciaran McCreesh}, - pdfcreator=3D{pdfLaTeX and hyperref}, - pdfsubject=3D{Defining a feature set for package managers in the - Gentoo world}, - pdflang=3D{en}, - pdfkeywords=3D{Gentoo, package manager, specification}, - pdfproducer=3D{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} =20 \begin{document} \maketitle --=20 1.6.0.6 --MP_/2P+cR_LpkNwKMPDI_JbB8FH Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0003-Change-label-for-controllable-compression-as-it-is-t.patch =46rom 54ee23729925b4d44d3e762e916865d1d275472e Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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-failur= e} & No & No & \IFKDEBUILDCOLOUR{Yes} \\ }{} =20 -Controllable compression & \compactfeatureref{controllable-compression} & = No & No & +Controllable compression & \compactfeatureref{controllable-compress} & No = & No & \IFANYKDEBUILDELSE{\IFKDEBUILDCOLOUR{No} &}{} No & Yes \\ =20 -\t{docompress} & \compactfeatureref{controllable-compression} & No & No & +\t{docompress} & \compactfeatureref{controllable-compress} & No & No & \IFANYKDEBUILDELSE{\IFKDEBUILDCOLOUR{No} &}{} No & Yes \\ =20 \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{controllabl= e-compression}. +\item Controllable compression and \t{docompress}, \featureref{controllabl= e-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 p= er section~\ref{sec:failu =20 \subsubsection{Commands affecting install compression} =20 -\featurelabel{controllable-compression} +\featurelabel{controllable-compress} In EAPIs listed in table~\ref{tab:compression-table} as supporting control= lable 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: --=20 1.6.0.6 --MP_/2P+cR_LpkNwKMPDI_JbB8FH Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0004-Desk-reference-for-quick-look-up.patch =46rom 951b015ca45a42ddfa363b54fc1fe3284c3d36ae Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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 =20 -LATEXFILES =3D $(shell ls *.tex) pms.cls +LATEXFILES =3D $(shell find -name '*.tex') pms.cls LISTINGFILES =3D $(shell ls *.listing) SOURCEFILES =3D $(LATEXFILES) $(LISTINGFILES) =20 -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 =20 pms.html: $(SOURCEFILES) pms.bbl @@ -31,6 +32,9 @@ pms.bbl: pms.bib pms.tex vc.tex latex pms bibtex pms =20 +eapi_cheatsheet.pdf: vc.tex + pdflatex cheatsheet/eapi_cheatsheet + vc.tex: pms.tex /bin/sh ./vc =20 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=3D]} The flag must be enabled if the flag is enabled for the + package with the dependency, or disabled otherwise. + \item{[!opt=3D]} 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=3DDEPEND} 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[=3D] 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 instal= led. +\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=C3=A4ty (environment state, section~\ref{sec:ebuild-env-state}) = for contributions. Thanks to -Christian Faulhammer for fixing some of the more horrible formatting screw= ups. 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 an= d/or clarification. =20 \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 @@ =20 \bibliography{pms} =20 +\includepdf[pages=3D-,landscape]{eapi_cheatsheet} \end{document} =20 % vim: set filetype=3Dtex fileencoding=3Dutf8 et tw=3D100 spell spelllang= =3Den : --=20 1.6.0.6 --MP_/2P+cR_LpkNwKMPDI_JbB8FH-- --Sig_/8KckVOZO6gM4.eahI+VrJ=z Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (GNU/Linux) iEYEARECAAYFAkniPacACgkQNQqtfCuFneP5TgCgkjKfEB8XRPrf7VtoNwxraGTw pJIAmQHoRw2xPvwzZxY14koNQKfYsgAp =m8dt -----END PGP SIGNATURE----- --Sig_/8KckVOZO6gM4.eahI+VrJ=z--