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 1Ltj7O-0006nD-SB for garchives@archives.gentoo.org; Tue, 14 Apr 2009 13:56:08 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id F113EE082B; Tue, 14 Apr 2009 13:56:05 +0000 (UTC) Received: from mo-p05-ob.rzone.de (mo-p05-ob.rzone.de [81.169.146.181]) by pigeon.gentoo.org (Postfix) with ESMTP id 2F848E082B for ; Tue, 14 Apr 2009 13:56:05 +0000 (UTC) X-RZG-AUTH: :K2kKYU+nW/MMMlTokcN5Yot1/Bj/FTl+WviP6RIJci0HRMpbh/x+X6ShOQjVOj0+68XXNRUHMwWX X-RZG-CLASS-ID: mo05 Received: from terra.solaris (p54AE686B.dip.t-dialin.net [84.174.104.107]) by post.strato.de (fruni mo49) (RZmta 18.28) with ESMTP id Y03dcel3EDFrcB ; Tue, 14 Apr 2009 15:56:00 +0200 (MEST) Date: Tue, 14 Apr 2009 15:55:43 +0200 From: Christian Faulhammer To: Ciaran McCreesh Cc: gentoo-pms@lists.gentoo.org Subject: Re: [gentoo-pms] Patches for your reviewing pleasure: Various improvements, including cheat sheet Message-ID: <20090414155543.16e78e66@terra.solaris> In-Reply-To: <20090414140423.27055b57@snowcone> References: <20090412211447.536a297a@terra.solaris> <20090412203624.79ae97c3@snowmobile> <20090413110148.17d9cd5f@terra.solaris> <20090413170143.31087b9c@snowcone> <20090414104448.20153bfb@terra.solaris> <20090414140423.27055b57@snowcone> 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_/kgb_Xut=0NWi+A5LN3ZpRy7"; protocol="application/pgp-signature"; micalg=PGP-SHA1 X-Archives-Salt: 52087b89-0df2-49c3-a2a0-4c8ac7843697 X-Archives-Hash: 056a1c7ebff4284de2471d32fcf630fd --Sig_/kgb_Xut=0NWi+A5LN3ZpRy7 Content-Type: multipart/mixed; boundary="MP_/OOq=oS59mUb8a+BzQ6mWoOA" --MP_/OOq=oS59mUb8a+BzQ6mWoOA Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, Ciaran McCreesh : > On Tue, 14 Apr 2009 10:44:48 +0200 > Christian Faulhammer 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. >=20 > 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. > > >=20 > > > I thought they were. Didn't I do labels for 1 and 2 things? > >=20 > > 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? >=20 > 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 --=20 Christian Faulhammer, Gentoo Lisp project , #gentoo-lisp on FreeNode --MP_/OOq=oS59mUb8a+BzQ6mWoOA Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-Desk-reference-for-quick-look-up.patch =46rom 07a0d42ed1d963709739ffd509bf2b365355cf32 Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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 =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..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=3D.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=3Dblack, + colorlinks=3Dtrue, + citecolor=3Dblack, + linkcolor=3Dblack, + pdftitle=3D{EAPI Desk Reference}, + pdfauthor=3D{Christian Faulhammer}, + pdfsubject=3D{Making look-up faster for EAPI features}, + pdflang=3D{en}, + pdfkeywords=3D{Gentoo, package manager, reference}, + pdfproducer=3D{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. =20 + + 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=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} + 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=3DDEPEND} 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 additio= n, + 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{:=3D}] Indicates that any slot value is acceptable. In addit= ion, + 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=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 -Frysinger and Brian Harring for proof-reading and suggestions for fixes an= d/or clarification. +Christian Faulhammer for fixing some of the more horrible formatting screw= ups and providing the EAPI +cheat sheet. Thanks also to Mike Frysinger and Brian Harring for proof-rea= ding and suggestions for +fixes and/or clarification. =20 \section*{Copyright and Licence} =20 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 @@ =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_/OOq=oS59mUb8a+BzQ6mWoOA Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-Make-vc.tex-target-depend-on-the-existence-of-vc-git.patch =46rom 7ed565f95c4d2d19bc98a5991ac6d1fdaad60ea0 Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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 =20 -vc.tex: pms.tex +vc.tex: pms.tex vc-git.awk /bin/sh ./vc =20 pms.dvi: $(SOURCEFILES) pms.bbl --=20 1.6.0.6 --MP_/OOq=oS59mUb8a+BzQ6mWoOA Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0003-Use-system-s-plainurl.bst.patch =46rom 04e3ca5c4bef9c66086071a509ddce927d8a1f99 Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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/pla= in.bst -%%% ... by urlbst, version 0.5 (marked with "% urlbst") -%%% See -%%% 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 :=3D % prefix before URL - "http://arxiv.org/abs/" 'eprinturl :=3D % prefix to make URL from eprint= ref - "arXiv:" 'eprintprefix :=3D % text prefix printed before eprint ref - "http://dx.doi.org/" 'doiurl :=3D % prefix to make URL from DOI - "doi:" 'doiprefix :=3D % text prefix printed before DOI ref - #0 'addeprints :=3D % 0=3Dno eprints; 1=3Dinclude eprints - #0 'adddoiresolver :=3D % 0=3Dno DOI resolver; 1=3Dinclude it - #0 'hrefform :=3D % 0=3Dno crossrefs; 1=3Dhypertex xrefs; 2=3Dhyperref r= efs -} -INTEGERS {=20 - bracket.state - outside.brackets - open.brackets - within.brackets - close.brackets -} -% ...urlbst to here -FUNCTION {init.state.consts} -{ #0 'outside.brackets :=3D % urlbst - #1 'open.brackets :=3D - #2 'within.brackets :=3D - #3 'close.brackets :=3D - - #0 'before.all :=3D - #1 'mid.sentence :=3D - #2 'after.sentence :=3D - #3 'after.block :=3D -} - -STRINGS { s t } - -% urlbst -FUNCTION {output.nonnull.original} -{ 's :=3D - output.state mid.sentence =3D - { ", " * write$ } - { output.state after.block =3D - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all =3D - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state :=3D - } - if$ - s -} - -% urlbst... -FUNCTION {output.nonnull} -{ % Save the thing we've been asked to output - 's :=3D - % 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 =3D - { "]" * - outside.brackets 'bracket.state :=3D - } - 'skip$ - if$ - bracket.state outside.brackets =3D - { % 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-bra= ckets - % state, ready for next time (unless inbrackets resets it). If we c= ome - % into this branch, then output.state is carefully undisturbed. - bracket.state open.brackets =3D - { " [" * } - { ", " * } % bracket.state will be within.brackets - if$=20 - s *=20 - close.brackets 'bracket.state :=3D - } - if$ -} - -% Call this function just before adding something which should be presente= d in=20 -% brackets. bracket.state is handled specially within output.nonnull. -FUNCTION {inbrackets} -{ bracket.state close.brackets =3D - { within.brackets 'bracket.state :=3D } % reset the state: not open no= r closed - { open.brackets 'bracket.state :=3D } - 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 :=3D - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {output.bibitem} -{ outside.brackets 'bracket.state :=3D % urlbst - newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state :=3D -} - -FUNCTION {fin.entry} -{=20 - bracket.state close.brackets =3D % urlbst - { "]" * } - 'skip$ - if$ - add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all =3D - 'skip$ - { after.block 'output.state :=3D } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block =3D - 'skip$ - { output.state before.all =3D - 'skip$ - { after.sentence 'output.state :=3D } - 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 :=3D - #1 'nameptr :=3D - s num.names$ 'numnames :=3D - numnames 'namesleft :=3D - { namesleft #0 > } - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=3D - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" =3D - { " et~al." * } - { " and " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr :=3D - namesleft #1 - 'namesleft :=3D - } - 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 :=3D - "" - { t empty$ not } - { t #1 #1 substring$ "-" =3D - { t #1 #2 substring$ "--" =3D not - { "--" * - t #2 global.max$ substring$ 't :=3D - } - { { t #1 #1 substring$ "-" =3D } - { "-" * - t #2 global.max$ substring$ 't :=3D - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't :=3D - } - 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 =3D - { "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 =3D - { edition "l" change.case$ " edition" * } - { edition "t" change.case$ " edition" * } - if$ - } - if$ -} - -INTEGERS { multiresult } - -FUNCTION {multi.page.check} -{ 't :=3D - #0 'multiresult :=3D - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" =3D - swap$ duplicate$ "," =3D - swap$ "+" =3D - or or - { #1 'multiresult :=3D } - { t #2 global.max$ substring$ 't :=3D } - 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" =3D - { " 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 =3D - 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 =3D - 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} -{=20 - "\special {html: }" * swap$ * - "\special {html:}" * -} -% make hyperref specials -FUNCTION {make.href.hyperref} -{=20 - "\href {" swap$ * "} {" * swap$ * "}" * -} -FUNCTION {make.href} -{ hrefform #2 =3D - 'make.href.hyperref % hrefform =3D 2 - { hrefform #1 =3D - 'make.href.hypertex % hrefform =3D 1 - 'make.href.null % hrefform =3D 0 (or anything else) - if$ - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { hrefform #1 =3D - { % 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$=20 - { new.block=20 - format.url output - format.lastchecked output=20 - } - 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=20 -% 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 :=3D - 'len :=3D - s #1 len substring$ =3D - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {sort.format.names} -{ 's :=3D - #1 'nameptr :=3D - "" - s num.names$ 'numnames :=3D - numnames 'namesleft :=3D - { namesleft #0 > } - { nameptr #1 > - { " " * } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=3D - nameptr numnames =3D t "others" =3D and - { "et al" * } - { t sortify * } - if$ - nameptr #1 + 'nameptr :=3D - namesleft #1 - 'namesleft :=3D - } - while$ -} - -FUNCTION {sort.format.title} -{ 't :=3D - "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" =3D - type$ "inbook" =3D - or - 'author.editor.sort - { type$ "proceedings" =3D - 'editor.organization.sort - { type$ "manual" =3D - '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$ :=3D -} - -ITERATE {presort} - -SORT - -STRINGS { longest.label } - -INTEGERS { number.label longest.label.width } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label :=3D - #1 'number.label :=3D - #0 'longest.label.width :=3D -} - -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label :=3D - number.label #1 + 'number.label :=3D - label width$ longest.label.width > - { label 'longest.label :=3D - label width$ 'longest.label.width :=3D - } - '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} --=20 1.6.0.6 --MP_/OOq=oS59mUb8a+BzQ6mWoOA Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0004-Make-item-recognise-its-optional-argument.patch =46rom 9aa62bfb269fc718900a13a31211288f3307d080 Mon Sep 17 00:00:00 2001 From: Christian Faulhammer 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: =20 \begin{description} - \item{[opt]} The flag must be enabled. - \item{[opt=3D]} The flag must be enabled if the flag is enabled for th= e package with the + \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 + \item[{[opt!=3D]}] The flag must be disabled if the flag is enabled fo= r 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 th= e package with the dependency. - \item{[opt!?]} The flag must be enabled if the use flag is disabled fo= r 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 th= e 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 fo= r the package with the dependency. \end{description} =20 @@ -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: =20 \begin{description} -\item{[opt]} The flag must be enabled. -\item{[opt=3D]} The flag must be enabled if the flag is enabled for the pa= ckage with the +\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 +\item[{[!opt=3D]}] The flag must be disabled if the flag is enabled for th= e package with the dependency, or enabled otherwise. -\item{[opt?]} The flag must be enabled if the flag is enabled for the pack= age with the +\item[{[opt?]}] The flag must be enabled if the flag is enabled for the pa= ckage with the dependency. -\item{[!opt?]} The flag must be disabled if the use flag is disabled for t= he 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} =20 Multiple requirements may be combined using commas, e.g. \t{[first,-second= ,third?]}. --=20 1.6.0.6 --MP_/OOq=oS59mUb8a+BzQ6mWoOA-- --Sig_/kgb_Xut=0NWi+A5LN3ZpRy7 Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (GNU/Linux) iEYEARECAAYFAknkld8ACgkQNQqtfCuFneOr/gCfR9RhQSnSEluI0hPQjxxuR10l 8wIAnRmo2vT/j2UjikTX0v/NQyxSoz8Q =mmYc -----END PGP SIGNATURE----- --Sig_/kgb_Xut=0NWi+A5LN3ZpRy7--