[gentoo-commits] proj/pms:master commit in: /

2024-04-05 Thread Ulrich Müller
commit: e044fe24e90de258483a59130c1b56de21082bc6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Apr  2 16:53:19 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Apr  2 16:53:19 2024 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e044fe24

ebuild-env-vars.tex: Be more specific about REPLACING_VERSIONS phases

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 0dcfd24..06d37d9 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -255,12 +255,13 @@ inconsistent variable.
 package, and \t{buildonly} if building a binary package without installing 
it. Only for EAPIs
 listed in table~\ref{tab:added-env-vars-table} as supporting 
\t{MERGE_TYPE}. \\
 \t{REPLACING_VERSIONS} &
-\t{pkg_*} (see text) &
+\t{pkg_preinst}, \t{pkg_postinst} (\t{pkg_pretend}, \t{pkg_setup}) &
 Yes &
 A list of all versions of this package (including revision, if specified), 
whitespace separated
 with no leading or trailing whitespace, that are being replaced 
(uninstalled or overwritten)
-as a result of this install. See section~\ref{sec:replacing-versions}. 
Only for EAPIs listed
-in table~\ref{tab:added-env-vars-table} as supporting 
\t{REPLACING_VERSIONS}. \\
+as a result of this install. See section~\ref{sec:replacing-versions}, 
especially for the phases
+in which the variable is legal. Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table}
+as supporting \t{REPLACING_VERSIONS}. \\
 \t{REPLACED_BY_VERSION} &
 \t{pkg_prerm}, \t{pkg_postrm} &
 Yes &



[gentoo-commits] proj/pms:master commit in: /

2024-03-03 Thread Ulrich Müller
commit: 4d3c1a3d1275a76f41c0c7c50ec11d1f8954e2fb
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Feb 22 17:12:22 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Feb 22 17:12:22 2024 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=4d3c1a3d

tree-layout.tex: Plural use of "data" is preferred in BE

https://digitalblog.ons.gov.uk/2016/12/08/data-is-versus-data-are/

This also fixes an "underfull \hbox" error.

Signed-off-by: Ulrich Müller  gentoo.org>

 tree-layout.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tree-layout.tex b/tree-layout.tex
index 61f70a2..d286307 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -265,7 +265,7 @@ directory, support files needed by these eclasses.
 \section{The Metadata Directory}
 \label{sec:metadata-dir}
 
-The \t{metadata} directory contains various repository-level metadata that is 
not contained in
+The \t{metadata} directory contains various repository-level metadata that are 
not contained in
 \t{profiles/}. All contents are optional. In this standard only the \t{cache} 
subdirectory is
 described; other contents are optional but may include security advisories, 
DTD files for the
 various XML files used in the repository, and repository timestamps.



[gentoo-commits] proj/pms:master commit in: /

2024-03-03 Thread Ulrich Müller
commit: ef9be7c2a696a476514de29e2f88df82f37f2ceb
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Feb 22 17:19:40 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Feb 22 17:19:40 2024 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ef9be7c2

ebuild-env-vars.tex: EBUILD_PHASE{,_FUNC} are valid only in phases

Portage didn't ever set (or unset) these variables to a special value
when sourcing the ebuild, so obviously ebuilds cannot rely on this.
Restrict their validity to actual phases and make global scope
behaviour unspecified.

The previous wording was introduced with commit 58d3bc0.

Bug: https://bugs.gentoo.org/908552
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index aae5413..0dcfd24 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -224,23 +224,23 @@ inconsistent variable.
 A whitespace-delimited list of all active USE flags for this ebuild. See
 section~\ref{sec:use-iuse-handling} for details. \\
 \t{EBUILD_PHASE} &
-All &
+\t{src_*}, \t{pkg_*} &
 No &
 Takes one of the values \t{config}, \t{setup}, \t{nofetch}, \t{unpack}, 
\t{prepare},
 \t{configure}, \t{compile}, \t{test}, \t{install}, \t{preinst}, 
\t{postinst}, \t{prerm},
 \t{postrm}, \t{info}, \t{pretend} according to the top level ebuild 
function that was executed
-by the package manager. May be unset or any single word that is not any of 
the above when the
-ebuild is being sourced for other (e.\,g.\ metadata or QA) purposes. \\
+by the package manager. Behaviour is unspecified when the ebuild is being 
sourced for other
+(e.\,g.\ metadata or QA) purposes. \\
 \t{EBUILD_PHASE_FUNC} &
-All &
+\t{src_*}, \t{pkg_*} &
 No &
 \featurelabel{ebuild-phase-func} Takes one of the values \t{pkg_config}, 
\t{pkg_setup},
 \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, 
\t{src_compile},
 \t{src_test}, \t{src_install}, \t{pkg_preinst}, \t{pkg_postinst}, 
\t{pkg_prerm},
 \t{pkg_postrm}, \t{pkg_info}, \t{pkg_pretend} according to the top level 
ebuild function that
-was executed by the package manager. May be unset or any single word that 
is not any of the
-above when the ebuild is being sourced for other (e.\,g.\ metadata or QA) 
purposes. Only for
-EAPIs listed in table~\ref{tab:added-env-vars-table} as supporting 
\t{EBUILD_PHASE_FUNC}. \\
+was executed by the package manager. Behaviour is unspecified when the 
ebuild is being sourced
+for other (e.\,g.\ metadata or QA) purposes. Only for EAPIs listed in
+table~\ref{tab:added-env-vars-table} as supporting \t{EBUILD_PHASE_FUNC}. 
\\
 \t{KV} &
 All &
 Yes &



[gentoo-commits] proj/pms:master commit in: /

2024-03-03 Thread Ulrich Müller
commit: 1a669f3ce2ac6b6cf4c96be16dfea0b5621a938d
Author: Michał Górny  gentoo  org>
AuthorDate: Wed Feb 21 15:45:01 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Mar  3 17:29:40 2024 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1a669f3c

ebuild-vars.tex: Add "test_privileged" to valid "PROPERTIES"

Add "test_privileged" to the values of "PROPERTIES", as introduced
in Portage commit 997058a825a340813532bef77a34425cf4a88eb2 (to be
included in 3.0.62).  This is akin to "test_network", used to indicate
that the test suite needs superuser privileges.

Bug: https://bugs.gentoo.org/924585
Signed-off-by: Michał Górny  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-vars.tex | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 5f3f583..79fa96f 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -239,6 +239,8 @@ The following tokens are permitted inside \t{PROPERTIES}:
 installed.
 \item[test_network] The package manager may run tests that require an internet 
connection, even if
 the ebuild has \t{RESTRICT=test}.
+\item[test_privileged] The package manager may run tests that require 
superuser privileges, even
+if the ebuild has \t{RESTRICT=test}.
 \end{description}
 
 Package managers may recognise other tokens. Ebuilds may not rely upon any 
token being supported.



[gentoo-commits] proj/pms:master commit in: /

2024-02-08 Thread Ulrich Müller
commit: 47772dd3b715953dda0e663c62d31814043f9df6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan 27 09:04:54 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Jan 27 13:03:44 2024 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=47772dd3

tree-layout.tex: Loosen restrictions on reusing package and slot names

Closes: https://bugs.gentoo.org/923019
Signed-off-by: Ulrich Müller  gentoo.org>

 tree-layout.tex | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tree-layout.tex b/tree-layout.tex
index 99fc46a..61f70a2 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -229,9 +229,9 @@ to \t{slot2}.
 It is unspecified in what order the files in the \t{updates} directory are 
processed. Lines within
 each file are processed in ascending order.
 
-Any name that has appeared as the origin of a move must not be reused in the 
future. Any slot
-that has appeared as the origin of a slot move may not be used by packages 
matching the spec of
-that slot move in the future.
+At any given time, a name that appears as the origin of a move may not be used 
as a qualified
+package name in the repository. A slot that appears as the origin of a slot 
move may not be used
+by packages matching the spec of that slot move.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Naming rules for files in \t{updates} directory for EAPIs}



[gentoo-commits] proj/pms:master commit in: /

2024-02-08 Thread Ulrich Müller
commit: 7674760dc5ac6d2a1800203f8b257665bc12b9db
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan 27 09:04:35 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Jan 27 09:04:35 2024 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7674760d

pms.tex: Update copyright years

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index f435f51..bd8c9d5 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
 \small
-\textcopyright{} 2007--2023 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
+\textcopyright{} 2007--2024 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
 by their respective authors, and may have been changed substantially 
before inclusion.
 
 This work is released under the Creative Commons Attribution-ShareAlike 
4.0 International



[gentoo-commits] proj/pms:master commit in: /

2024-01-01 Thread Ulrich Müller
commit: 658ead31edffc3bf431c5840830a357e3fe555da
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Dec 29 11:54:18 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Dec 29 12:20:21 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=658ead31

ebuild-env-vars.tex: Clarify that D is not valid in pkg_postinst

D in pkg_* phases was first mentioned in SVN r74 (commit f627e46102c6)
as a variable specific to the pkg_preinst phase function (replacing
IMAGE). pkg_postinst was added in r88 (commit 3da3ee561f1a), but this
was reverted in r89 (commit 65c466317718) "D in pkg_postinst == bad".

pkg_postinst reappeared when the env vars section was converted to
a table in commit 58d3bc0e8301.

According to chapter 13 "Merging and Unmerging", the method used to
perform the merge is not specified, and merging a regular file or
a directory may alter or remove its source under D. Therefore, trying
to access any file in D during the postinst phase is an error.

The scope of ED follows that of D.

Closes: https://bugs.gentoo.org/920889
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 5fe72dc..aae5413 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -192,14 +192,13 @@ inconsistent variable.
 The presence of a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}.
 \\
 \t{D} (continued) &
-\t{pkg_preinst}, \t{pkg_postinst} &
-Yes\footnote{Consistent across \t{pkg_preinst} and \t{pkg_postinst}, but 
may not necessarily
-have the same value that it had in the \t{src_*} phases.} &
-Contains the full path to the image that is about to be or has just been 
merged.
+\t{pkg_preinst} &
+No\footnote{May not necessarily have the same value that it had in the 
\t{src_*} phases.} &
+Contains the full path to the image directory of the package about to be 
merged.
 The presence of a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}.
 \\
 \t{ED} &
-\t{src_*}, \t{pkg_preinst}, \t{pkg_postinst} &
+\t{src_*}, \t{pkg_preinst} &
 See \t{D} &
 Contains the concatenation of the paths in the \t{D} and \t{EPREFIX} 
variables,
 for convenience. See also the \t{EPREFIX} variable. Only for EAPIs listed 
in



[gentoo-commits] proj/pms:master commit in: /

2023-12-28 Thread Ulrich Müller
commit: aecb51e70f8546fd7f55144f9035ca982ab6fae1
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Dec 24 13:05:52 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Dec 24 13:05:52 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=aecb51e7

pkg-mgr-commands.tex: Sandbox commands accept any file

The sandbox commands addread, addwrite, addpredict and adddeny can
accept not only directories, but also other files like regular files
or device nodes.

This behaviour is supported by all three package managers. Also, the
sandbox's default configuration relies on it (e.g. "/dev/null" and
"${HOME}/.bash_history" in /etc/sandbox.conf), and it is widely used
in the Gentoo repository.

Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index b6113f6..2202b64 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -89,14 +89,14 @@ called, the package manager must abort the build process 
indicating an error.
 \end{centertable}
 
 \subsection{Sandbox commands}
-These commands affect the behaviour of the sandbox. Each command takes a 
single directory as
-argument. Ebuilds must not run any of these commands once the current phase 
function has returned.
+These commands affect the behaviour of the sandbox. Each command takes a 
single path as argument.
+Ebuilds must not run any of these commands once the current phase function has 
returned.
 \begin{description}
-\item[addread] Add a directory to the permitted read list.
-\item[addwrite] Add a directory to the permitted write list.
-\item[addpredict] Add a directory to the predict list. Any write to a location 
in this list will be
+\item[addread] Add a path to the permitted read list.
+\item[addwrite] Add a path to the permitted write list.
+\item[addpredict] Add a path to the predict list. Any write to a location in 
this list will be
 denied, but will not trigger access violation messages or abort the build 
process.
-\item[adddeny] Add a directory to the deny list.
+\item[adddeny] Add a path to the deny list.
 \end{description}
 
 \subsection{Package manager query commands}



[gentoo-commits] proj/pms:master commit in: /

2023-08-09 Thread Ulrich Müller
commit: f336f16ab8ab80d77cfb626eb2935eacda8bb596
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Aug  3 16:22:33 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Aug  7 17:08:16 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f336f16a

ebuild-env-vars.tex: Variables may not be meaningful in global scope

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 6046e1f..5fe72dc 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -2,8 +2,9 @@
 \label{sec:ebuild-env-vars}
 
 The package manager must define the following environment variables. Not all 
variables are
-meaningful in all phases; variables that are not meaningful in a given phase 
may be unset or set to
-any value. Ebuilds must not attempt to modify any of these variables, unless 
otherwise specified.
+universally meaningful; variables that are not meaningful in a given phase or 
in global scope may
+be unset or set to any value. Ebuilds must not attempt to modify any of these 
variables, unless
+otherwise specified.
 
 Because of their special meanings, these variables may not be preserved 
consistently across all
 phases as would normally happen due to environment saving (see 
section~\ref{sec:ebuild-env-state}).



[gentoo-commits] proj/pms:master commit in: /

2023-08-09 Thread Ulrich Müller
commit: ea32ea927dad915bd50e0dcf976379b8470eb4d7
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Aug  6 09:52:14 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Aug  7 17:08:16 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ea32ea92

ebuild-env-vars.tex: Add footnote about BROOT in pkg_* phases

Restrict the previous change to EAPIs that actually support IDEPEND.

Bug: https://bugs.gentoo.org/911574
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 20aedb4..6046e1f 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -150,7 +150,8 @@ inconsistent variable.
 as supporting \t{ESYSROOT}. \\
 \t{BROOT} &
 \t{src_*}, \t{pkg_setup},\footnotemark[\value{footnote}] \t{pkg_preinst}, 
\t{pkg_postinst},
-\t{pkg_prerm}, \t{pkg_postrm} &
+\t{pkg_prerm}, \t{pkg_postrm}\footnote{Legal in \t{pkg_*inst} and 
\t{pkg_*rm} only for EAPIs
+listed in table~\ref{tab:depend-table} as supporting \t{IDEPEND}.} &
 No &
 \featurelabel{broot} The absolute path to the root directory containing 
build dependencies
 satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build 
tools. This includes any



[gentoo-commits] proj/pms:master commit in: /

2023-08-06 Thread Ulrich Müller
commit: 5c394f7d83e432cde0d9ff9d70c2e2eb0c1c2327
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Aug  2 10:18:54 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Aug  6 11:09:41 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5c394f7d

ebuild-env-vars.tex: BROOT is valid in additional pkg_* phases

By section sec:dependency-classes, dependency class BDEPEND is
satisfied in phase functions src_* and pkg_setup (only if part of
source build); IDEPEND is satisfied in pkg_preinst, pkg_postinst,
pkg_prerm and pkg_postrm.

Update the entry for BROOT accordingly.

Closes: https://bugs.gentoo.org/911574
Reported-by: Mike Gilbert  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index fc8123b..20aedb4 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -149,7 +149,8 @@ inconsistent variable.
 by table~\ref{tab:depend-prefix}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
 as supporting \t{ESYSROOT}. \\
 \t{BROOT} &
-\t{src_*}, \t{pkg_setup}\footnotemark[\value{footnote}] &
+\t{src_*}, \t{pkg_setup},\footnotemark[\value{footnote}] \t{pkg_preinst}, 
\t{pkg_postinst},
+\t{pkg_prerm}, \t{pkg_postrm} &
 No &
 \featurelabel{broot} The absolute path to the root directory containing 
build dependencies
 satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build 
tools. This includes any



[gentoo-commits] proj/pms:master commit in: /

2023-08-06 Thread Ulrich Müller
commit: 07dde903c0f2feeb9f4aa46273436dc992b18913
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Aug  3 16:16:07 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Aug  6 11:09:41 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=07dde903

ebuild-env-vars.tex: Avoid "Ditto" in the env variables table

Suggested-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 23 +++
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 533936a..fc8123b 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -48,15 +48,15 @@ inconsistent variable.
 Package name and version, without the revision part. For example, 
\t{vim-7.0.174}. \\
 \t{PF} &
 All &
-Ditto &
+No\footnotemark[\value{footnote}] &
 Package name, version, and revision (if any), for example 
\t{vim-7.0.174-r1}. \\
 \t{PN} &
 All &
-Ditto &
+No\footnotemark[\value{footnote}] &
 Package name, for example \t{vim}. \\
 \t{CATEGORY} &
 All &
-Ditto &
+No\footnotemark[\value{footnote}] &
 The package's category, for example \t{app-editors}. \\
 \t{PV} &
 All &
@@ -81,7 +81,7 @@ inconsistent variable.
 assume that the package manager sets it in the EAPIs supporting it. For 
example, a few
 configure scripts use this variable to find the \t{aalib} package; ebuilds 
calling such
 configure scripts must thus work around this.} &
-Ditto &
+\t{src_*}, \t{pkg_nofetch} &
 Yes &
 \featurelabel{aa} All source files that could be available for the 
package, including any that
 are disabled in \t{A} because of USE conditionals. The value is calculated 
from the base names
@@ -96,11 +96,11 @@ inconsistent variable.
 not exist; if a repository provides no support files for the package in 
question then an ebuild
 must be prepared for the situation where \t{FILESDIR} points to a 
non-existent directory. \\
 \t{DISTDIR} &
-Ditto &
+\t{src_*}, global~scope\footnotemark[\value{footnote}] &
 Yes &
 The full path to the directory in which the files in the \t{A} variable 
are stored. \\
 \t{WORKDIR} &
-Ditto &
+\t{src_*}, global~scope\footnotemark[\value{footnote}] &
 Yes &
 The full path to the ebuild's working directory, where all build data 
should be contained. \\
 \t{S} &
@@ -143,19 +143,18 @@ inconsistent variable.
 satisfied by \t{DEPEND}\@. Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table}
 as supporting \t{SYSROOT}. \\
 \t{ESYSROOT} &
-Ditto &
+\t{src_*}, \t{pkg_setup}\footnotemark[\value{footnote}] &
 No &
 Contains the concatenation of the \t{SYSROOT} path and applicable prefix 
value, as determined
 by table~\ref{tab:depend-prefix}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
 as supporting \t{ESYSROOT}. \\
 \t{BROOT} &
-Ditto &
+\t{src_*}, \t{pkg_setup}\footnotemark[\value{footnote}] &
 No &
 \featurelabel{broot} The absolute path to the root directory containing 
build dependencies
 satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build 
tools. This includes any
 applicable offset prefix. Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table} as
-supporting \t{BROOT}.
-\\
+supporting \t{BROOT}. \\
 \t{T} &
 All &
 Partially\footnote{Consistent and preserved across a single connected 
sequence of install or
@@ -164,12 +163,12 @@ inconsistent variable.
 The full path to a temporary directory for use by the ebuild. \\
 \t{TMPDIR} &
 All &
-Ditto &
+Partially\footnotemark[\value{footnote}] &
 Must be set to the location of a usable temporary directory, for any 
applications
 called by an ebuild. Must not be used by ebuilds directly; see \t{T} 
above. \\
 \t{HOME} &
 All &
-Ditto &
+Partially\footnotemark[\value{footnote}] &
 The full path to an appropriate temporary directory for use by any 
programs invoked by the
 ebuild that may read or modify the home directory. \\
 \t{EPREFIX} &



[gentoo-commits] proj/pms:master commit in: /

2023-08-06 Thread Ulrich Müller
commit: 86bdfe73f488081e6abc9397693e35b400cfc6b6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Aug  3 16:12:16 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Aug  6 11:09:40 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=86bdfe73

Reformat the footnotes in the env variables longtable

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 12 
 pms.cls |  3 +++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index b8deb04..533936a 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -12,13 +12,17 @@ the various different \t{pkg_*} phases. Ebuilds must 
recalculate any variable th
 inconsistent variable.
 
 \begin{landscape}
+% Reduce width of text area to make room for margin notes
+\addtolength{\hsize}{-25mm}
+\setlength{\linewidth}{\hsize}
+\setlength{\columnwidth}{\hsize}
+\addtolength{\footskip}{25mm}
 \reversemarginpar
-\addtolength{\marginparsep}{-25mm}
 % Workaround for broken marginnote positioning in lscape environment
 \addtolength{\marginparsep}{-\textwidth} % FIXME
-\setlength{\LTleft}{25mm plus 1fil}
+\setlength{\LTleft}{0pt plus 1fil}
 \setlength{\LTright}{0pt plus 1fil}
-\begin{longtable}{!{\extracolsep{\fill}} l P{7.5em} l p{0.5\linewidth}}
+\begin{longtable}{!{\extracolsep{\fill}} l P{7.5em} l p{35em}}
 \caption{Defined variables\label{tab:defined-vars}}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Variable}} &
@@ -34,7 +38,7 @@ inconsistent variable.
 \multicolumn{1}{c}{\textbf{Description}} \\
 \midrule
 \endhead
-\midrule
+%\midrule
 \endfoot
 \bottomrule
 \endlastfoot

diff --git a/pms.cls b/pms.cls
index dcef98c..d1a85fa 100644
--- a/pms.cls
+++ b/pms.cls
@@ -22,8 +22,10 @@
 \PassOptionsToPackage{utf8}{inputenc}
 \PassOptionsToPackage{quiet}{marginnote}
 \PassOptionsToPackage{nohyphen}{underscore}
+\PassOptionsToPackage{hang,flushmargin}{footmisc}
 \PassOptionsToPackage{nottoc,notlot,notlof}{tocbibind}
 \PassOptionsToPackage{hyphens}{url} % url.sty implicitly loaded by hyperref
+\PassOptionsToPackage{hyperfootnotes=false}{hyperref} % footmisc compatibility
 \PassOptionsToPackage{local}{gitinfo2}
 \PassOptionsToPackage{chapter}{algorithm}
 % algorithmic and algorithm to be loaded last to avoid failures
@@ -41,6 +43,7 @@
 marginnote, % Typeset a paragraph in the page margin
 paralist,   % Additional list environments
 underscore, % Allow simple _ instead of \_
+footmisc,   % Customise footnotes
 chngcntr,   % Redefinition of counters
 tocbibind,  % Add bibliography to table of contents
 float,  % More control over float environments



[gentoo-commits] proj/pms:master commit in: /

2023-08-03 Thread Ulrich Müller
commit: d32b244c33eac325928e29e88c22a3d74fb86051
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Aug  3 16:12:16 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Aug  3 16:17:46 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=d32b244c

Reformat the footnotes in the env variables longtable

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 11 +++
 pms.cls |  3 +++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index b8deb04..9e79a20 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -12,13 +12,16 @@ the various different \t{pkg_*} phases. Ebuilds must 
recalculate any variable th
 inconsistent variable.
 
 \begin{landscape}
+% Reduce width of text area to make room for margin notes
+\addtolength{\hsize}{-25mm}
+\setlength{\linewidth}{\hsize}
+\setlength{\columnwidth}{\hsize}
 \reversemarginpar
-\addtolength{\marginparsep}{-25mm}
 % Workaround for broken marginnote positioning in lscape environment
 \addtolength{\marginparsep}{-\textwidth} % FIXME
-\setlength{\LTleft}{25mm plus 1fil}
+\setlength{\LTleft}{0pt plus 1fil}
 \setlength{\LTright}{0pt plus 1fil}
-\begin{longtable}{!{\extracolsep{\fill}} l P{7.5em} l p{0.5\linewidth}}
+\begin{longtable}{!{\extracolsep{\fill}} l P{7.5em} l p{35em}}
 \caption{Defined variables\label{tab:defined-vars}}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Variable}} &
@@ -34,7 +37,7 @@ inconsistent variable.
 \multicolumn{1}{c}{\textbf{Description}} \\
 \midrule
 \endhead
-\midrule
+%\midrule
 \endfoot
 \bottomrule
 \endlastfoot

diff --git a/pms.cls b/pms.cls
index dcef98c..d1a85fa 100644
--- a/pms.cls
+++ b/pms.cls
@@ -22,8 +22,10 @@
 \PassOptionsToPackage{utf8}{inputenc}
 \PassOptionsToPackage{quiet}{marginnote}
 \PassOptionsToPackage{nohyphen}{underscore}
+\PassOptionsToPackage{hang,flushmargin}{footmisc}
 \PassOptionsToPackage{nottoc,notlot,notlof}{tocbibind}
 \PassOptionsToPackage{hyphens}{url} % url.sty implicitly loaded by hyperref
+\PassOptionsToPackage{hyperfootnotes=false}{hyperref} % footmisc compatibility
 \PassOptionsToPackage{local}{gitinfo2}
 \PassOptionsToPackage{chapter}{algorithm}
 % algorithmic and algorithm to be loaded last to avoid failures
@@ -41,6 +43,7 @@
 marginnote, % Typeset a paragraph in the page margin
 paralist,   % Additional list environments
 underscore, % Allow simple _ instead of \_
+footmisc,   % Customise footnotes
 chngcntr,   % Redefinition of counters
 tocbibind,  % Add bibliography to table of contents
 float,  % More control over float environments



[gentoo-commits] proj/pms:master commit in: /

2023-08-03 Thread Ulrich Müller
commit: 1a27729740e17ccd4b7a4527a46011fa62c9efb1
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Aug  2 10:18:54 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Aug  3 16:17:47 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1a277297

ebuild-env-vars.tex: BROOT is valid in additional pkg_* phases

By section sec:dependency-classes, dependency class BDEPEND is
satisfied in phase functions src_* and pkg_setup (only if part of
source build); IDEPEND is satisfied in pkg_preinst, pkg_postinst,
pkg_prerm and pkg_postrm.

Update the entry for BROOT accordingly.

Closes: https://bugs.gentoo.org/911574
Reported-by: Mike Gilbert  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 54e55be..f2078a6 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -148,7 +148,8 @@ inconsistent variable.
 by table~\ref{tab:depend-prefix}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
 as supporting \t{ESYSROOT}. \\
 \t{BROOT} &
-\t{src_*}, \t{pkg_setup}\footnotemark[\value{footnote}] &
+\t{src_*}, \t{pkg_setup},\footnotemark[\value{footnote}] \t{pkg_preinst}, 
\t{pkg_postinst},
+\t{pkg_prerm}, \t{pkg_postrm} &
 No &
 \featurelabel{broot} The absolute path to the root directory containing 
build dependencies
 satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build 
tools. This includes any



[gentoo-commits] proj/pms:master commit in: /

2023-08-03 Thread Ulrich Müller
commit: 7822bc123b364b7d0da5a04b9c6184d92cbb311b
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Aug  3 16:16:07 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Aug  3 16:17:47 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7822bc12

ebuild-env-vars.tex: Avoid "Ditto" in the env variables table

Suggested-by: Sam James  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 23 +++
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 9e79a20..54e55be 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -47,15 +47,15 @@ inconsistent variable.
 Package name and version, without the revision part. For example, 
\t{vim-7.0.174}. \\
 \t{PF} &
 All &
-Ditto &
+No\footnotemark[\value{footnote}] &
 Package name, version, and revision (if any), for example 
\t{vim-7.0.174-r1}. \\
 \t{PN} &
 All &
-Ditto &
+No\footnotemark[\value{footnote}] &
 Package name, for example \t{vim}. \\
 \t{CATEGORY} &
 All &
-Ditto &
+No\footnotemark[\value{footnote}] &
 The package's category, for example \t{app-editors}. \\
 \t{PV} &
 All &
@@ -80,7 +80,7 @@ inconsistent variable.
 assume that the package manager sets it in the EAPIs supporting it. For 
example, a few
 configure scripts use this variable to find the \t{aalib} package; ebuilds 
calling such
 configure scripts must thus work around this.} &
-Ditto &
+\t{src_*}, \t{pkg_nofetch} &
 Yes &
 \featurelabel{aa} All source files that could be available for the 
package, including any that
 are disabled in \t{A} because of USE conditionals. The value is calculated 
from the base names
@@ -95,11 +95,11 @@ inconsistent variable.
 not exist; if a repository provides no support files for the package in 
question then an ebuild
 must be prepared for the situation where \t{FILESDIR} points to a 
non-existent directory. \\
 \t{DISTDIR} &
-Ditto &
+\t{src_*}, global~scope\footnotemark[\value{footnote}] &
 Yes &
 The full path to the directory in which the files in the \t{A} variable 
are stored. \\
 \t{WORKDIR} &
-Ditto &
+\t{src_*}, global~scope\footnotemark[\value{footnote}] &
 Yes &
 The full path to the ebuild's working directory, where all build data 
should be contained. \\
 \t{S} &
@@ -142,19 +142,18 @@ inconsistent variable.
 satisfied by \t{DEPEND}\@. Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table}
 as supporting \t{SYSROOT}. \\
 \t{ESYSROOT} &
-Ditto &
+\t{src_*}, \t{pkg_setup}\footnotemark[\value{footnote}] &
 No &
 Contains the concatenation of the \t{SYSROOT} path and applicable prefix 
value, as determined
 by table~\ref{tab:depend-prefix}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
 as supporting \t{ESYSROOT}. \\
 \t{BROOT} &
-Ditto &
+\t{src_*}, \t{pkg_setup}\footnotemark[\value{footnote}] &
 No &
 \featurelabel{broot} The absolute path to the root directory containing 
build dependencies
 satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build 
tools. This includes any
 applicable offset prefix. Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table} as
-supporting \t{BROOT}.
-\\
+supporting \t{BROOT}. \\
 \t{T} &
 All &
 Partially\footnote{Consistent and preserved across a single connected 
sequence of install or
@@ -163,12 +162,12 @@ inconsistent variable.
 The full path to a temporary directory for use by the ebuild. \\
 \t{TMPDIR} &
 All &
-Ditto &
+Partially\footnotemark[\value{footnote}] &
 Must be set to the location of a usable temporary directory, for any 
applications
 called by an ebuild. Must not be used by ebuilds directly; see \t{T} 
above. \\
 \t{HOME} &
 All &
-Ditto &
+Partially\footnotemark[\value{footnote}] &
 The full path to an appropriate temporary directory for use by any 
programs invoked by the
 ebuild that may read or modify the home directory. \\
 \t{EPREFIX} &



[gentoo-commits] proj/pms:master commit in: /

2023-06-05 Thread Ulrich Müller
commit: 8db624245bc7ac34712017a70c056abe9d4a60cf
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon May 29 13:07:58 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon May 29 13:07:58 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8db62424

pms.bib: Use @techreport entry type for GLEPs

This is a slightly better fit than @manual. Also, change citation keys
to lowercase.

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex  |  6 +++---
 pms.bib | 35 +--
 tree-layout.tex |  2 +-
 3 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index 7a2c70b..daf9b01 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -3,7 +3,7 @@
 
 The \t{metadata.xml} file is used to contain extra package- or category-level 
information beyond
 what is stored in ebuild metadata. Its exact format is strictly beyond the 
scope of this document,
-and is described in GLEP~68~\cite{Glep68}.
+and is described in GLEP~68~\cite{glep68}.
 
 \chapter{Unspecified Items}
 
@@ -76,7 +76,7 @@ the \t{PROVIDE} metadata that it supplied certain virtuals, 
and the package mana
 in mind when handling dependencies.
 
 Old-style virtuals were supported by EAPIs 0, 1, 2, 3 and~4. They were phased 
out via
-GLEP~37~\cite{Glep37} and finally removed in 2011.
+GLEP~37~\cite{glep37} and finally removed in 2011.
 
 \note{A `new-style virtual' is a normal package that installs no files and 
uses its dependency
 requirements to pull in a `provider'. This does not require any special 
handling from the package
@@ -87,7 +87,7 @@ The method to specify the EAPI of an ebuild used to be a 
shell variable assignme
 manager had to source the ebuild in order to determine the EAPI\@. Therefore 
any ebuild using
 a future EAPI would still have to be sourceable by old package managers, which 
imposed restrictions
 e.\,g.\ on updating the Bash version or on possible changes of global scope 
functions. Several
-approaches to overcome this limitation were discussed, notably 
GLEP~55~\cite{Glep55}, which was
+approaches to overcome this limitation were discussed, notably 
GLEP~55~\cite{glep55}, which was
 rejected though.
 
 The current syntax of the \t{EAPI} assignment statement (see 
section~\ref{sec:eapi}), allowing

diff --git a/pms.bib b/pms.bib
index 014b643..bef07c1 100644
--- a/pms.bib
+++ b/pms.bib
@@ -1,38 +1,53 @@
-@manual{Glep37,
+@techreport{glep37,
 author = {Jason Stubbs},
-title = {{GLEP} 37: Virtuals deprecation},
+title = {Virtuals deprecation},
+type = {GLEP},
+number = 37,
+institution = {Gentoo Linux},
 year = 2006,
 month = Sep,
 url = {https://www.gentoo.org/glep/glep-0037.html}
 }
 
-@manual{Glep44,
+@techreport{glep44,
 author = {Marius Mauch},
-title = {{GLEP} 44: Manifest2 format},
+title = {{Manifest2} format},
+type = {GLEP},
+number = 44,
+institution = {Gentoo Linux},
 year = 2006,
 month = Sep,
 url = {https://www.gentoo.org/glep/glep-0044.html}
 }
 
-@manual{Glep55,
+@techreport{glep55,
 author = {Piotr Jaroszyński},
-title = {{GLEP} 55: Use {EAPI}-suffixed ebuilds},
+title = {Use {EAPI}-suffixed ebuilds},
+type = {GLEP},
+number = 55,
+institution = {Gentoo Linux},
 year = 2009,
 month = May,
 url = {https://www.gentoo.org/glep/glep-0055.html}
 }
 
-@manual{Glep68,
+@techreport{glep68,
 author = {Michał Górny},
-title = {{GLEP} 68: Package and category metadata},
+title = {Package and category metadata},
+type = {GLEP},
+number = 68,
+institution = {Gentoo Linux},
 year = 2022,
 month = Oct,
 url = {https://www.gentoo.org/glep/glep-0068.html}
 }
 
-@manual{Glep74,
+@techreport{glep74,
 author = {Michał Górny and Robin Hugh Johnson and Ulrich Müller},
-title = {{GLEP} 74: Full-tree verification using Manifest files},
+title = {Full-tree verification using {Manifest} files},
+type = {GLEP},
+number = 74,
+institution = {Gentoo Linux},
 year = 2022,
 month = Oct,
 url = {https://www.gentoo.org/glep/glep-0074.html}

diff --git a/tree-layout.tex b/tree-layout.tex
index da01ff8..99fc46a 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -54,7 +54,7 @@ A package directory contains the following:
 \item A \t{metadata.xml} file, as described in 
appendix~\ref{app:metadata-xml}\@. Optional only for
 legacy support.
 \item A \t{ChangeLog}, in a format determined by the provider of the 
repository. Optional.
-\item A \t{Manifest} file, whose format is described in~\cite{Glep74}. Can be 
omitted if the file
+\item A \t{Manifest} file, whose format is described in~\cite{glep74}. Can be 
omitted if the file
 would be empty.
 \item A \t{files} directory, containing any support files needed by the 
ebuilds. Optional.
 \end{compactitem}



[gentoo-commits] proj/pms:master commit in: /

2023-05-10 Thread Ulrich Müller
commit: 544d28de1b799ffe839bd6d7b5bc15b4d8e5970d
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Apr 29 14:33:48 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu May  4 18:39:57 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=544d28de

pkg-mgr-commands.tex: Drop CONF_LIBDIR* and DEFAULT_ABI

The CONF_LIBDIR variable was used exclusively in the 2004.3 profile
(i.e. it was no longer defined in 2005.0). Portage support for
CONF_LIBDIR was added by this commit:
https://gitweb.gentoo.org/archive/proj/portage-cvs.git/commit/?id=ecc2faaa00b1e6250129267ba873bedd2121eac5
Note that neither the ABI nor the LIBDIR_${ABI} variable existed at
the time.

The CONF_LIBDIR_OVERRIDE and DEFAULT_ABI variables were never
implemented in the dolib* and einstall commands in Portage.

With the three variables dropped, the algorithm is identical to the
logic used for get_libdir(). Therefore drop alg:ebuild-libdir and
refer to alg:get-libdir instead.

Bug: https://bugs.gentoo.org/267159
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 30 --
 1 file changed, 4 insertions(+), 26 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4fac077..b6113f6 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -430,7 +430,7 @@ commands once the current phase function has returned.
 table~\ref{tab:offset-env-vars-table}, hence EAPIs lacking offset-prefix 
support should use
 \t{D} instead of \t{ED} in the command given in listing~\ref{lst:einstall}.
 Variable \t{libdir} is an auxiliary local variable whose value is 
determined by
-algorithm~\ref{alg:ebuild-libdir}.
+algorithm~\ref{alg:get-libdir}.
 
 \begin{listing}[H]
 \caption{\t{einstall} command} \label{lst:einstall}
@@ -554,7 +554,7 @@ the current phase function has returned.
 EAPI dependent as per section~\ref{sec:failure-behaviour}.
 
 \item[dolib.a] For each argument, installs it into the appropriate library 
subdirectory under
-\t{DESTTREE}, as determined by algorithm~\ref{alg:ebuild-libdir}. Files 
are installed with file
+\t{DESTTREE}, as determined by algorithm~\ref{alg:get-libdir}. Files are 
installed with file
 mode \t{0644}. Any symlinks are installed into the same directory as 
relative links to their
 original target. Failure behaviour is EAPI dependent as per 
section~\ref{sec:failure-behaviour}.
 
@@ -565,28 +565,6 @@ the current phase function has returned.
 in table~\ref{tab:banned-commands-table}, this command is banned as per
 section~\ref{sec:banned-commands}.
 
-\begin{algorithm}
-\caption{Determining the library directory} \label{alg:ebuild-libdir}
-\begin{algorithmic}[1]
-\IF{CONF_LIBDIR_OVERRIDE is set in the environment}
-\STATE return CONF_LIBDIR_OVERRIDE
-\ENDIF
-\IF{CONF_LIBDIR is set in the environment}
-\STATE let LIBDIR_default=CONF_LIBDIR
-\ELSE
-\STATE let LIBDIR_default=``lib''
-\ENDIF
-\IF{ABI is set in the environment}
-\STATE let abi=ABI
-\ELSIF{DEFAULT_ABI is set in the environment}
-\STATE let abi=DEFAULT_ABI
-\ELSE
-\STATE let abi=``default''
-\ENDIF
-\STATE return the value of LIBDIR_\$abi
-\end{algorithmic}
-\end{algorithm}
-
 \item[doman] Installs the given man pages into the appropriate subdirectory of 
\t{/usr/share/man}
 depending upon its apparent section suffix (e.\,g.\ \t{foo.1} goes to
 \t{/usr/share/man/man1/foo.1}) with file mode \t{0644}.
@@ -1273,7 +1251,7 @@ has returned.
 supporting \t{get_libdir}.
 
 \begin{algorithm}
-\caption{\t{get_libdir} logic} \label{alg:get-libdir}
+\caption{Library directory logic} \label{alg:get-libdir}
 \begin{algorithmic}[1]
 \STATE let libdir=\t{lib}
 \IF{the ABI environment variable is set}
@@ -1282,7 +1260,7 @@ has returned.
 \STATE let libdir=the value of the variable named by libvar
 \ENDIF
 \ENDIF
-\STATE print the value of libdir
+\RETURN the value of libdir
 \end{algorithmic}
 \end{algorithm}
 



[gentoo-commits] proj/pms:master commit in: /

2023-04-14 Thread Ulrich Müller
commit: f95225246aff169f61a62fbe930daf87f220b741
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Aug 23 17:46:53 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Apr 14 15:54:07 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f9522524

EAPI feature table: Don't use a landscape table

Drop EAPIs 0 to 4 from the table, as well as items that would have
identical entries for all listed EAPIs.

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-differences.tex | 314 +--
 pms.cls  |   4 +-
 2 files changed, 81 insertions(+), 237 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 225c2b6..31d5537 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -1,39 +1,24 @@
 \chapter{Feature Availability by EAPI}
 
 \note{This chapter is informative and for convenience only. Refer to the main 
text for specifics.
-For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a 
single column in the table
-below; entries marked with an asterisk differ between these EAPIs. See the 
2012-09-20 edition
-of this document for a complete table of previous EAPIs.}
-% 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5
+For lack of space, EAPIs 0 to~4 have been omitted from the table below, as 
well as items that would
+have identical entries for all listed EAPIs.}
 
 \ChangeWhenAddingAnEAPI{8}
-\begin{landscape}
-\begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}}
+\begin{longtable}{@{}ll@{}} % @{} to avoid overfull box
 \caption{Features in EAPIs}\\
 \toprule
 \multicolumn{1}{c}{\textbf{Feature}} &
-\multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
-\multicolumn{1}{c}{} &
-\multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3, 4} &
-\multicolumn{1}{c}{5} &
-\multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} &
-\multicolumn{1}{c}{8} \\
+\multicolumn{1}{c}{\textbf{Ref.}} &
+\multicolumn{4}{c}{\textbf{EAPIs}} \\
+& & 5 & 6 & 7 & 8 \\
 \midrule
 \endfirsthead
 \midrule
 \multicolumn{1}{c}{\textbf{Feature}} &
-\multicolumn{1}{c}{\textbf{Reference}} &
-\multicolumn{5}{c}{\textbf{EAPIs}} \\
-\multicolumn{1}{c}{} &
-\multicolumn{1}{c}{} &
-\multicolumn{1}{c}{0, 1, 2, 3, 4} &
-\multicolumn{1}{c}{5} &
-\multicolumn{1}{c}{6} &
-\multicolumn{1}{c}{7} &
-\multicolumn{1}{c}{8} \\
+\multicolumn{1}{c}{\textbf{Ref.}} &
+\multicolumn{4}{c}{\textbf{EAPIs}} \\
+& & 5 & 6 & 7 & 8 \\
 \midrule
 \endhead
 \midrule
@@ -42,334 +27,193 @@ of this document for a complete table of previous EAPIs.}
 \endlastfoot
 
 \t{package.mask} directory & \compactfeatureref{package-mask-dir} &
-No & No & No & Yes & Yes \\
+No & No & Yes & Yes \\
 
-Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} &
-No & No & No & No & Yes \\
+Less strict \t{updates} syntax & \compactfeatureref{updates-filenames} &
+No & No & No & Yes \\
 
 Profile files as directories & \compactfeatureref{profile-file-dirs} &
-No & No & No & Yes & Yes \\
+No & No & Yes & Yes \\
 
 \t{package.provided} & \compactfeatureref{package-provided} &
-Optional & Optional & Optional & No & No \\
-
-Stable use masking/forcing & \compactfeatureref{stablemask} &
-No & Yes & Yes & Yes & Yes \\
+Optional & Optional & No & No \\
 
 Bash version & \compactfeatureref{bash-version} &
-3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\
+3.2 & 4.2 & 4.2 & 5.0 \\
 
 \t{failglob} in global scope & \compactfeatureref{failglob} &
-No & No & Yes & Yes & Yes \\
-
-\t{IUSE} defaults & \compactfeatureref{iuse-defaults} &
-* & Yes & Yes & Yes & Yes \\
-
-\t{REQUIRED_USE} & \compactfeatureref{required-use} &
-* & Yes & Yes & Yes & Yes \\
-
-\t{PROPERTIES} & \compactfeatureref{properties} &
-* & Yes & Yes & Yes & Yes \\
-
-\t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} &
-* & Yes & Yes & Yes & Yes \\
+No & Yes & Yes & Yes \\
 
 Selective URI restrictions & \compactfeatureref{uri-restrict} &
-No & No & No & No & Yes \\
-
-\t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} &
-* & No & No & No & No \\
-
-\t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
-* & Yes & Yes & Yes & Yes \\
+No & No & No & Yes \\
 
 \t{BDEPEND} & \compactfeatureref{bdepend} &
-No & No & No & Yes & Yes \\
+No & No & Yes & Yes \\
 
 \t{IDEPEND} & \compactfeatureref{idepend} &
-No & No & No & No & Yes \\
-
-\t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
-No & Yes & Yes & Yes & Yes \\
+No & No & No & Yes \\
 
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
 \compactfeatureref{empty-dep-groups} &
-Yes & Yes & Yes & No & No \\
-
-Slot dependencies & \compactfeatureref{slot-deps} &
-* & Named and Operator & Named and Operator & Named and Operator & Named 
and Operator \\
-
-Sub-slots & \compactfeatureref{sub-slot} &
-No & Yes & Yes & Yes & Yes \\
-
-Use dependencies & 

[gentoo-commits] proj/pms:master commit in: /

2023-04-14 Thread Ulrich Müller
commit: 97a6391f49d9a9ba297da349c021fb00c3067762
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Feb 21 18:30:11 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Apr 14 15:53:25 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=97a6391f

profiles.tex: The parent file can contain comments

Closes: https://bugs.gentoo.org/470094
Signed-off-by: Ulrich Müller  gentoo.org>

 profiles.tex | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/profiles.tex b/profiles.tex
index 30da81b..856643b 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -25,7 +25,8 @@ first, left to right, with duplicate parent paths being 
sourced for every time t
 It is illegal for a profile's parent tree to contain cycles. Package manager 
behaviour upon
 encountering a cycle is undefined.
 
-This file must not contain comments, blank lines or make use of line 
continuations.
+This file must not make use of line continuations. Blank lines and those 
beginning with a \t{\#}
+are discarded.
 
 \subsection{The eapi file}
 \label{sec:profile-eapi}



[gentoo-commits] proj/pms:master commit in: /

2023-04-10 Thread Ulrich Müller
commit: e4053b8d27cda1749301cb2a13a4269b301681d2
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr  9 19:46:15 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Apr 10 06:31:51 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e4053b8d

Appendix: Document retroactive econf change

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/appendices.tex b/appendices.tex
index db1dc64..7a2c70b 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -124,6 +124,12 @@ The test mentioned above was effective in EAPI~8. It was 
updated in November 202
 \t{-{}-enable-static} and \t{-{}-enable-shared}, and in addition checks for a 
proper end of these
 option strings.
 
+\subsection{econf matches configure -{}-help output better}
+The simple string matching used for \t{configure -{}-help} output caused false 
positives for options
+like \t{-{}-with-sysroot}. It was effective in EAPIs 4, 5, 6, 7 and 8, and was 
updated in April 2023
+to check for a proper end of string for all option names beginning with 
\t{with-}, \t{disable-} or
+\t{enable-}.
+
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:



[gentoo-commits] proj/pms:master commit in: /

2023-04-10 Thread Ulrich Müller
commit: 0e311ca4ac75be6ebea2a0b3c1b46f4daac75190
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb 26 17:46:29 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Feb 27 11:02:43 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0e311ca4

pkg-mgr-commands.tex: econf matches configure --help output better

Following the previous change for --disable-static (commit e0aa80c),
check for proper end of string for all option names beginning with
"with", "disable" or "enable". This will mainly affect --with-sysroot,
where false positives have been observed.

Bug: https://bugs.gentoo.org/815169
Suggested-by: David Seifert  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 95caa0b..4fac077 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -343,10 +343,13 @@ commands once the current phase function has returned.
 occurs in the output of \t{configure -{}-help}.
 \item \t{-{}-disable-static}, if the EAPI is listed in 
table~\ref{tab:econf-options-table}
 as using it. This option will only be passed if both strings 
\t{-{}-enable-static} and
-\t{-{}-enable-shared} occur in the output of \t{configure -{}-help}, 
and if neither of them
-is immediately followed by any of the characters \t{[A-Za-z0-9+_.-]}.
+\t{-{}-enable-shared} occur in the output of \t{configure -{}-help}.
 \end{itemize}
 
+For the option names beginning with \t{with-}, \t{disable-} or 
\t{enable-}, a string in
+\t{configure -{}-help} output matches only if it is not immediately 
followed by any of the
+characters \t{[A-Za-z0-9+_.-]}.
+
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{Extra \t{econf} arguments for EAPIs}
 \label{tab:econf-options-table}



[gentoo-commits] proj/pms:master commit in: /

2023-02-01 Thread Ulrich Müller
commit: eeddb7ad0b36822be7d3298caefa9475bc9dc466
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Feb  1 18:11:56 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Feb  1 18:11:56 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=eeddb7ad

ebuild-env-vars.tex: Fix indentation of list

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 004a7a2..7f430e7 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -117,13 +117,13 @@ inconsistent variable.
 \featurelabel{eclassdir} The full path to the master repository's eclass 
directory. Only for
 EAPIs listed in table~\ref{tab:removed-env-vars-table} as supporting 
\t{ECLASSDIR}. \\
 \t{ROOT} &
-   \t{pkg_*} &
-   No &
-   The absolute path to the root directory into which the package is to be 
merged.  Phases which run
-   with full filesystem access must not touch any files outside of the 
directory given in
-   \t{ROOT}\@. Also of note is that in a cross-compiling environment, binaries 
inside of \t{ROOT}
-   will not be executable on the build machine, so ebuilds must not call them. 
The presence of
-   a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}. \\
+\t{pkg_*} &
+No &
+The absolute path to the root directory into which the package is to be 
merged. Phases which
+run with full filesystem access must not touch any files outside of the 
directory given in
+\t{ROOT}\@. Also of note is that in a cross-compiling environment, 
binaries inside of \t{ROOT}
+will not be executable on the build machine, so ebuilds must not call 
them. The presence of
+a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}. \\
 \t{EROOT} &
 \t{pkg_*} &
 No &



[gentoo-commits] proj/pms:master commit in: /

2023-02-01 Thread Ulrich Müller
commit: c5a07aa426d0536f6ff9387af471105ebb0ba96e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Feb  1 18:12:48 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Feb  1 18:12:48 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c5a07aa4

Reference sections by "section 11.2" rather than "11.2"

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex| 8 
 ebuild-environment.tex | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 7f430e7..b8deb04 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -6,7 +6,7 @@ meaningful in all phases; variables that are not meaningful in 
a given phase may
 any value. Ebuilds must not attempt to modify any of these variables, unless 
otherwise specified.
 
 Because of their special meanings, these variables may not be preserved 
consistently across all
-phases as would normally happen due to environment saving 
(see~\ref{sec:ebuild-env-state}).
+phases as would normally happen due to environment saving (see 
section~\ref{sec:ebuild-env-state}).
 For example, \t{EBUILD_PHASE} is different for every phase, and \t{ROOT} may 
have changed between
 the various different \t{pkg_*} phases. Ebuilds must recalculate any variable 
they derive from an
 inconsistent variable.
@@ -40,7 +40,7 @@ inconsistent variable.
 \endlastfoot
 \t{P} &
 All &
-No\footnote{May change if a package has been updated 
(see~\ref{sec:updates-dir}).} &
+No\footnote{May change if a package has been updated (see 
section~\ref{sec:updates-dir}).} &
 Package name and version, without the revision part. For example, 
\t{vim-7.0.174}. \\
 \t{PF} &
 All &
@@ -175,8 +175,8 @@ inconsistent variable.
 calling environment, \t{EPREFIX} defaults to the built-in offset-prefix 
that was set during
 installation of the package manager. When a different \t{EPREFIX} value 
than the built-in value
 is set in the calling environment, a cross-prefix build is performed where 
using the existing
-utilities, a package is built for the given \t{EPREFIX}, akin to 
\t{ROOT}\@.
-See also~\ref{sec:offset-vars}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
+utilities, a package is built for the given \t{EPREFIX}, akin to 
\t{ROOT}\@. See also
+section~\ref{sec:offset-vars}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
 as supporting \t{EPREFIX}. \\
 \t{D} &
 \t{src_*} &

diff --git a/ebuild-environment.tex b/ebuild-environment.tex
index b9f3622..8093f1e 100644
--- a/ebuild-environment.tex
+++ b/ebuild-environment.tex
@@ -16,9 +16,9 @@ Variables that were exported must remain exported in later 
functions; variables
 visibility may retain default visibility or be exported. Variables with 
special meanings to the
 package manager are excluded from this rule.
 
-Global variables must only contain invariant values 
(see~\ref{sec:metadata-invariance}). If a global
-variable's value is invariant, it may have the value that would be generated 
at any given point
-in the build sequence.
+Global variables must only contain invariant values (see 
section~\ref{sec:metadata-invariance}).
+If a global variable's value is invariant, it may have the value that would be 
generated at any
+given point in the build sequence.
 
 This is demonstrated by code listing~\ref{lst:env-saving}.
 



[gentoo-commits] proj/pms:master commit in: /

2023-01-31 Thread Ulrich Müller
commit: 523f2f8a79516cae55607d16335babdc0b67e075
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Jan 29 10:49:27 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jan 29 10:49:27 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=523f2f8a

names.tex: Reorder subsections

Signed-off-by: Ulrich Müller  gentoo.org>

 names.tex | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/names.tex b/names.tex
index 76fa72d..ed6d623 100644
--- a/names.tex
+++ b/names.tex
@@ -18,11 +18,6 @@ syntax described in section~\ref{sec:version-spec}.
 \note{A package name does not include the category. The term \i{qualified 
package name} is used
 where a \t{category/package} pair is meant.}
 
-\subsection{Eclass names}
-\label{sec:eclass-names}
-An eclass name may contain any of the characters [\t{A-Za-z0-9_.-}]. It must 
begin with a letter or
-an underscore. In addition, an eclass cannot be named \t{default}.
-
 \subsection{Slot names}
 \label{sec:slot-names}
 A slot name may contain any of the characters [\t{A-Za-z0-9+_.-}]. It must not 
begin with a
@@ -40,6 +35,11 @@ described in section~\ref{sec:use-iuse-handling}.
 A repository name may contain any of the characters [\t{A-Za-z0-9_-}]. It must 
not begin with a
 hyphen. In addition, every repository name must also be a valid package name.
 
+\subsection{Eclass names}
+\label{sec:eclass-names}
+An eclass name may contain any of the characters [\t{A-Za-z0-9_.-}]. It must 
begin with a letter or
+an underscore. In addition, an eclass cannot be named \t{default}.
+
 \subsection{License names}
 \label{sec:license-names}
 A license name may contain any of the characters [\t{A-Za-z0-9+_.-}]. It must 
not begin with a



[gentoo-commits] proj/pms:master commit in: /

2023-01-19 Thread Ulrich Müller
commit: 5e9afb6d818201028acbe922c6d86e9bf27dd860
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan 14 09:28:01 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Jan 18 21:12:28 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=5e9afb6d

Distinguish between "phase" and "phase function"

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-functions.tex | 6 +++---
 eclasses.tex | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 7d372fa..25164d4 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -477,9 +477,9 @@ source files from their respective locations, with notes 
concerning licensing if
 
 \featurelabel{default-phase-funcs} In EAPIs listed in
 table~\ref{tab:default-phase-function-table} as supporting \t{default_} phase 
functions, a function
-named \t{default_}(phase) that behaves as the default implementation for that 
EAPI shall be defined
-when executing any ebuild phase listed in the table. Ebuilds must not call 
these functions except
-when in the phase in question.
+named \t{default_}) that behaves as the default implementation 
for that EAPI shall
+be defined when executing any ebuild phase function listed in the table. 
Ebuilds must not call
+these functions except when in the phase in question.
 
 \ChangeWhenAddingAnEAPI{8}
 \begin{centertable}{EAPIs supporting \t{default_} phase functions}

diff --git a/eclasses.tex b/eclasses.tex
index 0b9b5d4..a4400e1 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -87,7 +87,7 @@ should the author wish to override it he can access the 
function in \t{foo.eclas
 \t{foo_src_compile}.
 
 \t{EXPORT_FUNCTIONS} must only be used on ebuild phase functions. The function 
that is aliased
-must be named \t{eclassname_phasefunctionname}, where \t{eclassname} is the 
name of the eclass.
+must be named \t{_}, where \t{} is the name of 
the eclass.
 
 If \t{EXPORT_FUNCTIONS} is called multiple times for the same phase function, 
the last call takes
 precedence. Eclasses may not rely upon any particular behaviour if they 
inherit another eclass



[gentoo-commits] proj/pms:master commit in: /

2023-01-19 Thread Ulrich Müller
commit: 39d51402f2eaa0ca06cb52ca3f5e1562a3496dbd
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Jan 18 21:11:32 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Jan 18 21:11:32 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=39d51402

Whitespace

Signed-off-by: Ulrich Müller  gentoo.org>

 dependencies.tex | 4 ++--
 ebuild-env-vars.tex  | 8 
 ebuild-functions.tex | 5 +++--
 eclasses.tex | 4 ++--
 introduction.tex | 6 +++---
 merge.tex| 4 ++--
 6 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 0ff1c7e..6c09714 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -240,8 +240,8 @@ error on non-compliant input.
 
 In EAPIs shown in table~\ref{tab:slot-deps-table} as supporting \t{SLOT} 
dependencies, either of the
 above formats may additionally be suffixed by a \t{:slot} restriction, as 
described in
-section~\ref{sec:slot-dep}. A package manager must warn or error if slot 
dependencies are used with an
-EAPI not supporting \t{SLOT} dependencies.
+section~\ref{sec:slot-dep}. A package manager must warn or error if slot 
dependencies are used with
+an EAPI not supporting \t{SLOT} dependencies.
 
 \featurelabel{use-deps} In EAPIs shown in table~\ref{tab:use-deps-table} as 
supporting 2-style
 or 4-style \t{USE} dependencies, a specification may additionally be suffixed 
by at most one

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index db693ab..004a7a2 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -6,10 +6,10 @@ meaningful in all phases; variables that are not meaningful 
in a given phase may
 any value. Ebuilds must not attempt to modify any of these variables, unless 
otherwise specified.
 
 Because of their special meanings, these variables may not be preserved 
consistently across all
-phases as would normally happen due to environment saving 
(see~\ref{sec:ebuild-env-state}). For example,
-\t{EBUILD_PHASE} is different for every phase, and \t{ROOT} may have changed 
between the various
-different \t{pkg_*} phases. Ebuilds must recalculate any variable they derive 
from an inconsistent
-variable.
+phases as would normally happen due to environment saving 
(see~\ref{sec:ebuild-env-state}).
+For example, \t{EBUILD_PHASE} is different for every phase, and \t{ROOT} may 
have changed between
+the various different \t{pkg_*} phases. Ebuilds must recalculate any variable 
they derive from an
+inconsistent variable.
 
 \begin{landscape}
 \reversemarginpar

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 0c745c3..7d372fa 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -434,8 +434,9 @@ the \t{ROOT} environment variable.
 
 \subsection{pkg_config}
 
-The \t{pkg_config} function performs any custom steps required to configure a 
package after it has been
-fully installed. It is the only ebuild function which may be interactive and 
prompt for user input.
+The \t{pkg_config} function performs any custom steps required to configure a 
package after it has
+been fully installed. It is the only ebuild function which may be interactive 
and prompt for user
+input.
 
 \t{pkg_config} must be run with full access to all files and directories 
inside of \t{ROOT}.
 

diff --git a/eclasses.tex b/eclasses.tex
index e23dcd8..01692bc 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -8,8 +8,8 @@ using them. The interpreter is therefore the same, and the same 
requirements for
 hold.
 
 Eclasses must be located in the \t{eclass} directory in the top level of the 
repository---see
-section~\ref{sec:eclass-dir}. Each eclass is a single file named 
\t{.eclass}, where \t{} is
-the name of this eclass, used by \t{inherit} and \t{EXPORT_FUNCTIONS} among 
other places.
+section~\ref{sec:eclass-dir}. Each eclass is a single file named 
\t{.eclass}, where \t{}
+is the name of this eclass, used by \t{inherit} and \t{EXPORT_FUNCTIONS} among 
other places.
 
 \section{The inherit Command}
 \label{sec:inherit}

diff --git a/introduction.tex b/introduction.tex
index 57fb51a..86149b2 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -13,9 +13,9 @@ This document does not specify any user or package manager 
configuration informa
 
 \section{Rationale}
 
-At present the only definition of what an ebuild can assume about its 
environment,
-and the only definition of what is valid in an ebuild, is the source code of 
the latest Portage release
-and a general consensus about which features are too new to assume 
availability. This has several
+At present the only definition of what an ebuild can assume about its 
environment, and the only
+definition of what is valid in an ebuild, is the source code of the latest 
Portage release and
+a general consensus about which features are too new to assume availability. 
This has several
 drawbacks: not only is it impossible to change any aspect of Portage behaviour 
without verifying
 that nothing in 

[gentoo-commits] proj/pms:master commit in: /

2023-01-19 Thread Ulrich Müller
commit: 9dabbe3b66b56d41cc618a096e35310f483e961b
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan 14 09:26:48 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Jan 18 21:12:28 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=9dabbe3b

names.tex: Specify eclass names

Eclasses may export phase functions prefixed with their name, so
ideally we would follow the syntax of Bash (and POSIX) identifiers:

| A word consisting solely of underscores, digits, and alphabetics
| from the portable character set. The first character of a name is
| not a digit.

Because many existing eclasses have a dot or a hyphen in their name,
we follow usage in the Gentoo repository instead. (The only historical
exception to the above was 64-bit.eclass, not used since 2006 and
removed in 2009.)

An eclass must not be named "default", otherwise names of exported
functions would collide with default_.

Signed-off-by: Ulrich Müller  gentoo.org>

 eclasses.tex | 1 +
 names.tex| 5 +
 2 files changed, 6 insertions(+)

diff --git a/eclasses.tex b/eclasses.tex
index 01692bc..0b9b5d4 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -10,6 +10,7 @@ hold.
 Eclasses must be located in the \t{eclass} directory in the top level of the 
repository---see
 section~\ref{sec:eclass-dir}. Each eclass is a single file named 
\t{.eclass}, where \t{}
 is the name of this eclass, used by \t{inherit} and \t{EXPORT_FUNCTIONS} among 
other places.
+\t{} must be a valid eclass name, as per section~\ref{sec:eclass-names}.
 
 \section{The inherit Command}
 \label{sec:inherit}

diff --git a/names.tex b/names.tex
index 2994719..76fa72d 100644
--- a/names.tex
+++ b/names.tex
@@ -18,6 +18,11 @@ syntax described in section~\ref{sec:version-spec}.
 \note{A package name does not include the category. The term \i{qualified 
package name} is used
 where a \t{category/package} pair is meant.}
 
+\subsection{Eclass names}
+\label{sec:eclass-names}
+An eclass name may contain any of the characters [\t{A-Za-z0-9_.-}]. It must 
begin with a letter or
+an underscore. In addition, an eclass cannot be named \t{default}.
+
 \subsection{Slot names}
 \label{sec:slot-names}
 A slot name may contain any of the characters [\t{A-Za-z0-9+_.-}]. It must not 
begin with a



[gentoo-commits] proj/pms:master commit in: /

2023-01-09 Thread Ulrich Müller
commit: ede65b5d136640575479c9c9a3162ee4d2be953e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Jan  3 20:11:28 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Jan  9 18:13:45 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ede65b5d

ebuild-env-vars.tex: D is available as a variable in all src_* phases

The D variable has been described as a "phase-specific variable" since
the spec's early draft stage (SVN r19). However, Portage would always
define the variable in all src_* phases, with the restriction that the
directory would exist only in src_install().

In reality, not all ebuilds comply with the spec. For example, Perl
eclasses use D in src_configure(), i.e. they rely on Portage behaviour.

Therefore, lift this unnecessary and somewhat artificial restriction
and make the variable (but not the directory) available outside the
install phase.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 15 +--
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index a55c366..db693ab 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -179,24 +179,27 @@ variable.
 See also~\ref{sec:offset-vars}. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table}
 as supporting \t{EPREFIX}. \\
 \t{D} &
-\t{src_install} &
-No &
+\t{src_*} &
+Yes &
 Contains the full path to the image directory into which the package 
should be installed.
+Ebuilds must not attempt to access the directory in \t{src_*} phases other 
than \t{src_install}.
 The presence of a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}.
 \\
 \t{D} (continued) &
 \t{pkg_preinst}, \t{pkg_postinst} &
-Yes &
+Yes\footnote{Consistent across \t{pkg_preinst} and \t{pkg_postinst}, but 
may not necessarily
+have the same value that it had in the \t{src_*} phases.} &
 Contains the full path to the image that is about to be or has just been 
merged.
 The presence of a trailing slash is EAPI dependent as listed in 
table~\ref{tab:trailing-slash}.
 \\
 \t{ED} &
-\t{src_install}, \t{pkg_preinst}, \t{pkg_postinst} &
+\t{src_*}, \t{pkg_preinst}, \t{pkg_postinst} &
 See \t{D} &
 Contains the concatenation of the paths in the \t{D} and \t{EPREFIX} 
variables,
 for convenience. See also the \t{EPREFIX} variable. Only for EAPIs listed 
in
-table~\ref{tab:offset-env-vars-table} as supporting \t{ED}\@. The presence 
of a trailing slash
-is EAPI dependent as listed in table~\ref{tab:trailing-slash}. \\
+table~\ref{tab:offset-env-vars-table} as supporting \t{ED}\@. Ebuilds must 
not attempt to
+access the directory in \t{src_*} phases other than \t{src_install}. The 
presence of a trailing
+slash is EAPI dependent as listed in table~\ref{tab:trailing-slash}. \\
 \t{DESTTREE} &
 \t{src_install} &
 No &



[gentoo-commits] proj/pms:master commit in: /

2023-01-09 Thread Ulrich Müller
commit: 7e3dc6f383121e6215a04d20c3317e1592a869a0
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Jan  9 18:15:05 2023 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Jan  9 18:15:05 2023 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7e3dc6f3

pms.tex: Update copyright years

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index 1f9ecdb..f435f51 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
 \small
-\textcopyright{} 2007--2022 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
+\textcopyright{} 2007--2023 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
 by their respective authors, and may have been changed substantially 
before inclusion.
 
 This work is released under the Creative Commons Attribution-ShareAlike 
4.0 International



[gentoo-commits] proj/pms:master commit in: /

2023-01-01 Thread Ulrich Müller
commit: ab2bce21ac83e6ad6cc649ef09cd4bae334e4417
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Dec 27 21:35:14 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Dec 27 21:44:34 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ab2bce21

Makefile: Use guessable names for section references in HTML output

This replaces the "x1*" fragment identifiers by more predictable ones
with a "chapter", "section", or "appendix" prefix. This is possible
because our section numbers are unique.

Signed-off-by: Ulrich Müller  gentoo.org>

 Makefile | 5 +
 1 file changed, 5 insertions(+)

diff --git a/Makefile b/Makefile
index 89fd7a2..c882534 100644
--- a/Makefile
+++ b/Makefile
@@ -54,6 +54,11 @@ pms.html: $(LATEXFILES) pms.bbl $(COMMITINFO)
@# remove redundant span elements
LC_ALL=C sed -Ei ':x;/]*)?$$/{N;bx;};'\
':y;s,(]*>)([^<]*)\1,\1\2,;ty' $@
+   @# guessable names for sections
+   LC_ALL=C sed -Ei \
+ -e 's/("#?)x1-[0-9]*00+([1-9][0-9]?")/\1chapter-\2/g' \
+ -e 's/("#?)x1-[0-9]*00+([1-9][0-9]?(\.[0-9]+)+")/\1section-\2/g' \
+ -e 's/("#?)x1-[0-9]*00+([A-Z](\.[0-9]+)*")/\1appendix-\2/g' $@
 
 pms.bbl: pms.bib $(LATEXFILES) $(COMMITINFO)
$(aux-clean)



[gentoo-commits] proj/pms:master commit in: /

2023-01-01 Thread Ulrich Müller
commit: 1936b33467289e09f6130c3eba424cd2cdd962d0
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Dec 27 21:31:30 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Dec 27 21:31:30 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1936b334

Revert "Appendix: Include EAPI differences sections in table of contents."

This reverts commit fbcb58732d0a75138c0c7185f914d10f448ed472.

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-differences.tex | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index a5ba486..225c2b6 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -375,11 +375,11 @@ File mtimes preserved & 
\compactfeatureref{mtime-preserve} &
 
 \note{This chapter is informative and for convenience only. Refer to the main 
text for specifics.}
 
-\section{EAPI 0}
+\section*{EAPI 0}
 
 EAPI 0 is the base EAPI.
 
-\section{EAPI 1}
+\section*{EAPI 1}
 
 EAPI 1 is EAPI 0 with the following changes:
 
@@ -389,7 +389,7 @@ EAPI 1 is EAPI 0 with the following changes:
 \item Different \t{src_compile} implementation, \featureref{src-compile}.
 \end{compactitem}
 
-\section{EAPI 2}
+\section*{EAPI 2}
 
 EAPI 2 is EAPI 1 with the following changes:
 
@@ -406,7 +406,7 @@ EAPI 2 is EAPI 1 with the following changes:
 \item \t{default} function, \featureref{default-func}.
 \end{compactitem}
 
-\section{EAPI 3}
+\section*{EAPI 3}
 
 EAPI 3 is EAPI 2 with the following changes:
 \begin{compactitem}
@@ -416,7 +416,7 @@ EAPI 3 is EAPI 2 with the following changes:
 \item File modification times are preserved, \featureref{mtime-preserve}.
 \end{compactitem}
 
-\section{EAPI 4}
+\section*{EAPI 4}
 
 EAPI 4 is EAPI 3 with the following changes:
 
@@ -445,7 +445,7 @@ EAPI 4 is EAPI 3 with the following changes:
 \item \t{use_with} and \t{use_enable} support empty third argument, 
\featureref{use-with}.
 \end{compactitem}
 
-\section{EAPI 5}
+\section*{EAPI 5}
 
 EAPI 5 is EAPI 4 with the following changes:
 
@@ -466,7 +466,7 @@ EAPI 5 is EAPI 4 with the following changes:
 \item \t{usex} support, \featureref{usex}.
 \end{compactitem}
 
-\section{EAPI 6}
+\section*{EAPI 6}
 
 EAPI 6 is EAPI 5 with the following changes:
 
@@ -489,7 +489,7 @@ EAPI 6 is EAPI 5 with the following changes:
 \item \t{get_libdir} support, \featureref{get-libdir}.
 \end{compactitem}
 
-\section{EAPI 7}
+\section*{EAPI 7}
 
 EAPI 7 is EAPI 6 with the following changes:
 
@@ -525,7 +525,7 @@ EAPI 7 is EAPI 6 with the following changes:
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
 \end{compactitem}
 
-\section{EAPI 8}
+\section*{EAPI 8}
 
 EAPI 8 is EAPI 7 with the following changes:
 



[gentoo-commits] proj/pms:master commit in: /

2023-01-01 Thread Ulrich Müller
commit: c26570a2306bf4ffe2963e3acdb82db19238f129
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Dec 27 21:31:46 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Dec 27 21:31:46 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c26570a2

Revert "Appendix: Do not number sections."

This reverts commit 1da137e49aa5a52bb13500192d394b6dd53210da.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 1 -
 1 file changed, 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index 07113a9..1f9ecdb 100644
--- a/pms.tex
+++ b/pms.tex
@@ -66,7 +66,6 @@
 \bibliography{pms}
 
 \appendix
-\setcounter{secnumdepth}{0}
 \include{appendices}
 \include{eapi-differences}
 \include{desk-reference}



[gentoo-commits] proj/pms:master commit in: /

2022-12-27 Thread Ulrich Müller
commit: b3718b21370c2991ff6b2ed76ac7a53af8477d57
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Dec 27 21:27:57 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Dec 27 21:27:57 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b3718b21

Use "app:" instead of "ch:" for labels in the appendix

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex | 2 +-
 desk-reference.tex | 4 ++--
 tree-layout.tex| 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index a093936..db1dc64 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -1,5 +1,5 @@
 \chapter{metadata.xml}
-\label{ch:metadata-xml}
+\label{app:metadata-xml}
 
 The \t{metadata.xml} file is used to contain extra package- or category-level 
information beyond
 what is stored in ebuild metadata. Its exact format is strictly beyond the 
scope of this document,

diff --git a/desk-reference.tex b/desk-reference.tex
index a096032..0bcda38 100644
--- a/desk-reference.tex
+++ b/desk-reference.tex
@@ -1,12 +1,12 @@
 \ifthenelse{\boolean{TEX4HT-HACKS}}{%
 \chapter{Desk Reference}
-\label{ch:cheatsheet}
+\label{app:cheatsheet}
 \href{eapi-cheatsheet.pdf}{EAPI Cheat Sheet}
 }{%
 % Make sure that the cheat sheet starts on an odd page
 \ifthenelse{\isodd{\thepage}}{}{\null\newpage}%
 \includepdf[pages=-,landscape,turn=false,lastpage=2,%
-addtotoc={1,chapter,0,Desk Reference,ch:cheatsheet}]{eapi-cheatsheet}
+addtotoc={1,chapter,0,Desk Reference,app:cheatsheet}]{eapi-cheatsheet}
 }
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :

diff --git a/tree-layout.tex b/tree-layout.tex
index aa04d3d..da01ff8 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -29,7 +29,7 @@ Each category provided by the repository (see also: the 
\t{profiles/categories}
 section~\ref{sec:profiles-dir}) shall be contained in one directory, whose 
name shall be that of
 the category. Each category directory shall contain:
 \begin{compactitem}
-\item A \t{metadata.xml} file, as described in 
appendix~\ref{ch:metadata-xml}\@. Optional.
+\item A \t{metadata.xml} file, as described in 
appendix~\ref{app:metadata-xml}\@. Optional.
 \item Zero or more package directories, one for each package in the category, 
as described in
 section~\ref{sec:package-dirs}. The name of the package directory shall be 
the corresponding
 package name.
@@ -51,7 +51,7 @@ A package directory contains the following:
 \nobreakpar
 \begin{compactitem}
 \item Zero or more ebuilds. These are as described in 
chapter~\ref{ch:ebuild-format} and others.
-\item A \t{metadata.xml} file, as described in 
appendix~\ref{ch:metadata-xml}\@. Optional only for
+\item A \t{metadata.xml} file, as described in 
appendix~\ref{app:metadata-xml}\@. Optional only for
 legacy support.
 \item A \t{ChangeLog}, in a format determined by the provider of the 
repository. Optional.
 \item A \t{Manifest} file, whose format is described in~\cite{Glep74}. Can be 
omitted if the file



[gentoo-commits] proj/pms:master commit in: /

2022-12-17 Thread Ulrich Müller
commit: 08cdab4ab811b7cc3ceee356727f558eaef17b27
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Dec  9 19:29:04 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Dec 11 19:26:05 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=08cdab4a

appendices.tex: Mention EAPI for econf --disable-static

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index ed90225..a093936 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -118,9 +118,11 @@ They were dropped from the specification in October 2017.
 The \t{-{}-disable-static} option in \t{econf} (see 
section~\ref{sec:build-commands}) was intended
 to disable only static Libtool archive building. The original check for either
 \t{-{}-disable-static} or \t{-{}-enable-static} occuring in \t{configure 
-{}-help} output produced
-false positives. The specification was therefore updated in November 2022; it 
now requires both
-\t{-{}-enable-static} and \t{-{}-enable-shared}, and in addition checks for a 
proper end of the
-option string.
+false positives.
+
+The test mentioned above was effective in EAPI~8. It was updated in November 
2022 to require both
+\t{-{}-enable-static} and \t{-{}-enable-shared}, and in addition checks for a 
proper end of these
+option strings.
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 



[gentoo-commits] proj/pms:master commit in: /

2022-12-09 Thread Ulrich Müller
commit: dc358cbe6c57dca54b82d2c9bc8de2e1cddd975c
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Dec  9 19:07:07 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Dec  9 19:07:07 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=dc358cbe

Don't use teletype for EAPIs

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex   | 12 ++--
 dependencies.tex |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index d87d1be..ed90225 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -67,16 +67,16 @@ In some exceptional cases, changes to the specification 
have been approved by th
 without introducing a new EAPI\@. This section lists such retroactive changes.
 
 \subsection{Bash version}
-EAPIs \t{0}, \t{1} and \t{2} originally specified GNU Bash version 3.0. This 
was retroactively
-updated to version 3.2 (see table~\ref{tab:bash-version}) in November 2009.
+EAPIs 0, 1 and~2 originally specified GNU Bash version 3.0. This was 
retroactively updated to
+version 3.2 (see table~\ref{tab:bash-version}) in November 2009.
 
 \subsection{Old-style virtuals}
 Historically, virtuals were special packages rather than regular ebuilds. An 
ebuild could specify in
 the \t{PROVIDE} metadata that it supplied certain virtuals, and the package 
manager had to bear this
 in mind when handling dependencies.
 
-Old-style virtuals were supported by EAPIs \t{0}, \t{1}, \t{2}, \t{3} and 
\t{4}. They were phased
-out via GLEP~37~\cite{Glep37} and finally removed in 2011.
+Old-style virtuals were supported by EAPIs 0, 1, 2, 3 and~4. They were phased 
out via
+GLEP~37~\cite{Glep37} and finally removed in 2011.
 
 \note{A `new-style virtual' is a normal package that installs no files and 
uses its dependency
 requirements to pull in a `provider'. This does not require any special 
handling from the package
@@ -105,8 +105,8 @@ induce string prefix comparison instead of the normal 
version comparison logic.
 surprising results, e.\,g.\ \t{=dev-lang/perl-5.2*} matching 
\t{dev-lang/perl-5.22.0}. Moreover,
 implementation in package managers deviated from what was specified.
 
-String prefix matching was effective in EAPIs \t{0}, \t{1}, \t{2}, \t{3}, 
\t{4} and \t{5}. It was
-retroactively dropped in favour of the current behaviour in October 2015.
+String prefix matching was effective in EAPIs 0, 1, 2, 3, 4 and~5. It was 
retroactively dropped
+in favour of the current behaviour in October 2015.
 
 \subsection{Empty dependency groups}
 The dependency specification format (see section~\ref{sec:dependency-spec}) 
originally permitted

diff --git a/dependencies.tex b/dependencies.tex
index f14a08c..0ff1c7e 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -331,7 +331,7 @@ described in table~\ref{tab:bang-strength-table}.
 \featurelabel{slot-deps} A named slot dependency consists of a colon followed 
by a slot name. A
 specification with a named slot dependency matches only if the slot of the 
matched package is equal
 to the slot specified. If the slot of the package to match cannot be 
determined (e.\,g.\ because it
-is not a supported \t{EAPI}), the match is treated as unsuccessful.
+is not a supported EAPI, the match is treated as unsuccessful.
 
 \featurelabel{sub-slot} In EAPIs shown in table~\ref{tab:slot-deps-table} as 
supporting sub-slots,
 a slot dependency may contain an optional sub-slot part that follows the 
regular slot and is



[gentoo-commits] proj/pms:master commit in: /

2022-12-09 Thread Ulrich Müller
commit: 9264cfb906e0eae7c44596c6c339715ef6191a50
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Dec  9 19:03:30 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Dec  9 19:03:30 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=9264cfb9

appendices.tex: No line break before GLEP number

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index 69bd2ed..d87d1be 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -3,7 +3,7 @@
 
 The \t{metadata.xml} file is used to contain extra package- or category-level 
information beyond
 what is stored in ebuild metadata. Its exact format is strictly beyond the 
scope of this document,
-and is described in GLEP 68~\cite{Glep68}.
+and is described in GLEP~68~\cite{Glep68}.
 
 \chapter{Unspecified Items}
 
@@ -76,7 +76,7 @@ the \t{PROVIDE} metadata that it supplied certain virtuals, 
and the package mana
 in mind when handling dependencies.
 
 Old-style virtuals were supported by EAPIs \t{0}, \t{1}, \t{2}, \t{3} and 
\t{4}. They were phased
-out via GLEP 37~\cite{Glep37} and finally removed in 2011.
+out via GLEP~37~\cite{Glep37} and finally removed in 2011.
 
 \note{A `new-style virtual' is a normal package that installs no files and 
uses its dependency
 requirements to pull in a `provider'. This does not require any special 
handling from the package
@@ -87,7 +87,7 @@ The method to specify the EAPI of an ebuild used to be a 
shell variable assignme
 manager had to source the ebuild in order to determine the EAPI\@. Therefore 
any ebuild using
 a future EAPI would still have to be sourceable by old package managers, which 
imposed restrictions
 e.\,g.\ on updating the Bash version or on possible changes of global scope 
functions. Several
-approaches to overcome this limitation were discussed, notably GLEP 
55~\cite{Glep55}, which was
+approaches to overcome this limitation were discussed, notably 
GLEP~55~\cite{Glep55}, which was
 rejected though.
 
 The current syntax of the \t{EAPI} assignment statement (see 
section~\ref{sec:eapi}), allowing



[gentoo-commits] proj/pms:master commit in: /

2022-12-08 Thread Ulrich Müller
commit: a2bf8fdc638f79a5c8438b095cd043b18b9f7794
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Nov 25 17:58:05 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Nov 25 17:58:05 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=a2bf8fdc

glossary.tex: Drop chapter number

Signed-off-by: Ulrich Müller  gentoo.org>

 glossary.tex | 6 +++---
 introduction.tex | 2 +-
 pms.tex  | 3 ++-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/glossary.tex b/glossary.tex
index 181febc..4ed3e82 100644
--- a/glossary.tex
+++ b/glossary.tex
@@ -1,7 +1,7 @@
-\chapter{Glossary}
-\label{ch:glossary}
+\chapter*{Glossary}
+\addcontentsline{toc}{chapter}{Glossary}
 
-This chapter contains explanations of some of the terms used in this document 
whose meaning may not
+This glossary contains explanations of some of the terms used in this document 
whose meaning may not
 be immediately obvious.
 
 \begin{description}

diff --git a/introduction.tex b/introduction.tex
index b72acc3..57fb51a 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -7,7 +7,7 @@ well as certain aspects of package manager behaviour required 
to support such a
 
 This document is \emph{not} designed to be an introduction to ebuild 
development. Prior knowledge of
 ebuild creation and an understanding of how the package management system 
works is assumed; certain
-less familiar terms are explained in the Glossary in chapter~\ref{ch:glossary}.
+less familiar terms are explained in the Glossary.
 
 This document does not specify any user or package manager configuration 
information.
 

diff --git a/pms.tex b/pms.tex
index 97d6d30..07113a9 100644
--- a/pms.tex
+++ b/pms.tex
@@ -60,8 +60,9 @@
 \include{commands}
 \include{merge}
 \include{metadata-cache}
-\include{glossary}
 
+% back matter begins here
+\include{glossary}
 \bibliography{pms}
 
 \appendix



[gentoo-commits] proj/pms:master commit in: /

2022-12-08 Thread Ulrich Müller
commit: b8b81bfd9e69f3d3dcd21b00580849a7abd9d8dd
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Nov 25 20:51:11 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Nov 25 20:51:11 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b8b81bfd

pms.bib: Update GLEP references to latest Post-History date

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.bib | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pms.bib b/pms.bib
index 8b718af..014b643 100644
--- a/pms.bib
+++ b/pms.bib
@@ -25,15 +25,15 @@
 @manual{Glep68,
 author = {Michał Górny},
 title = {{GLEP} 68: Package and category metadata},
-year = 2018,
-month = Feb,
+year = 2022,
+month = Oct,
 url = {https://www.gentoo.org/glep/glep-0068.html}
 }
 
 @manual{Glep74,
 author = {Michał Górny and Robin Hugh Johnson and Ulrich Müller},
 title = {{GLEP} 74: Full-tree verification using Manifest files},
-year = 2018,
-month = Feb,
+year = 2022,
+month = Oct,
 url = {https://www.gentoo.org/glep/glep-0074.html}
 }



[gentoo-commits] proj/pms:master commit in: /

2022-11-25 Thread Ulrich Müller
commit: e0aa80cc0d28a25bfc68b4671771083e282f6ba2
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Nov 19 20:22:34 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Nov 19 20:22:34 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e0aa80cc

pkg-mgr-commands.tex: Update condition for econf --disable-static (again)

The intention is to pass --disable-static, in order to (only) disable
static libtool archive building. The current condition asks for either
of --{disable,enable}-static in configure --help output, which causes
false positives:
https://archives.gentoo.org/gentoo-portage-dev/message/efc3f424d1dffd3415da538ec25532a9

Therefore, narrow the condition to require both --enable-static and
--enable-shared. In addition, backport the check for proper end of
string from the EAPI 9 feature list, but restrict it to this option
for now.

Bug: https://bugs.gentoo.org/814368
Bug: https://bugs.gentoo.org/815169
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index d4dcffe..a3e8a41 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -341,8 +341,9 @@ commands once the current phase function has returned.
 as using it. This option will only be passed if the string 
\t{-{}-disable-silent-rules}
 occurs in the output of \t{configure -{}-help}.
 \item \t{-{}-disable-static}, if the EAPI is listed in 
table~\ref{tab:econf-options-table}
-as using it. This option will only be passed if the string 
\t{-{}-disable-static} or
-\t{-{}-enable-static} occurs in the output of \t{configure -{}-help}.
+as using it. This option will only be passed if both strings 
\t{-{}-enable-static} and
+\t{-{}-enable-shared} occur in the output of \t{configure -{}-help}, 
and if neither of them
+is immediately followed by any of the characters \t{[A-Za-z0-9+_.-]}.
 \end{itemize}
 
 \ChangeWhenAddingAnEAPI{8}



[gentoo-commits] proj/pms:master commit in: /

2022-11-25 Thread Ulrich Müller
commit: 603b5c5a6b9e94a8a9fc02982dca14fe46048594
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Nov 19 21:35:46 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Nov 19 21:35:46 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=603b5c5a

Appendix: Document retroactive change of econf --disable-static

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex   | 8 
 pkg-mgr-commands.tex | 1 +
 2 files changed, 9 insertions(+)

diff --git a/appendices.tex b/appendices.tex
index 3d2ef52..69bd2ed 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -114,6 +114,14 @@ all-of, any-of, exactly-one-of, at-most-one-of and 
use-conditional groups with z
 However, such empty groups were neither supported by all package managers nor 
used in ebuilds.
 They were dropped from the specification in October 2017.
 
+\subsection{econf -{}-disable-static option}
+The \t{-{}-disable-static} option in \t{econf} (see 
section~\ref{sec:build-commands}) was intended
+to disable only static Libtool archive building. The original check for either
+\t{-{}-disable-static} or \t{-{}-enable-static} occuring in \t{configure 
-{}-help} output produced
+false positives. The specification was therefore updated in November 2022; it 
now requires both
+\t{-{}-enable-static} and \t{-{}-enable-shared}, and in addition checks for a 
proper end of the
+option string.
+
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a3e8a41..95caa0b 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -296,6 +296,7 @@ Ebuilds must not run any of these commands once the current 
phase function has r
 \end{centertable}
 
 \subsection{Build commands}
+\label{sec:build-commands}
 These commands are used during the \t{src_configure}, \t{src_compile}, 
\t{src_test},
 and \t{src_install} phases to run the package's build commands. Ebuilds must 
not run any of these
 commands once the current phase function has returned.



[gentoo-commits] proj/pms:master commit in: /

2022-10-20 Thread Ulrich Müller
commit: 2c69291b26fea14b6a93f1bf6b4f0bfd7f74f7b9
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Sep  7 06:35:09 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Sep  7 06:35:09 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2c69291b

ebuild-format.tex: Document that umask is set to 022

Portage has been doing this since 2001.

Closes: https://bugs.gentoo.org/868669
Reported-by: Mike Frysinger  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-format.tex | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/ebuild-format.tex b/ebuild-format.tex
index 25ba28e..cf06668 100644
--- a/ebuild-format.tex
+++ b/ebuild-format.tex
@@ -7,6 +7,9 @@ table~\ref{tab:bash-version}, or any later version. If 
possible, the package man
 the shell's compatibility level to the exact version specified. It must ensure 
that any such
 compatibility settings (e.\,g.\ the \t{BASH_COMPAT} variable) are not exported 
to external programs.
 
+The file creation mask (\t{umask}) is set to \t{022} in the shell execution 
environment. It is
+\emph{not} saved between phase functions but always reset to this initial 
value.
+
 \featurelabel{failglob} For EAPIs listed such in table~\ref{tab:bash-version}, 
the \t{failglob}
 option of bash is set in the global scope of ebuilds. If set, failed pattern 
matches during
 filename expansion result in an error when the ebuild is being sourced.



[gentoo-commits] proj/pms:master commit in: /

2022-08-21 Thread Ulrich Müller
commit: b469e965174baa27f344faeb23fa0e8e0eacc914
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Aug 21 09:33:45 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Aug 21 09:33:45 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b469e965

eapi-differences.tex: Small updates to the feature table

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-differences.tex | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 900f415..a5ba486 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -111,7 +111,7 @@ Use dependencies & \compactfeatureref{use-deps} &
 \t{!!}\ blockers & \compactfeatureref{bang-strength} &
 * & Strong & Strong & Strong & Strong \\
 
-Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} 
&
+Working dir in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} &
 Any & Any & Any & Any & Empty \\
 
 \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} &
@@ -152,7 +152,10 @@ Parallel tests & \compactfeatureref{parallel-tests} &
 \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
 \t{src_compile}, \t{src_test}, \t{src_install} \\
 
-Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} &
+Accumulate \t{PROPERTIES} & \compactfeatureref{accumulate-vars} &
+No & No & No & No & Yes \\
+
+Accumulate \t{RESTRICT} & \compactfeatureref{accumulate-vars} &
 No & No & No & No & Yes \\
 
 \t{AA} & \compactfeatureref{aa} &



[gentoo-commits] proj/pms:master commit in: /

2022-05-16 Thread Ulrich Müller
commit: 260e21bf65f67ad424e990306a7a4789b6b2f1de
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed May 11 21:55:40 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat May 14 07:29:57 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=260e21bf

pkg-mgr-commands.tex: Tighten the spec for reserved names

"abort", "dyn" and "prep" are only reserved at the beginning of a name.
This appears to be their only (historical and recent) usage in Portage.

"ebuild" is allowed as substring of words like "rebuild", which is
somewhat common in names.

Bug: https://bugs.gentoo.org/843779
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 6df5f32..d4dcffe 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1316,19 +1316,25 @@ Ebuilds must not run any of these commands once the 
current phase function has r
 
 \subsection{Reserved commands and variables}
 
-Except where documented otherwise, all functions and variables that contain 
any of the following
+Except where documented otherwise, all functions and variables that begin with 
any of the following
 strings (ignoring case) are reserved for package manager use and may not be 
used or relied upon by
 ebuilds:
 
 \begin{compactitem}
-\item \t{__} (two underscores) at beginning of string
+\item \t{__} (two underscores)
 \item \t{abort}
 \item \t{dyn}
-\item \t{ebuild}
+\item \t{prep}
+\end{compactitem}
+
+The same applies to functions and variables that contain any of the following 
strings (ignoring
+case):
+\nobreakpar
+\begin{compactitem}
+\item \t{ebuild} (unless immediately preceded by another letter)
 \item \t{hook}
 \item \t{paludis}
 \item \t{portage}
-\item \t{prep}
 \end{compactitem}
 
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :



[gentoo-commits] proj/pms:master commit in: /

2022-04-12 Thread Ulrich Müller
commit: 7839a316822eae2fcb534cba697993ca8772b9f9
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Apr 12 10:56:38 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Apr 12 10:56:38 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=7839a316

pkg-mgr-commands.tex: Whitespace

Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index a964859..6df5f32 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -613,7 +613,7 @@ the current phase function has returned.
 \featurelabel{dosym-relative} In EAPIs listed in table~\ref{tab:dosym-r} 
as supporting creation
 of relative paths, when called with option \t{-r}, the first parameter 
(the link target) is
 converted from an absolute path to a path relative to the the second 
parameter (the link name).
-The  algorithm must return a result identical to the one returned by the 
function in
+The algorithm must return a result identical to the one returned by the 
function in
 listing~\ref{lst:dosym-r}, with \t{realpath} and \t{dirname} from GNU 
coreutils version~8.32.
 Specifying option \t{-r} together with a relative path as first (target) 
parameter is an error.
 



[gentoo-commits] proj/pms:master commit in: /

2022-04-07 Thread Ulrich Müller
commit: c5dca7fe3158fccb49a74054b7ed8f98e73bf243
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Mar 26 21:02:18 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Mar 26 21:02:18 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c5dca7fe

Replace "root user" by "superuser" throughout

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-vars.tex | 2 +-
 merge.tex   | 8 
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index e7aab0a..5f3f583 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -256,7 +256,7 @@ The following tokens are permitted inside \t{RESTRICT}:
 \item[strip] No stripping of debug symbols from files to be installed may be 
performed. In EAPIs
 listed in table~\ref{tab:staging-area-commands} as supporting controllable 
stripping, this
 behaviour may be altered by the \t{dostrip} command.
-\item[userpriv] The package manager may not drop root privileges when building 
the package.
+\item[userpriv] The package manager may not drop superuser privileges when 
building the package.
 \item[test] The \t{src_test} phase must not be run.
 \end{description}
 

diff --git a/merge.tex b/merge.tex
index 0e6738d..6fcfeec 100644
--- a/merge.tex
+++ b/merge.tex
@@ -25,9 +25,9 @@ The owner, group and mode (including set*id and sticky bits) 
of the directory mu
 except as follows:
 
 \begin{compactitem}
-\item Any directory owned by the user used to perform the build must become 
owned by the root user.
+\item Any directory owned by the user used to perform the build must become 
owned by the superuser.
 \item Any directory whose group is the primary group of the user used to 
perform the build must have
-its group be that of the root user.
+its group be that of the superuser.
 \end{compactitem}
 
 On SELinux systems, the SELinux context must also be preserved. Other 
directory attributes, including
@@ -53,9 +53,9 @@ The owner, group and mode (including set*id and sticky bits) 
of the file must be
 as follows:
 
 \begin{compactitem}
-\item Any file owned by the user used to perform the build must become owned 
by the root user.
+\item Any file owned by the user used to perform the build must become owned 
by the superuser.
 \item Any file whose group is the primary group of the user used to perform 
the build must have
-its group be that of the root user.
+its group be that of the superuser.
 \item The package manager may reduce read and write permissions on executable 
files that have a
 set*id bit set.
 \end{compactitem}



[gentoo-commits] proj/pms:master commit in: /

2022-04-07 Thread Ulrich Müller
commit: bcc0be554b5fc3300a0db6a3d3d7765c262aaa43
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Mar 26 10:06:01 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Mar 26 10:06:01 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=bcc0be55

pkg-mgr-commands.tex: Specify file ownership for dobin more accurately

In a non-prefix installation, files are to be owned by UID 0 / GID 0.
This is also what is implemented in Portage's dobin command.

Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 7f57539..a964859 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -460,7 +460,7 @@ the current phase function has returned.
 \item[dobin] Installs the given files into \t{DESTTREE/bin}, where 
\t{DESTTREE} defaults to
 \t{/usr}. Gives the files mode \t{0755} and transfers file ownership to 
the superuser or its
 equivalent on the system or installation at hand. In a non-offset-prefix 
installation this
-ownership is \t{root:root}, while in an offset-prefix aware installation 
this may be e.\,g.\
+ownership is \t{0:0}, while in an offset-prefix aware installation this 
may be e.\,g.\
 \t{joe:users}. Failure behaviour is EAPI dependent as per 
section~\ref{sec:failure-behaviour}.
 
 \item[doconfd] Installs the given config files into \t{/etc/conf.d/}, by 
default with file mode



[gentoo-commits] proj/pms:master commit in: /

2022-03-23 Thread Ulrich Müller
commit: 8bcf0e2f9b6234e2e752d68df0ef054fd2cc49b1
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Mar 17 19:00:47 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Mar 17 19:00:47 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8bcf0e2f

ebuild-vars.tex: Clarify which variables can be defined by an eclass

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-vars.tex | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index d07cca4..e7aab0a 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -43,8 +43,9 @@ All ebuilds must define at least the following variables:
 \section{Optional Ebuild-defined Variables}
 \label{sec:optional-vars}
 
-Ebuilds may define any of the following variables:
-\nobreakpar
+Ebuilds may define any of the following variables. Unless otherwise stated, 
any of them may be
+defined by an eclass.
+
 \begin{description}
 \item[EAPI] The EAPI\@. See below in section~\ref{sec:eapi}.
 \item[HOMEPAGE] The URI or URIs for a package's homepage, including protocols.
@@ -147,6 +148,8 @@ EAPI, the package manager must make sure that the \t{EAPI} 
value obtained by sou
 with bash is identical to the EAPI obtained by parsing. The ebuild must be 
treated as invalid if
 these values are different.
 
+Eclasses must not attempt to modify the \t{EAPI} variable.
+
 \subsection{SRC_URI}
 \label{sec:src-uri-behaviour}
 



[gentoo-commits] proj/pms:master commit in: /

2022-02-13 Thread Ulrich Müller
commit: 2be267efa07e60e3ec5d0ef55c66778ef20362ff
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb 13 16:25:14 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Feb 13 16:25:14 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2be267ef

ebuild-environment.tex: Consolidate source files

These small sections need not be in their own file. No change of
wording.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-invariancy.tex | 39 ---
 ebuild-env-state.tex  | 63 -
 ebuild-environment.tex| 79 +--
 3 files changed, 77 insertions(+), 104 deletions(-)

diff --git a/ebuild-env-invariancy.tex b/ebuild-env-invariancy.tex
deleted file mode 100644
index 9484103..000
--- a/ebuild-env-invariancy.tex
+++ /dev/null
@@ -1,39 +0,0 @@
-\section{The State of the System Between Functions}
-
-For the sake of this section:
-\nobreakpar
-\begin{compactitem}
-\item Variancy is any package manager action that modifies either
-\t{ROOT} or \t{/} in any way that isn't merely a simple addition of
-something that doesn't alter other packages. This includes any
-non-default call to any \t{pkg} phase function except \t{pkg_setup},
-a merge of any package or an unmerge of any package.
-\item As an exception, changes to \t{DISTDIR} do not count as variancy.
-\item The \t{pkg_setup} function may be assumed not to introduce variancy.
-Thus, ebuilds must not perform variant actions in this phase.
-\end{compactitem}
-
-The following exclusivity and invariancy requirements are mandated:
-\nobreakpar
-\begin{compactitem}
-\item No variancy shall be introduced at any point between a package's
-\t{pkg_setup} being started up to the point that that package is
-merged, except for any variancy introduced by that package.
-\item There must be no variancy between a package's \t{pkg_setup} and
-a package's \t{pkg_postinst}, except for any variancy introduced
-by that package.
-\item Any non-default \t{pkg} phase function must be run exclusively.
-\item Each phase function must be called at most once during the build
-process for any given package.
-\end{compactitem}
-
-% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "pms"
-%%% LaTeX-indent-level: 4
-%%% LaTeX-item-indent: 0
-%%% TeX-brace-indent-level: 4
-%%% fill-column: 100
-%%% End:

diff --git a/ebuild-env-state.tex b/ebuild-env-state.tex
deleted file mode 100644
index a998660..000
--- a/ebuild-env-state.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-\section{The State of Variables Between Functions}
-\label{sec:ebuild-env-state}
-
-Exported and default scope variables are saved between functions. A non-local 
variable set in a
-function earlier in the call sequence must have its value preserved for later 
functions, including
-functions executed as part of a later uninstall.
-
-\note{\t{pkg_pretend} is \emph{not} part of the normal call sequence, and does 
not take part in
-environment saving.}
-
-Variables that were exported must remain exported in later functions; 
variables with default
-visibility may retain default visibility or be exported. Variables with 
special meanings to the
-package manager are excluded from this rule.
-
-Global variables must only contain invariant values 
(see~\ref{sec:metadata-invariance}). If a global
-variable's value is invariant, it may have the value that would be generated 
at any given point
-in the build sequence.
-
-This is demonstrated by code listing~\ref{lst:env-saving}.
-
-\begin{listing}
-\caption{Environment state between functions} \label{lst:env-saving}
-\begin{verbatim}
-GLOBAL_VARIABLE="a"
-
-src_compile()
-{
-GLOBAL_VARIABLE="b"
-DEFAULT_VARIABLE="c"
-export EXPORTED_VARIABLE="d"
-local LOCAL_VARIABLE="e"
-}
-
-src_install(){
-[[ ${GLOBAL_VARIABLE} == "a" ]] \
-|| [[ ${GLOBAL_VARIABLE} == "b" ]] \
-|| die "broken env saving for globals"
-
-[[ ${DEFAULT_VARIABLE} == "c" ]] \
-|| die "broken env saving for default"
-
-[[ ${EXPORTED_VARIABLE} == "d" ]] \
-|| die "broken env saving for exported"
-
-[[ $(printenv EXPORTED_VARIABLE ) == "d" ]] \
-|| die "broken env saving for exported"
-
-[[ -z ${LOCAL_VARIABLE} ]] \
-|| die "broken env saving for locals"
-}
-\end{verbatim}
-\end{listing}
-
-% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "pms"
-%%% LaTeX-indent-level: 4
-%%% LaTeX-item-indent: 0
-%%% TeX-brace-indent-level: 4
-%%% fill-column: 100
-%%% End:

diff --git a/ebuild-environment.tex b/ebuild-environment.tex
index 82c036c..b9f3622 100644
--- a/ebuild-environment.tex
+++ b/ebuild-environment.tex
@@ -2,9 +2,84 @@
 
 \input{ebuild-env-vars.tex}
 
-\input{ebuild-env-state.tex}
+\section{The State of 

[gentoo-commits] proj/pms:master commit in: /

2022-02-07 Thread Ulrich Müller
commit: 075f3eb4751531ae04a86d6ebd4ca1f8b2a66e5e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan  8 10:23:04 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Jan  8 10:23:04 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=075f3eb4

pms.tex: Update copyright years

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index 630fc16..97d6d30 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
 \small
-\textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
+\textcopyright{} 2007--2022 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
 by their respective authors, and may have been changed substantially 
before inclusion.
 
 This work is released under the Creative Commons Attribution-ShareAlike 
4.0 International



[gentoo-commits] proj/pms:master commit in: /

2022-02-07 Thread Ulrich Müller
commit: 19011b5efffa577d35daa9dfe32820e3fc04d0a8
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan  8 09:13:02 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Jan  8 09:13:02 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=19011b5e

pkg-mgr-commands.tex: Teletype font for literal string in get_libdir

Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 45706af..eb15d64 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1270,7 +1270,7 @@ has returned.
 \begin{algorithm}
 \caption{\t{get_libdir} logic} \label{alg:get-libdir}
 \begin{algorithmic}[1]
-\STATE let libdir=lib
+\STATE let libdir=\t{lib}
 \IF{the ABI environment variable is set}
 \STATE let libvar=LIBDIR_\$ABI
 \IF{the environment variable named by libvar is set}



[gentoo-commits] proj/pms:master commit in: /

2022-02-07 Thread Ulrich Müller
commit: ca1f5785608d6962dab2b863d508061fa6a9e0f6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan  8 10:22:25 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Jan  8 10:22:25 2022 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ca1f5785

pkg-mgr-commands.tex: Add some braces for consistency

Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index eb15d64..7f57539 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -406,7 +406,7 @@ commands once the current phase function has returned.
 \end{algorithmic}
 \end{algorithm}
 
-\item[emake] Calls the \t{\$MAKE} program, or GNU make if the \t{MAKE} 
variable is unset.
+\item[emake] Calls the \t{\$\{MAKE\}} program, or GNU make if the \t{MAKE} 
variable is unset.
 Any arguments given are passed directly to the make command, as are the 
user's chosen
 \t{MAKEOPTS}\@. Arguments given to \t{emake} override user configuration. 
See also
 section~\ref{sec:guaranteed-system-commands}. \t{emake} must be an 
external program and cannot
@@ -507,7 +507,7 @@ the current phase function has returned.
 Only available in EAPIs listed in table~\ref{tab:doheader-table} as 
supporting \t{doheader}.
 Failure behaviour is EAPI dependent as per 
section~\ref{sec:failure-behaviour}.
 
-\item[dohtml] Installs the given HTML files into a subdirectory under 
\t{/usr/share/doc/\$PF/}.
+\item[dohtml] Installs the given HTML files into a subdirectory under 
\t{/usr/share/doc/\$\{PF\}/}.
 The subdirectory is \t{html} by default, but this can be overridden with 
the \t{docinto}
 function. Files to be installed automatically are determined by extension 
and the default
 extensions are \t{css}, \t{gif}, \t{htm}, \t{html}, \t{jpeg}, \t{jpg}, 
\t{js} and \t{png}.



[gentoo-commits] proj/pms:master commit in: /

2021-09-27 Thread Ulrich Müller
commit: 8ce3a9c94407c8bfcf27c8455fac32d3a38fc981
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Sep 24 12:12:38 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Sep 24 13:06:45 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8ce3a9c9

pkg-mgr-commands.tex: Update condition for econf --disable-static

The help message produced by LT_INIT in libtool-2.4.6 always says
--enable-static regardless of the default value, see m4/ltoptions.m4:

AC_ARG_ENABLE([static],
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
...)

This means that looking only for --disable-static in output of
configure --help results in non-functional behaviour.

Implementation in Portage (which predates the PMS wording) looks for
--enable-static in addition.

Bug: https://bugs.gentoo.org/814368
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index ebb4b7e..45706af 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -341,8 +341,8 @@ commands once the current phase function has returned.
 as using it. This option will only be passed if the string 
\t{-{}-disable-silent-rules}
 occurs in the output of \t{configure -{}-help}.
 \item \t{-{}-disable-static}, if the EAPI is listed in 
table~\ref{tab:econf-options-table}
-as using it. This option will only be passed if the string 
\t{-{}-disable-static} occurs
-in the output of \t{configure -{}-help}.
+as using it. This option will only be passed if the string 
\t{-{}-disable-static} or
+\t{-{}-enable-static} occurs in the output of \t{configure -{}-help}.
 \end{itemize}
 
 \ChangeWhenAddingAnEAPI{8}



[gentoo-commits] proj/pms:master commit in: /

2021-09-03 Thread Ulrich Müller
commit: 823cc48478a0bb108baa03f0e33e5f77824e5db2
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Sep  3 15:24:25 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Sep  3 15:24:25 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=823cc484

eapi-cheatsheet.tex: Delete trailing whitespace

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-cheatsheet.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index c333b32..8c379bc 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -556,7 +556,7 @@ differences between these previous EAPIs.
 to configure, respectively. See \featureref{econf-options}.
 \item[\code{dosym}] With the new option \code{-r}, an absolute
 path specified for the link target will be converted to a path
-relative to the link location. See \featureref{dosym-relative}. 
+relative to the link location. See \featureref{dosym-relative}.
 \item[\code{insopts}] Commands \code{doconfd}, \code{doenvd},
 \code{doheader} install files with fixed mode 0644, i.\,e.\
 they are no longer affected by \code{insopts}.



[gentoo-commits] proj/pms:master commit in: /

2021-09-03 Thread Ulrich Müller
commit: 0d8e19d85038ad2433e655cdbca8189d72163f60
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Sep  3 15:23:57 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Sep  3 15:23:57 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0d8e19d8

ebuild-env-vars.tex: Add missing \\ in table

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index b52f0b3..a55c366 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -256,10 +256,10 @@ variable.
 \t{REPLACED_BY_VERSION} &
 \t{pkg_prerm}, \t{pkg_postrm} &
 Yes &
-The single version of this package (including revision, if specified) that 
is replacing us, if
-we are being uninstalled as part of an install, or an empty string 
otherwise. See
-section~\ref{sec:replacing-versions}.  Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table}
-as supporting \t{REPLACED_BY_VERSION}.
+The single version of this package (including revision, if specified) that 
is replacing us,
+if we are being uninstalled as part of an install, or an empty string 
otherwise.
+See section~\ref{sec:replacing-versions}. Only for EAPIs listed in
+table~\ref{tab:added-env-vars-table} as supporting 
\t{REPLACED_BY_VERSION}. \\
 \end{longtable}
 \end{landscape}
 



[gentoo-commits] proj/pms:master commit in: /

2021-09-03 Thread Ulrich Müller
commit: 153324136107543ef07b1378f08bce81199a9022
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Aug 30 19:32:16 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Aug 31 16:05:50 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=15332413

pkg-mgr-commands.tex: Clarify which commands are allowed in global scope

For most commands this is already implied by the combination of the
statements "When an ebuild is being sourced for metadata querying
rather than for a build [...], no external command may be executed."
in chapter 12 ("Available Commands") and "Except where otherwise
noted, they may be internal [...] or external commands available in
PATH; where this is not specified, ebuilds may not rely upon either
behaviour." in section 12.3 ("Ebuild-specific Commands").

For output commands (einfo etc.) and debug commands (debug-print etc.)
to be allowed in global scope, they must be implemented as shell
functions. Specify this, which follows the implementation in all three
package managers.

Closes: https://bugs.gentoo.org/520528
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 20 
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 331cd33..ebb4b7e 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -4,7 +4,8 @@
 The following commands will always be available in the ebuild environment, 
provided by the package
 manager. Except where otherwise noted, they may be internal (shell functions 
or aliases) or external
 commands available in \t{PATH}; where this is not specified, ebuilds may not 
rely upon either
-behaviour.
+behaviour. Unless otherwise specified, it is an error if an ebuild calls any 
of these commands in
+global scope.
 
 Unless otherwise noted, any output of these commands ends with a newline.
 
@@ -142,8 +143,9 @@ are given, \t{-r} is assumed.
 These commands display messages to the user. Unless otherwise stated, the 
entire argument list is
 used as a message, with backslash-escaped characters interpreted as for the 
\t{echo -e} command of
 bash, notably \t{\textbackslash t} for a horizontal tab, \t{\textbackslash n} 
for a new line, and
-\t{\textbackslash\textbackslash} for a literal backslash. Ebuilds must not run 
any of these commands
-once the current phase function has returned.
+\t{\textbackslash\textbackslash} for a literal backslash. These commands must 
be implemented
+internally as shell functions and may be called in global scope. Ebuilds must 
not run any of these
+commands once the current phase function has returned.
 
 \featurelabel{output-no-stdout} Unless otherwise noted, output may be sent to 
stderr or some other
 appropriate facility. In EAPIs listed in table~\ref{tab:output-commands} as 
not allowing stdout
@@ -927,8 +929,7 @@ any of these functions from any other phase.
 
 \subsection{USE list functions}
 These functions provide behaviour based upon set or unset use flags. Ebuilds 
must not run any of
-these commands once the current phase function has returned. It is an error if 
an ebuild calls any
-of these functions in global scope.
+these commands once the current phase function has returned.
 
 Unless otherwise noted, if any of these functions is called with a flag value 
that is not included
 in \t{IUSE_EFFECTIVE}, either behaviour is undefined or it is an error as 
decided by
@@ -1016,7 +1017,8 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \subsection{Text list functions}
-These functions check a list of arguments for a particular value.
+These functions check a list of arguments for a particular value. They must be 
implemented
+internally as shell functions and may be called in global scope.
 \nobreakpar
 \begin{description}
 \item[has] Returns shell true (0) if the first argument (a word) is found in 
the list of subsequent
@@ -1261,8 +1263,9 @@ has returned.
 \end{algorithm}
 
 \item[get_libdir] \featurelabel{get-libdir} Prints the libdir name obtained 
according to
-algorithm~\ref{alg:get-libdir}. Must be implemented internally as a shell 
function.
-Only available in EAPIs listed in table~\ref{tab:misc-commands} as 
supporting \t{get_libdir}.
+algorithm~\ref{alg:get-libdir}. Must be implemented internally as a shell 
function and may be
+called in global scope. Only available in EAPIs listed in 
table~\ref{tab:misc-commands} as
+supporting \t{get_libdir}.
 
 \begin{algorithm}
 \caption{\t{get_libdir} logic} \label{alg:get-libdir}
@@ -1300,6 +1303,7 @@ has returned.
 \subsection{Debug commands}
 The following commands are available for debugging. Normally all of these 
commands should be no ops;
 a package manager may provide a special debug mode where these commands 
instead do something.
+These commands must be implemented internally as shell functions and may be 
called in global scope.
 Ebuilds must not run any of these commands once the current phase 

[gentoo-commits] proj/pms:master commit in: /

2021-09-02 Thread Ulrich Müller
commit: e68df128f8cd3b427168f9a76a655460766e6d70
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Aug 31 16:05:08 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Aug 31 16:05:08 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e68df128

pkg-mgr-commands.tex: Update description of text list functions

Closes: https://bugs.gentoo.org/374791
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 4431435..331cd33 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1016,7 +1016,7 @@ table~\ref{tab:use-list-strictness}.
 \end{centertable}
 
 \subsection{Text list functions}
-These functions check whitespace-separated lists for a particular value.
+These functions check a list of arguments for a particular value.
 \nobreakpar
 \begin{description}
 \item[has] Returns shell true (0) if the first argument (a word) is found in 
the list of subsequent



[gentoo-commits] proj/pms:master commit in: /

2021-09-01 Thread Ulrich Müller
commit: f5f8e42eeb8ea1e8c2ac182f30214ef0c559dd88
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Aug 29 08:10:29 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Aug 31 16:02:50 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=f5f8e42e

eclasses.tex: Clarify precedence of EXPORT_FUNCTIONS calls

Clarify that the last call to EXPORT_FUNCTIONS takes precedence over
earlier calls.

Unfortunately, we need an exception when inherit is called after
EXPORT_FUNCTIONS because Portage changed its behaviour in 2009:
https://gitweb.gentoo.org/proj/portage.git/commit/?id=06d4433e8b8be60d606733b9e23f57f8a5869d8f

Pkgcore and Paludis apply precedence consistently based on call order
of EXPORT_FUNCTIONS.

Bug: https://bugs.gentoo.org/399039
Bug: https://bugs.gentoo.org/422513
Signed-off-by: Ulrich Müller  gentoo.org>

 eclasses.tex | 4 
 1 file changed, 4 insertions(+)

diff --git a/eclasses.tex b/eclasses.tex
index a92ce1f..e23dcd8 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -88,6 +88,10 @@ should the author wish to override it he can access the 
function in \t{foo.eclas
 \t{EXPORT_FUNCTIONS} must only be used on ebuild phase functions. The function 
that is aliased
 must be named \t{eclassname_phasefunctionname}, where \t{eclassname} is the 
name of the eclass.
 
+If \t{EXPORT_FUNCTIONS} is called multiple times for the same phase function, 
the last call takes
+precedence. Eclasses may not rely upon any particular behaviour if they 
inherit another eclass
+after calling \t{EXPORT_FUNCTIONS}.
+
 % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
 
 %%% Local Variables:



[gentoo-commits] proj/pms:master commit in: /

2021-08-19 Thread Ulrich Müller
commit: b02e81a59e6a31198a3d023003144cc3938bbc02
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Aug 18 16:19:36 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Aug 18 16:19:36 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b02e81a5

desk-reference.tex: Include the cheat sheet from a separate file

The desk reference (cheat sheet) is an own chapter. For consistency,
include it from a separate file, and prefix its label with "ch:".

Signed-off-by: Ulrich Müller  gentoo.org>

 desk-reference.tex | 21 +
 pms.tex| 10 +-
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/desk-reference.tex b/desk-reference.tex
new file mode 100644
index 000..a096032
--- /dev/null
+++ b/desk-reference.tex
@@ -0,0 +1,21 @@
+\ifthenelse{\boolean{TEX4HT-HACKS}}{%
+\chapter{Desk Reference}
+\label{ch:cheatsheet}
+\href{eapi-cheatsheet.pdf}{EAPI Cheat Sheet}
+}{%
+% Make sure that the cheat sheet starts on an odd page
+\ifthenelse{\isodd{\thepage}}{}{\null\newpage}%
+\includepdf[pages=-,landscape,turn=false,lastpage=2,%
+addtotoc={1,chapter,0,Desk Reference,ch:cheatsheet}]{eapi-cheatsheet}
+}
+
+% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "pms"
+%%% LaTeX-indent-level: 4
+%%% LaTeX-item-indent: 0
+%%% TeX-brace-indent-level: 4
+%%% fill-column: 100
+%%% End:

diff --git a/pms.tex b/pms.tex
index 8bbd037..e0a41b5 100644
--- a/pms.tex
+++ b/pms.tex
@@ -85,15 +85,7 @@
 
 \include{eapi-differences}
 
-\ifthenelse{\boolean{TEX4HT-HACKS}}{%
-\chapter{Desk Reference}
-\href{eapi-cheatsheet.pdf}{EAPI Cheat Sheet}
-}{%
-% Make sure that the cheat sheet starts on an odd page
-\clearpage\ifthenelse{\isodd{\thepage}}{}{\null\newpage}%
-\includepdf[pages=-,landscape,turn=false,lastpage=2,%
-addtotoc={1,chapter,0,Desk Reference,cheatsheet}]{eapi-cheatsheet}
-}
+\include{desk-reference}
 
 \end{document}
 



[gentoo-commits] proj/pms:master commit in: /

2021-08-19 Thread Ulrich Müller
commit: 3c246ad9dd49c23f87ec12fc859ffd76cf2ca9f1
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Aug 18 16:21:41 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Aug 18 16:21:41 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3c246ad9

pms.tex: Delete some empty lines

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 17 -
 1 file changed, 17 deletions(-)

diff --git a/pms.tex b/pms.tex
index e0a41b5..630fc16 100644
--- a/pms.tex
+++ b/pms.tex
@@ -47,44 +47,27 @@
 \listoftables
 
 \include{introduction}
-
 \include{eapis}
-
 \include{names}
-
 \include{tree-layout}
-
 \include{profiles}
-
 \include{ebuild-format}
-
 \include{ebuild-vars}
-
 \include{dependencies}
-
 \include{ebuild-functions}
-
 \include{eclasses}
-
 \include{ebuild-environment}
-
 \include{commands}
-
 \include{merge}
-
 \include{metadata-cache}
-
 \include{glossary}
 
 \bibliography{pms}
 
 \appendix
 \setcounter{secnumdepth}{0}
-
 \include{appendices}
-
 \include{eapi-differences}
-
 \include{desk-reference}
 
 \end{document}



[gentoo-commits] proj/pms:master commit in: /

2021-08-19 Thread Ulrich Müller
commit: 09bb58f347eef04cf9c29c7158beb1b04e645c75
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Aug 18 16:04:59 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Aug 18 16:04:59 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=09bb58f3

pms.cls: Output class info after packages are loaded

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/pms.cls b/pms.cls
index a41d96c..b29a9c3 100644
--- a/pms.cls
+++ b/pms.cls
@@ -47,18 +47,6 @@
 gitinfo2% Metadata from git
 }
 
-% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
-\g@addto@macro\@documentclasshook{
-\RequirePackage{%
-hyperref,   % Support for hyperlinks
-algorithm,  %
-algorithmic % Set algorithms
-}
-}
-
-\ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
-Specification, loaded baseclass: \ClassToLoad\MessageBreak}
-
 % Make processing with TeX4HT possible
 \newboolean{TEX4HT-HACKS}
 \ifx\HCode\undefined
@@ -72,6 +60,18 @@
 \setboolean{TEX4HT-HACKS}{true}
 \fi
 
+% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
+\g@addto@macro\@documentclasshook{
+\RequirePackage{%
+hyperref,   % Support for hyperlinks
+algorithm,  %
+algorithmic % Set algorithms
+}
+}
+
+\ClassInfo{pms}{LaTeX class for the Package Manager Specification,
+loaded baseclass: \ClassToLoad\MessageBreak}
+
 % Define own label and reference commands, that display the label in
 % the page margin.
 \ifthenelse{\boolean{TEX4HT-HACKS}}{%



[gentoo-commits] proj/pms:master commit in: /

2021-08-17 Thread Ulrich Müller
commit: edae70c9cc4b936670151088e9e97c51331b6440
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Aug 17 11:45:08 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Aug 17 11:45:08 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=edae70c9

profiles.tex: Don't use \verb

Signed-off-by: Ulrich Müller  gentoo.org>

 profiles.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/profiles.tex b/profiles.tex
index d6e8649..30da81b 100644
--- a/profiles.tex
+++ b/profiles.tex
@@ -49,7 +49,7 @@ This file must not contain comments or make use of line 
continuations.
 This file is unusual in that it is not combined at a file level with the 
parent---instead, each
 variable is combined or overridden individually as described in 
section~\ref{sec:profile-variables}.
 
-The file itself is a line-based key-value format. Each line contains a single 
\verb|VAR="value"|
+The file itself is a line-based key-value format. Each line contains a single 
\t{VAR="value"}
 entry, where the value must be double quoted. A variable name must start with 
one of \t{a-zA-Z}
 and may contain \t{a-zA-Z0-9_} only. Additional syntax, which is a small 
subset of
 bash syntax, is allowed as follows:



[gentoo-commits] proj/pms:master commit in: /

2021-08-15 Thread Ulrich Müller
commit: 88bd72dfbce9d889f9cf865cac72f26a06e8914e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Aug 15 12:14:44 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Aug 15 12:14:44 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=88bd72df

eapi-cheatsheet.tex: Define \i and \t commands

These occur in external aux files used with the xr-hyper package and
would normally cause an "undefined control sequence" error. The problem
was hidden by LaTeX using its internal \i and \t macros instead.

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-cheatsheet.tex | 4 
 1 file changed, 4 insertions(+)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index c5e795d..c333b32 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -19,6 +19,10 @@
 \newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
 \renewcommand{\familydefault}{\sfdefault}
 \urlstyle{sf}
+
+% These commands may occur in external aux files from pms
+\renewcommand{\i}[1]{\textit{#1}}
+\renewcommand{\t}[1]{\texttt{#1}}
 \externaldocument{pms}
 
 \title{EAPI Cheat Sheet}



[gentoo-commits] proj/pms:master commit in: /

2021-08-08 Thread Ulrich Müller
commit: 140aac7de90b44e7a14b4f5aaf5952911ad074ea
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Aug  4 10:10:59 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Aug  4 10:10:59 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=140aac7d

pkg-mgr-commands.tex: Fix econf --libdir logic

Portage uses both --exec-prefix and --prefix in its econf logic,
introduced in 2005:
https://gitweb.gentoo.org/archive/proj/portage-cvs.git/commit/?h=portage_2_0=865508e5cb2fd3e6ef7c312b6a7bb88cf8799f9c

Pkgcore agrees with Portage.

Paludis uses --prefix first, then --exec-prefix.

Closes: https://bugs.gentoo.org/806374
Signed-off-by: Ulrich Müller  gentoo.org>

 pkg-mgr-commands.tex | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 0a34db9..4431435 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -386,7 +386,9 @@ commands once the current phase function has returned.
 \caption{\t{econf -{}-libdir} logic} \label{alg:econf-libdir}
 \begin{algorithmic}[1]
 \STATE let prefix=\$\{EPREFIX\}/usr
-\IF{the caller specified -{}-prefix=\$p}
+\IF{the caller specified -{}-exec-prefix=\$ep}
+\STATE let prefix=\$ep
+\ELSIF{the caller specified -{}-prefix=\$p}
 \STATE let prefix=\$p
 \ENDIF
 \STATE let libdir=



[gentoo-commits] proj/pms:master commit in: /

2021-06-20 Thread Ulrich Müller
commit: 244714ba25b52e6437bf12302a6e633ebbc10a9c
Author: akater  gmail  com>
AuthorDate: Sun Jun 20 01:01:13 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jun 20 12:27:09 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=244714ba

ebuild-env-vars.tex: Fix a reference

Fixes: 27a0bf1961ae56fd6b948d5ffea9a9e4ae35fd91
Closes: https://bugs.gentoo.org/796794
Signed-off-by: Dmitrii Neskoromnyi  gmail.com>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index ddea935..b52f0b3 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -149,7 +149,7 @@ variable.
 No &
 \featurelabel{broot} The absolute path to the root directory containing 
build dependencies
 satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build 
tools. This includes any
-applicable offset prefix. Only for EAPIs listed in 
table~\ref{tab:offset-env-vars-table} as
+applicable offset prefix. Only for EAPIs listed in 
table~\ref{tab:added-env-vars-table} as
 supporting \t{BROOT}.
 \\
 \t{T} &



[gentoo-commits] proj/pms:master commit in: /

2021-06-17 Thread Ulrich Müller
commit: 3693c368bf2e7d2150c56780e9f52e6597418968
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Jun 17 20:29:49 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Jun 17 20:29:49 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=3693c368

Drop comma after "i.e." throughout, for consistency

Signed-off-by: Ulrich Müller  gentoo.org>

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

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 0d28251..c5e795d 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -554,11 +554,11 @@ differences between these previous EAPIs.
 path specified for the link target will be converted to a path
 relative to the link location. See \featureref{dosym-relative}. 
 \item[\code{insopts}] Commands \code{doconfd}, \code{doenvd},
-\code{doheader} install files with fixed mode 0644, i.\,e.,
+\code{doheader} install files with fixed mode 0644, i.\,e.\
 they are no longer affected by \code{insopts}.
 See \featureref{insopts}.
 \item[\code{exeopts}] Command \code{doinitd} installs files
-with fixed mode 0755, i.\,e., it is no longer affected by
+with fixed mode 0755, i.\,e.\ it is no longer affected by
 \code{exeopts}. See \featureref{exeopts}.
 \item[\code{usev}] This helper has an optional second argument
 now: \code{usev} \emph{ [true]}. If the flag is set,

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 04a8ac4..0a34db9 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -1030,7 +1030,7 @@ These functions check whitespace-separated lists for a 
particular value.
 \subsection{Version manipulation and comparison commands}
 \featurelabel{ver-commands}
 These commands provide utilities for working with version strings. They must 
all be implemented
-internally as shell functions, i.\,e., they are callable in global scope. 
Availability of these
+internally as shell functions, i.\,e.\ they are callable in global scope. 
Availability of these
 commands per EAPI is listed in table~\ref{tab:version-commands}.
 
 For the purpose of version manipulation commands, the specification provides a 
method for splitting
@@ -1131,7 +1131,7 @@ has returned.
 
 Arguments to \t{unpack} are interpreted as follows:
 \begin{compactitem}
-\item A filename without path (i.\,e., not containing any slash) is looked 
up in \t{DISTDIR}.
+\item A filename without path (i.\,e.\ not containing any slash) is looked 
up in \t{DISTDIR}.
 \item An argument starting with the string \t{./} is a path relative to 
the working directory.
 \item \featurelabel{unpack-absolute} Otherwise, for EAPIs listed in
 table~\ref{tab:unpack-behaviour} as supporting absolute and relative 
paths, the argument is



[gentoo-commits] proj/pms:master commit in: /

2021-06-13 Thread Ulrich Müller
commit: 06af57dc10ba883707b8841c4ddd9817437c650d
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Jun 13 19:15:30 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jun 13 19:15:30 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=06af57dc

Merge branch 'eapi-8'

Signed-off-by: Ulrich Müller  gentoo.org>

 commands.tex  |   4 +-
 dependencies.tex  |  49 +
 eapi-cheatsheet.tex   | 210 --
 eapi-differences.tex  | 239 
 eapis.tex |  22 +---
 ebuild-env-vars.tex   |  29 +++---
 ebuild-format.tex |   5 +-
 ebuild-functions.tex  | 233 +++
 ebuild-vars.tex   |  39 +---
 eclasses.tex  |  27 -
 merge.tex |   4 +-
 metadata-cache.tex|   2 +
 pkg-mgr-commands.tex  | 271 +++---
 pms.tex   |   9 +-
 profile-variables.tex |   8 +-
 profiles.tex  |  12 +--
 tree-layout.tex   |  29 --
 17 files changed, 753 insertions(+), 439 deletions(-)



[gentoo-commits] proj/pms:master commit in: /

2021-05-24 Thread Ulrich Müller
commit: 0db12c169b7f4bfd773792199cff0081846828c6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun May 23 09:53:12 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun May 23 09:53:12 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0db12c16

pms.cls: Specify \raggedbottom also in twoside mode

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 4 
 1 file changed, 4 insertions(+)

diff --git a/pms.cls b/pms.cls
index 2e2e9bf..a41d96c 100644
--- a/pms.cls
+++ b/pms.cls
@@ -152,6 +152,10 @@
 \setlength\hfuzz{0.2pt}  % was 0.1pt
 \setlength\emergencystretch{1em} % was 0
 
+% Don't add extra vertical space, to avoid underfull boxes. Only affects
+% two-sided layout, for one-sided it is already the default
+\raggedbottom
+
 % Define some PDF meta-data.
 % tex4ht workaround: this needs to happen after loading hyperref
 \g@addto@macro\@documentclasshook{



[gentoo-commits] proj/pms:master commit in: /

2021-05-01 Thread Ulrich Müller
commit: 54330c67cb6374e0bd704ea775871161ba7fdf72
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 21:20:55 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Apr 30 16:24:30 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=54330c67

pms.cls: Do not define \e for \emph

This is only used a few times, so a shorthand is not needed.
(We really should get rid of \i and \t as well, because redefining
LaTeX internal commands sucks.)

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex   | 2 +-
 dependencies.tex | 4 ++--
 ebuild-env-state.tex | 2 +-
 ebuild-env-vars.tex  | 2 +-
 ebuild-functions.tex | 2 +-
 introduction.tex | 4 ++--
 pkg-mgr-commands.tex | 4 ++--
 pms.cls  | 1 -
 profiles.tex | 2 +-
 tree-layout.tex  | 4 ++--
 10 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index 21716d6..3d2ef52 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -52,7 +52,7 @@ DEPEND="
 
 \subsection{CVS versions}
 Portage has very crude support for CVS packages. The package \t{foo} could 
contain a file named
-\t{foo-cvs.1.2.3.ebuild}. This version would order \e{higher} than any non-CVS 
version (including
+\t{foo-cvs.1.2.3.ebuild}. This version would order \emph{higher} than any 
non-CVS version (including
 \t{foo-2.ebuild}). This feature has not seen real world use and breaks 
versioned dependencies, so
 it must not be used.
 

diff --git a/dependencies.tex b/dependencies.tex
index a641014..557ddce 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -377,8 +377,8 @@ Multiple requirements may be combined using commas, e.\,g.\ 
\t{[first,-second,th
 When multiple requirements are specified, all must match for a successful 
match.
 
 \featurelabel{use-dep-defaults} In a 4-style use dependency, the flag name may 
immediately be
-followed by a \e{default} specified by either \t{(+)} or \t{(-)}. The former 
indicates that, when
-applying the use dependency to a package that does not have the flag in 
question in
+followed by a \emph{default} specified by either \t{(+)} or \t{(-)}. The 
former indicates that,
+when applying the use dependency to a package that does not have the flag in 
question in
 \t{IUSE_REFERENCEABLE}, the package manager shall behave as if the flag were 
present and enabled;
 the latter, present and disabled.
 

diff --git a/ebuild-env-state.tex b/ebuild-env-state.tex
index 34c41c4..a998660 100644
--- a/ebuild-env-state.tex
+++ b/ebuild-env-state.tex
@@ -5,7 +5,7 @@ Exported and default scope variables are saved between 
functions. A non-local va
 function earlier in the call sequence must have its value preserved for later 
functions, including
 functions executed as part of a later uninstall.
 
-\note{\t{pkg_pretend} is \e{not} part of the normal call sequence, and does 
not take part in
+\note{\t{pkg_pretend} is \emph{not} part of the normal call sequence, and does 
not take part in
 environment saving.}
 
 Variables that were exported must remain exported in later functions; 
variables with default

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2736423..332c3d8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -421,7 +421,7 @@ installing a package. Details are beyond the scope of this 
specification.
 
 \featurelabel{replace-version-vars} In EAPIs listed in 
table~\ref{tab:added-env-vars-table} as
 supporting it, the \t{REPLACING_VERSIONS} variable shall be defined in 
\t{pkg_preinst} and
-\t{pkg_postinst}.  In addition, it \e{may} be defined in \t{pkg_pretend} and 
\t{pkg_setup},
+\t{pkg_postinst}. In addition, it \emph{may} be defined in \t{pkg_pretend} and 
\t{pkg_setup},
 although ebuild authors should take care to handle binary package creation and 
installation
 correctly when using it in these phases.
 

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 3935800..ab3ed9c 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -24,7 +24,7 @@ Ebuilds must not call nor assume the existence of any phase 
functions.
 
 Some functions may assume that their initial working directory is set to a 
particular location;
 these are noted below. If no initial working directory is mandated, it may be 
set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \e{may} 
assume that the
+the ebuild must not rely upon a particular location for it. The ebuild 
\emph{may} assume that the
 initial working directory for any phase is a trusted location that may only be 
written to by a
 privileged user and group.
 

diff --git a/introduction.tex b/introduction.tex
index 8d1f793..b72acc3 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -5,7 +5,7 @@
 This document aims to fully describe the format of an ebuild repository and 
the ebuilds therein, as
 well as certain aspects of package manager behaviour required to support such 
a repository.
 
-This document is \e{not} designed to be 

[gentoo-commits] proj/pms:master commit in: /

2021-05-01 Thread Ulrich Müller
commit: aede3621e7208e29d65d0cf1af656ca2ac0c528b
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 20:23:51 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Apr 30 16:24:30 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=aede3621

pms.cls: Reinstate TeX4ht/hyperref workaround

This had been removed in commit 1a510e7, but apparently it is needed
again with TeX Live 2021.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 40 ++--
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/pms.cls b/pms.cls
index 7fff027..d7c6ed8 100644
--- a/pms.cls
+++ b/pms.cls
@@ -44,10 +44,16 @@
 chngcntr,   % Redefinition of counters
 tocbibind,  % Add bibliography to table of contents
 float,  % More control over float environments
-hyperref,   % Support for hyperlinks
-gitinfo2,   % Metadata from git
-algorithm,  %
-algorithmic % Set algorithms
+gitinfo2% Metadata from git
+}
+
+% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
+\g@addto@macro\@documentclasshook{
+\RequirePackage{%
+hyperref,   % Support for hyperlinks
+algorithm,  %
+algorithmic % Set algorithms
+}
 }
 
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
@@ -99,8 +105,11 @@
 \counterwithout{footnote}{chapter}
 
 % Some shorthands for the lazy ones.
-\renewcommand{\i}[1]{\textit{#1}}
-\renewcommand{\t}[1]{\texttt{#1}}
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+\renewcommand{\i}[1]{\textit{#1}}
+\renewcommand{\t}[1]{\texttt{#1}}
+}
 \newcommand{\e}[1]{\emph{#1}}
 \newcommand{\note}[1]{\begin{trivlist}\item\textbf{Note:} #1\end{trivlist}}
 
@@ -142,14 +151,17 @@
 \setlength\emergencystretch{1em} % was 0
 
 % Define some PDF meta-data.
-\hypersetup{%
-urlcolor=black,
-colorlinks=true,
-citecolor=black,
-linkcolor=black,
-pdflang={en},
-pdfcreator={pdfLaTeX and hyperref},
-pdfproducer={pdfLaTeX and hyperref},
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+\hypersetup{%
+urlcolor=black,
+colorlinks=true,
+citecolor=black,
+linkcolor=black,
+pdflang={en},
+pdfcreator={pdfLaTeX and hyperref},
+pdfproducer={pdfLaTeX and hyperref},
+}
 }
 
 % Reads the last commit date from the Git repository and even succeeds



[gentoo-commits] proj/pms:master commit in: /

2021-05-01 Thread Ulrich Müller
commit: 224ba73717ad9dac063156290a15afdecf9a55d9
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 20:46:01 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Apr 30 16:24:30 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=224ba737

pms.tex: Update copyright years

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index e2e434c..7840252 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
 \small
-\textcopyright{} 2007--2020 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
+\textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
 by their respective authors, and may have been changed substantially 
before inclusion.
 
 This document is released under the Creative Commons 
Attribution-ShareAlike 3.0 Licence. The



[gentoo-commits] proj/pms:master commit in: /

2021-04-27 Thread Ulrich Müller
commit: ed196f4c419e7fb57223f9d8fd0947fd55d9fa4a
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 21:20:55 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Apr 25 21:20:55 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ed196f4c

pms.cls: Do not define \e for \emph

This is only used a few times, so a shorthand is not needed.
(We really should get rid of \i and \t as well, because redefining
LaTeX internal commands sucks.)

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex   | 2 +-
 dependencies.tex | 4 ++--
 ebuild-env-state.tex | 2 +-
 ebuild-env-vars.tex  | 2 +-
 ebuild-functions.tex | 2 +-
 introduction.tex | 4 ++--
 pkg-mgr-commands.tex | 4 ++--
 pms.cls  | 1 -
 profiles.tex | 2 +-
 tree-layout.tex  | 4 ++--
 10 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index 21716d6..3d2ef52 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -52,7 +52,7 @@ DEPEND="
 
 \subsection{CVS versions}
 Portage has very crude support for CVS packages. The package \t{foo} could 
contain a file named
-\t{foo-cvs.1.2.3.ebuild}. This version would order \e{higher} than any non-CVS 
version (including
+\t{foo-cvs.1.2.3.ebuild}. This version would order \emph{higher} than any 
non-CVS version (including
 \t{foo-2.ebuild}). This feature has not seen real world use and breaks 
versioned dependencies, so
 it must not be used.
 

diff --git a/dependencies.tex b/dependencies.tex
index a641014..557ddce 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -377,8 +377,8 @@ Multiple requirements may be combined using commas, e.\,g.\ 
\t{[first,-second,th
 When multiple requirements are specified, all must match for a successful 
match.
 
 \featurelabel{use-dep-defaults} In a 4-style use dependency, the flag name may 
immediately be
-followed by a \e{default} specified by either \t{(+)} or \t{(-)}. The former 
indicates that, when
-applying the use dependency to a package that does not have the flag in 
question in
+followed by a \emph{default} specified by either \t{(+)} or \t{(-)}. The 
former indicates that,
+when applying the use dependency to a package that does not have the flag in 
question in
 \t{IUSE_REFERENCEABLE}, the package manager shall behave as if the flag were 
present and enabled;
 the latter, present and disabled.
 

diff --git a/ebuild-env-state.tex b/ebuild-env-state.tex
index 34c41c4..a998660 100644
--- a/ebuild-env-state.tex
+++ b/ebuild-env-state.tex
@@ -5,7 +5,7 @@ Exported and default scope variables are saved between 
functions. A non-local va
 function earlier in the call sequence must have its value preserved for later 
functions, including
 functions executed as part of a later uninstall.
 
-\note{\t{pkg_pretend} is \e{not} part of the normal call sequence, and does 
not take part in
+\note{\t{pkg_pretend} is \emph{not} part of the normal call sequence, and does 
not take part in
 environment saving.}
 
 Variables that were exported must remain exported in later functions; 
variables with default

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2736423..332c3d8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -421,7 +421,7 @@ installing a package. Details are beyond the scope of this 
specification.
 
 \featurelabel{replace-version-vars} In EAPIs listed in 
table~\ref{tab:added-env-vars-table} as
 supporting it, the \t{REPLACING_VERSIONS} variable shall be defined in 
\t{pkg_preinst} and
-\t{pkg_postinst}.  In addition, it \e{may} be defined in \t{pkg_pretend} and 
\t{pkg_setup},
+\t{pkg_postinst}. In addition, it \emph{may} be defined in \t{pkg_pretend} and 
\t{pkg_setup},
 although ebuild authors should take care to handle binary package creation and 
installation
 correctly when using it in these phases.
 

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 3935800..ab3ed9c 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -24,7 +24,7 @@ Ebuilds must not call nor assume the existence of any phase 
functions.
 
 Some functions may assume that their initial working directory is set to a 
particular location;
 these are noted below. If no initial working directory is mandated, it may be 
set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \e{may} 
assume that the
+the ebuild must not rely upon a particular location for it. The ebuild 
\emph{may} assume that the
 initial working directory for any phase is a trusted location that may only be 
written to by a
 privileged user and group.
 

diff --git a/introduction.tex b/introduction.tex
index 8d1f793..b72acc3 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -5,7 +5,7 @@
 This document aims to fully describe the format of an ebuild repository and 
the ebuilds therein, as
 well as certain aspects of package manager behaviour required to support such 
a repository.
 
-This document is \e{not} designed to be 

[gentoo-commits] proj/pms:master commit in: /

2021-04-27 Thread Ulrich Müller
commit: ad2974244a47995ba0499ef83325ba5238418001
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 21:20:55 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Apr 25 21:20:55 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ad297424

pms.cls: Do not define \e for \emph

This is only used a few times, so a shorthand is not needed.
(We preally should get rid of \i and \t as well, because redefining
LaTeX internal commands sucks.)

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex   | 2 +-
 dependencies.tex | 4 ++--
 ebuild-env-state.tex | 2 +-
 ebuild-env-vars.tex  | 2 +-
 ebuild-functions.tex | 2 +-
 introduction.tex | 4 ++--
 pkg-mgr-commands.tex | 4 ++--
 pms.cls  | 1 -
 profiles.tex | 2 +-
 tree-layout.tex  | 4 ++--
 10 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index 21716d6..3d2ef52 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -52,7 +52,7 @@ DEPEND="
 
 \subsection{CVS versions}
 Portage has very crude support for CVS packages. The package \t{foo} could 
contain a file named
-\t{foo-cvs.1.2.3.ebuild}. This version would order \e{higher} than any non-CVS 
version (including
+\t{foo-cvs.1.2.3.ebuild}. This version would order \emph{higher} than any 
non-CVS version (including
 \t{foo-2.ebuild}). This feature has not seen real world use and breaks 
versioned dependencies, so
 it must not be used.
 

diff --git a/dependencies.tex b/dependencies.tex
index a641014..557ddce 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -377,8 +377,8 @@ Multiple requirements may be combined using commas, e.\,g.\ 
\t{[first,-second,th
 When multiple requirements are specified, all must match for a successful 
match.
 
 \featurelabel{use-dep-defaults} In a 4-style use dependency, the flag name may 
immediately be
-followed by a \e{default} specified by either \t{(+)} or \t{(-)}. The former 
indicates that, when
-applying the use dependency to a package that does not have the flag in 
question in
+followed by a \emph{default} specified by either \t{(+)} or \t{(-)}. The 
former indicates that,
+when applying the use dependency to a package that does not have the flag in 
question in
 \t{IUSE_REFERENCEABLE}, the package manager shall behave as if the flag were 
present and enabled;
 the latter, present and disabled.
 

diff --git a/ebuild-env-state.tex b/ebuild-env-state.tex
index 34c41c4..a998660 100644
--- a/ebuild-env-state.tex
+++ b/ebuild-env-state.tex
@@ -5,7 +5,7 @@ Exported and default scope variables are saved between 
functions. A non-local va
 function earlier in the call sequence must have its value preserved for later 
functions, including
 functions executed as part of a later uninstall.
 
-\note{\t{pkg_pretend} is \e{not} part of the normal call sequence, and does 
not take part in
+\note{\t{pkg_pretend} is \emph{not} part of the normal call sequence, and does 
not take part in
 environment saving.}
 
 Variables that were exported must remain exported in later functions; 
variables with default

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 2736423..332c3d8 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -421,7 +421,7 @@ installing a package. Details are beyond the scope of this 
specification.
 
 \featurelabel{replace-version-vars} In EAPIs listed in 
table~\ref{tab:added-env-vars-table} as
 supporting it, the \t{REPLACING_VERSIONS} variable shall be defined in 
\t{pkg_preinst} and
-\t{pkg_postinst}.  In addition, it \e{may} be defined in \t{pkg_pretend} and 
\t{pkg_setup},
+\t{pkg_postinst}. In addition, it \emph{may} be defined in \t{pkg_pretend} and 
\t{pkg_setup},
 although ebuild authors should take care to handle binary package creation and 
installation
 correctly when using it in these phases.
 

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 3935800..ab3ed9c 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -24,7 +24,7 @@ Ebuilds must not call nor assume the existence of any phase 
functions.
 
 Some functions may assume that their initial working directory is set to a 
particular location;
 these are noted below. If no initial working directory is mandated, it may be 
set to anything and
-the ebuild must not rely upon a particular location for it. The ebuild \e{may} 
assume that the
+the ebuild must not rely upon a particular location for it. The ebuild 
\emph{may} assume that the
 initial working directory for any phase is a trusted location that may only be 
written to by a
 privileged user and group.
 

diff --git a/introduction.tex b/introduction.tex
index 8d1f793..b72acc3 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -5,7 +5,7 @@
 This document aims to fully describe the format of an ebuild repository and 
the ebuilds therein, as
 well as certain aspects of package manager behaviour required to support such 
a repository.
 
-This document is \e{not} designed to be 

[gentoo-commits] proj/pms:master commit in: /

2021-04-25 Thread Ulrich Müller
commit: e864d21375202a7c888930404666849aa3e8e072
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 20:46:01 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Apr 25 20:46:01 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e864d213

pms.tex: Update copyright years

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index e2e434c..7840252 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
 \small
-\textcopyright{} 2007--2020 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
+\textcopyright{} 2007--2021 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
 by their respective authors, and may have been changed substantially 
before inclusion.
 
 This document is released under the Creative Commons 
Attribution-ShareAlike 3.0 Licence. The



[gentoo-commits] proj/pms:master commit in: /

2021-04-25 Thread Ulrich Müller
commit: df255447c59ccff0873134ff58ef629d91a0a715
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Apr 15 08:00:42 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Apr 15 08:00:42 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=df255447

ebuild-env-vars.tex: Clarify wording for profile IUSE injection

Subsume IUSE_REFERENCEABLE and IUSE_EFFECTIVE under a single
conditional, which will clarify that these variables are equal if the
feature is supported.

Also the profile-iuse-inject featurelabel was misplaced (it didn't
cover IUSE_REFERENCEABLE).

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-env-vars.tex | 11 ---
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 117a19d..2736423 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -375,12 +375,8 @@ In all cases, the values of \t{IUSE_REFERENCEABLE} and 
\t{IUSE_EFFECTIVE} are un
 metadata generation.
 
 For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not 
supporting profile defined
-\t{IUSE} injection, \t{IUSE_REFERENCEABLE} is equal to the calculated \t{IUSE} 
value. For EAPIs
-where profile defined \t{IUSE} injection is supported, \t{IUSE_REFERENCEABLE} 
is equal to
-\t{IUSE_EFFECTIVE}.
-
-For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not 
supporting profile defined
-\t{IUSE} injection, \t{IUSE_EFFECTIVE} contains the following values:
+\t{IUSE} injection, \t{IUSE_REFERENCEABLE} is equal to the calculated \t{IUSE} 
value, and
+\t{IUSE_EFFECTIVE} contains the following values:
 
 \begin{compactitem}
 \item All values in the calculated \t{IUSE} value.
@@ -390,7 +386,8 @@ For EAPIs listed in 
table~\ref{tab:profile-iuse-injection-table} as not supporti
 \end{compactitem}
 
 \featurelabel{profile-iuse-inject} For EAPIs listed in 
table~\ref{tab:profile-iuse-injection-table}
-as supporting profile defined \t{IUSE} injection, \t{IUSE_EFFECTIVE} contains 
the following values:
+as supporting profile defined \t{IUSE} injection, \t{IUSE_REFERENCEABLE} and 
\t{IUSE_EFFECTIVE}
+are equal and contain the following values:
 
 \begin{compactitem}
 \item All values in the calculated \t{IUSE} value.



[gentoo-commits] proj/pms:master commit in: /

2021-04-25 Thread Ulrich Müller
commit: 4e97d4a54ce404d8eb076a8368809750f1799023
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 25 20:23:51 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Apr 25 20:23:51 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=4e97d4a5

pms.cls: Reinstate TeX4ht/hyperref workaround

This had been removed in commit 1a510e7, but apparently it is needed
again with TeX Live 2021.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 32 +---
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/pms.cls b/pms.cls
index 7fff027..a64d7d8 100644
--- a/pms.cls
+++ b/pms.cls
@@ -44,12 +44,16 @@
 chngcntr,   % Redefinition of counters
 tocbibind,  % Add bibliography to table of contents
 float,  % More control over float environments
-hyperref,   % Support for hyperlinks
 gitinfo2,   % Metadata from git
 algorithm,  %
 algorithmic % Set algorithms
 }
 
+% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
+\g@addto@macro\@documentclasshook{
+\RequirePackage{hyperref}   % Support for hyperlinks
+}
+
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
 Specification, loaded baseclass: \ClassToLoad\MessageBreak}
 
@@ -99,8 +103,11 @@
 \counterwithout{footnote}{chapter}
 
 % Some shorthands for the lazy ones.
-\renewcommand{\i}[1]{\textit{#1}}
-\renewcommand{\t}[1]{\texttt{#1}}
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+\renewcommand{\i}[1]{\textit{#1}}
+\renewcommand{\t}[1]{\texttt{#1}}
+}
 \newcommand{\e}[1]{\emph{#1}}
 \newcommand{\note}[1]{\begin{trivlist}\item\textbf{Note:} #1\end{trivlist}}
 
@@ -142,14 +149,17 @@
 \setlength\emergencystretch{1em} % was 0
 
 % Define some PDF meta-data.
-\hypersetup{%
-urlcolor=black,
-colorlinks=true,
-citecolor=black,
-linkcolor=black,
-pdflang={en},
-pdfcreator={pdfLaTeX and hyperref},
-pdfproducer={pdfLaTeX and hyperref},
+% tex4ht workaround: this needs to happen after loading hyperref
+\g@addto@macro\@documentclasshook{
+\hypersetup{%
+urlcolor=black,
+colorlinks=true,
+citecolor=black,
+linkcolor=black,
+pdflang={en},
+pdfcreator={pdfLaTeX and hyperref},
+pdfproducer={pdfLaTeX and hyperref},
+}
 }
 
 % Reads the last commit date from the Git repository and even succeeds



[gentoo-commits] proj/pms:master commit in: /

2021-01-19 Thread Ulrich Müller
commit: e16c8dc8a5e6aedbbec768e9d1c807e456bd1230
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Jan 16 12:56:41 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Jan 16 12:56:41 2021 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e16c8dc8

pms.cls: Silence hyperref messages

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 4 
 1 file changed, 4 insertions(+)

diff --git a/pms.cls b/pms.cls
index 351b3dd..7fff027 100644
--- a/pms.cls
+++ b/pms.cls
@@ -123,6 +123,10 @@
 \floatname{listing}{Listing}
 \newcommand{\listoflistings}{\listof{listing}{List of Listings}}
 
+% Silence hyperref messages (see hint 11.3 in the hyperref manual)
+\providecommand*{\toclevel@algorithm}{0}
+\providecommand*{\toclevel@listing}{0}
+
 % We always place captions above floats, so redefine vertical spacings
 % Don't use the "caption" package because it interferes with TeX4ht
 \setlength\belowcaptionskip{\abovecaptionskip}



[gentoo-commits] proj/pms:master commit in: /

2020-09-28 Thread Ulrich Müller
commit: c338e3716133ee676b9fcf1252103a855e47831f
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Sep 28 18:14:55 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Sep 28 18:14:55 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c338e371

Revert "pms.cls: Remove some tex4ht conditionals."

The PSNFSS packages cause an issue with missing whitespace between
normal and boldface text in HTML output.

This partially reverts commit 9d681052334b8b581e0c1218a0fc0c4f6897d091.

Signed-off-by: Ulrich Müller  gentoo.org>

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

diff --git a/pms.cls b/pms.cls
index f01ace6..351b3dd 100644
--- a/pms.cls
+++ b/pms.cls
@@ -29,8 +29,6 @@
 % algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
 fontenc,% Load extended font sets
-mathptmx,   % Use Postscript fonts: Times ...
-helvet, % ... and Helvetica
 isodate,% Date formatting and conversions
 geometry,   % Set page layout
 inputenc,   % Allow input methods apart from ASCII
@@ -59,6 +57,8 @@
 \newboolean{TEX4HT-HACKS}
 \ifx\HCode\undefined
 \RequirePackage{%
+mathptmx,   % Use Postscript fonts: Times ...
+helvet, % ... and Helvetica
 pdfpages% Insert whole PDF documents as separate pages
 }
 \setboolean{TEX4HT-HACKS}{false}



[gentoo-commits] proj/pms:master commit in: /

2020-09-21 Thread Ulrich Müller
commit: c5013f3b60593f9155b0cd4beaba347c82e370d5
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Sep 21 19:13:59 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Sep 21 19:13:59 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=c5013f3b

pms.cls: Change line length to reflect what is actually used.

fill-column (Emacs) and tw (Vim) set to 80.

Signed-off-by: Ulrich Müller  gentoo.org>

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

diff --git a/pms.cls b/pms.cls
index a5e3084..f01ace6 100644
--- a/pms.cls
+++ b/pms.cls
@@ -175,7 +175,7 @@
 }%
 }
 
-% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en :
+% vim: set filetype=tex fileencoding=utf8 et tw=80 spell spelllang=en :
 
 %%% Local Variables:
 %%% mode: latex
@@ -183,5 +183,5 @@
 %%% LaTeX-indent-level: 4
 %%% LaTeX-item-indent: 0
 %%% TeX-brace-indent-level: 4
-%%% fill-column: 100
+%%% fill-column: 80
 %%% End:



[gentoo-commits] proj/pms:master commit in: /

2020-09-21 Thread Ulrich Müller
commit: 78b49d4523e4f36a256d6c160a197346ed910f3f
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Sep 16 15:48:39 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Sep 21 19:23:18 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=78b49d45

ebuild-vars.tex: Allow other tokens in PROPERTIES.

The spec allows other tokens for RESTRICT but not for PROPERTIES.
There appears to be not good reason to treat the variables differently
in this respect.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-vars.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 476ea13..cd03882 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -227,7 +227,7 @@ The following tokens are permitted inside \t{PROPERTIES}:
 installed.
 \end{description}
 
-Ebuilds may not rely upon any token being supported.
+Package managers may recognise other tokens. Ebuilds may not rely upon any 
token being supported.
 
 \subsection{Restrict}
 \label{sec:restrict}



[gentoo-commits] proj/pms:master commit in: /

2020-09-21 Thread Ulrich Müller
commit: 9d681052334b8b581e0c1218a0fc0c4f6897d091
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Sep 21 19:13:22 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Sep 21 19:13:22 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=9d681052

pms.cls: Remove some tex4ht conditionals.

mathptmx.sty and helvet.sty work just fine. (Apparently Helvetica
isn't used, but leave the package in place.)

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index 88dbb89..a5e3084 100644
--- a/pms.cls
+++ b/pms.cls
@@ -11,6 +11,7 @@
 \ProcessOptions\relax
 \LoadClass{\ClassToLoad}
 \PassOptionsToPackage{T1}{fontenc}
+\PassOptionsToPackage{scaled=0.92}{helvet}
 \PassOptionsToPackage{orig,english}{isodate}
 % Dimensions of the text area. Define a narrow left margin to make
 % room for margin notes in the right (outer) margin
@@ -28,6 +29,8 @@
 % algorithmic and algorithm to be loaded last to avoid failures
 \RequirePackage{%
 fontenc,% Load extended font sets
+mathptmx,   % Use Postscript fonts: Times ...
+helvet, % ... and Helvetica
 isodate,% Date formatting and conversions
 geometry,   % Set page layout
 inputenc,   % Allow input methods apart from ASCII
@@ -56,10 +59,8 @@
 \newboolean{TEX4HT-HACKS}
 \ifx\HCode\undefined
 \RequirePackage{%
-mathptmx,
 pdfpages% Insert whole PDF documents as separate pages
 }
-\RequirePackage[scaled=.90]{helvet}
 \setboolean{TEX4HT-HACKS}{false}
 \else
 \setboolean{TEX4HT-HACKS}{true}



[gentoo-commits] proj/pms:master commit in: /

2020-09-21 Thread Ulrich Müller
commit: 06cfb9db11d6708fd0fe911bbceaa45e93d18dbc
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Sep 21 19:19:04 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Sep 21 19:19:04 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=06cfb9db

pms.tex: Fix an \includepdf warning in DVI mode.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/pms.tex b/pms.tex
index f9b2460..e2e434c 100644
--- a/pms.tex
+++ b/pms.tex
@@ -86,12 +86,11 @@
 
 \ifthenelse{\boolean{TEX4HT-HACKS}}{%
 \chapter{Desk Reference}
-
 \href{eapi-cheatsheet.pdf}{EAPI Cheat Sheet}
 }{%
 % Make sure that the cheat sheet starts on an odd page
 \clearpage\ifthenelse{\isodd{\thepage}}{}{\null\newpage}%
-\includepdf[pages=-,landscape,turn=false,%
+\includepdf[pages=-,landscape,turn=false,lastpage=2,%
 addtotoc={1,chapter,0,Desk Reference,cheatsheet}]{eapi-cheatsheet}
 }
 



[gentoo-commits] proj/pms:master commit in: /

2020-08-06 Thread Ulrich Müller
commit: 29644801858ad0fffc23f1dcfc444e2da827ed64
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Jul 14 16:09:47 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Jul 14 16:09:47 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=29644801

glossary: The term "slave repository" is not used anywhere else.

So we need not explain it in the glossary.

Signed-off-by: Ulrich Müller  gentoo.org>

 glossary.tex | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/glossary.tex b/glossary.tex
index f8cd376..181febc 100644
--- a/glossary.tex
+++ b/glossary.tex
@@ -8,10 +8,10 @@ be immediately obvious.
 \item[qualified package name] A package name along with its associated 
category. For example,
 \t{app-editors/vim} is a qualified package name.
 \item[stand-alone repository] An (ebuild) repository which is intended to 
function on its own as the
-only, or primary, repository on a system. Contrast with \i{slave 
repository} below.
-\item[slave repository, non-stand-alone repository] An (ebuild) repository 
which is not complete
-enough to function on its own, but needs one or more \i{master 
repositories} to
-satisfy dependencies and provide repository-level support files. Known in 
Portage as an overlay.
+only, or primary, repository on a system. Contrast with \i{non-stand-alone 
repository} below.
+\item[non-stand-alone repository] An (ebuild) repository which is not complete 
enough to function
+on its own, but needs one or more \i{master repositories} to satisfy 
dependencies and provide
+repository-level support files. Known in Portage as an overlay.
 \item[master repository] See above.
 
 \end{description}



[gentoo-commits] proj/pms:master commit in: /

2020-07-07 Thread Ulrich Müller
commit: b0127163c5cb1fdd5f0c2f27135c20c90b0dca26
Author: Ulrich Müller  gentoo  org>
AuthorDate: Tue Jul  7 07:52:00 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Tue Jul  7 07:52:00 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b0127163

Cheat sheet: Update ESYSROOT, following PMS.

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-cheatsheet.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 98300c0..d4abb1a 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -433,8 +433,8 @@ differences between these previous EAPIs.
 \item[\code{SYSROOT}] The path to the root directory for
 \code{DEPEND} type dependencies.
 See \featureref{sysroot}.
-\item[\code{ESYSROOT}] The concatenation of the \code{SYSROOT}
-and \code{EPREFIX} paths, for convenience.
+\item[\code{ESYSROOT}] The concatenation of \code{SYSROOT} and
+the applicable offset-prefix. See \featureref{sysroot}.
 \item[\code{BROOT}] The prefixed root directory path for
 \code{BDEPEND} type dependencies, typically executable build
 tools.



[gentoo-commits] proj/pms:master commit in: /

2020-07-05 Thread Ulrich Müller
commit: e39511f0353770fdc4b7e4ce45b7ff0ed034b6d8
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Jun 25 18:38:51 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jul  5 19:03:44 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=e39511f0

ebuild-functions.tex: Phase functions can write to temporary dirs.

All package managers support that functions like pkg_pretend() write
to temporary directories T, TMPDIR and HOME. This is also used in the
tree, see for example bug 469210. Update the spec to match this.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-functions.tex | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4a13db6..3935800 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -6,11 +6,12 @@
 The following is a list of functions that an ebuild, or eclass, may define, 
and which will be called
 by the package manager as part of the build and/or install process. In all 
cases the package manager
 must provide a default implementation of these functions; unless otherwise 
stated this must be a
-no-op. Most functions must assume only that they have write access to the 
package's working
-directory (the \t{WORKDIR} environment variable; see 
section~\ref{sec:ebuild-env-vars}), and the
-temporary directory \t{T}; exceptions are noted below. All functions may 
assume that they have read
-access to all system libraries, binaries and configuration files that are 
accessible to normal
-users.
+no-op. All functions may assume that they have read access to all system 
libraries, binaries and
+configuration files that are accessible to normal users, as well as write 
access to the temporary
+directories specified by the \t{T}, \t{TMPDIR} and \t{HOME} environment 
variables
+(see section~\ref{sec:ebuild-env-vars}). Most functions must assume only that 
they have additional
+write access to the package's working directory (the \t{WORKDIR} environment 
variable); exceptions
+are noted below.
 
 The environment for functions run outside of the build sequence (that is, 
\t{pkg_config},
 \t{pkg_info}, \t{pkg_prerm} and \t{pkg_postrm}) must be the environment used 
for the build of the



[gentoo-commits] proj/pms:master commit in: /

2020-07-05 Thread Ulrich Müller
commit: 38e58b37949f3bd8e3fbac4bc83432cc4e3f3183
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Jun 25 18:38:51 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jul  5 18:59:18 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=38e58b37

ebuild-functions.tex: Phase functions can write to temporary dirs.

All package managers support that functions like pkg_pretend() write
to temporary directories T, TMPDIR and HOME. This is also used in the
tree, see for example bug 469210. Update the spec to match this.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-functions.tex | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 4a13db6..3935800 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -6,11 +6,12 @@
 The following is a list of functions that an ebuild, or eclass, may define, 
and which will be called
 by the package manager as part of the build and/or install process. In all 
cases the package manager
 must provide a default implementation of these functions; unless otherwise 
stated this must be a
-no-op. Most functions must assume only that they have write access to the 
package's working
-directory (the \t{WORKDIR} environment variable; see 
section~\ref{sec:ebuild-env-vars}), and the
-temporary directory \t{T}; exceptions are noted below. All functions may 
assume that they have read
-access to all system libraries, binaries and configuration files that are 
accessible to normal
-users.
+no-op. All functions may assume that they have read access to all system 
libraries, binaries and
+configuration files that are accessible to normal users, as well as write 
access to the temporary
+directories specified by the \t{T}, \t{TMPDIR} and \t{HOME} environment 
variables
+(see section~\ref{sec:ebuild-env-vars}). Most functions must assume only that 
they have additional
+write access to the package's working directory (the \t{WORKDIR} environment 
variable); exceptions
+are noted below.
 
 The environment for functions run outside of the build sequence (that is, 
\t{pkg_config},
 \t{pkg_info}, \t{pkg_prerm} and \t{pkg_postrm}) must be the environment used 
for the build of the



[gentoo-commits] proj/pms:master commit in: /

2020-06-29 Thread Ulrich Müller
commit: 01c81d95476ce0cc44aa485c36c953ca135ba410
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Jun 29 16:08:09 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Jun 29 16:08:09 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=01c81d95

Revert "pms.cls: Another workaround for tex4ht."

The workaround for gitinfo2/eso-pic is no longer needed (and won't
work anyway, as we no longer load gitinfo2 in the documentclasshook).

This reverts commit e9536369d4c032f088683bd8fddfe30d12c3dcc8.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 2 --
 1 file changed, 2 deletions(-)

diff --git a/pms.cls b/pms.cls
index d7dc8e8..88dbb89 100644
--- a/pms.cls
+++ b/pms.cls
@@ -62,8 +62,6 @@
 \RequirePackage[scaled=.90]{helvet}
 \setboolean{TEX4HT-HACKS}{false}
 \else
-% Prevent implicit loading of eso-pic (by gitinfo2)
-\@namedef{v...@eso-pic.sty}{/12/31}
 \setboolean{TEX4HT-HACKS}{true}
 \fi
 



[gentoo-commits] proj/pms:master commit in: /

2020-06-28 Thread Ulrich Müller
commit: 039b450670c4b7c632c0c4b52f3f4dfed3e7ae15
Author: James Le Cuirot  gentoo  org>
AuthorDate: Sun Jul 28 21:37:35 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jun 28 09:01:27 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=039b4506

Correct the definition of ESYSROOT as EPREFIX isn't always applicable

It was originally envisaged (but not stated in PMS) that SYSROOT would
only ever need to equal / or ROOT as a distinct SYSROOT would have no
benefit. A check was added to Portage to ensure this held. Myself, the
ChromiumOS team, and others have since been caught out by this check
when trying to bootstrap brand new systems from scratch. You cannot
bootstrap with no headers at all! The check will therefore be adjusted
to merely ensure that SYSROOT is / when ROOT is /.

There were differing assumptions about how prefixes applied to the
above. EPREFIX is traditionally something the user sets so some
thought that it would be applied to SYSROOT, regardless of the
latter's value. In order to honor the rule about there being no
distinct SYSROOT, this would mean that if SYSROOT is / then EPREFIX
would have to match BROOT. Despite that limitation, ESYSROOT was
written into PMS with a fixed value of ${SYSROOT}${EPREFIX}. Being
somewhat unfamiliar with prefix at the time, I didn't realise that
this view didn't align with what I'd had in mind and it was only when
I came to need a distinct SYSROOT that I realised there was a problem.

crossdev toolchains are installed to ${EPREFIX}/usr/${CHOST} but have
no further prefix appended and packages subsequently installed with
cross-emerge are placed in this location by setting ROOT. Bug #642604
recently revealed that the build system's prefix was being erroneously
duplicated on the end but I have now fixed this.

What if we want to bootstrap a brand new prefixed system using the
crossdev system as SYSROOT? This is the distinct SYSROOT case. The
problem is that there is no distinct variable for SYSROOT's prefix
and, as already stated, ESYSROOT is always ${SYSROOT}${EPREFIX}. We
therefore cannot do it! If the crossdev prefix is blank then ROOT's
must be blank too.

I also never intended to have the aforementioned limitation where
EPREFIX must match BROOT when SYSROOT is /. These are both entirely
artificial restrictions.

So how should it work instead? We originally intended for SYSROOT to
equal either / or ROOT so I imagined the prefix would automatically be
adjusted to match the prefix applicable at the matching location,
namely BROOT or EPREFIX. This is obviously more flexible than forcing
it to match EPREFIX.

What about the distinct SYSROOT case? With no distinct variable, we
have no way to explicitly set a prefix but this is likely only needed
when bootstrapping against crossdev systems, which are unprefixed by
nature. We therefore simply assume that the prefix is blank in this
case.

What about the cross-prefix case? Here, SYSROOT matches both / and
ROOT so which prefix do we choose? The bootstrap-prefix.sh script sets
flags to build against the target prefix so EPREFIX is used in this
case. This happens to fit the current definition of ESYSROOT anyway.

Legitimate concerns have been raised about building for a system with
a different prefix to the one you're building against. The only
binaries that leak from SYSROOT to ROOT are static libraries. Headers
from SYSROOT will obviously also influence how ROOT's binaries are
built. It is entirely possible that SYSROOT's prefix may leak through
a header but grepping /usr/include on my own main system reveals only
a few paths from a small handful of packages. pkg-config files
invariably include paths but these are almost always used at build
time, not runtime. A differing prefix would likely only occur in cases
involving core packages like the libc and kernel headers anyway. Also
consider that we have never prevented this from happening in the
past. It has always been possible to do "EPREFIX=/foo emerge bar" from
some system with a different prefix or no prefix at all. All we're
doing here is including the prefix (if any) in the ESYSROOT variable.

Should this warrant a new EAPI? I don't think so. All existing usage
of ESYSROOT that I have seen still fits with this new definition and
most of that usage has come from me. We're not even changing what the
variable is used for, just loosening the constraints around what it
can be set to.

If you have doubts about whether this makes sense or actually works in
practise, I have experimented with a prefixed system using all the
different combinations I could think of, including cross-compiling,
and it all worked as expected. Keep in mind that ESYSROOT is not magic
and currently isn't used very much. As such, neither the toolchain nor
pkg-config will use this sysroot if you don't explicitly tell them
to. For the former, I find CC="${CHOST}-gcc --sysroot=${ESYSROOT}"
works well. For the latter, crossdev installs a 

[gentoo-commits] proj/pms:master commit in: /

2020-06-28 Thread Ulrich Müller
commit: 1a510e755d964b4b96a1cbc429b3e5774e8234bc
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Jun 24 16:39:44 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Jun 24 16:39:44 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=1a510e75

pms.cls: Drop the caption package because it interferes with TeX4ht.

The "caption" package already caused issues in the past (for example,
see commits b35f619 and 467f1b7), and version v3.4h finally broke the
list of tables in HTML output. TeX4ht upstream says that the package
should be avoided: https://puszcza.gnu.org.ua/bugs/?313#comment8

Positioning the caption above the table is simple enough without using
the package. So we only lose the boldface labels which is a very minor
issue.

As an added bonus, this allows removal of most workarounds that were
necessary for TeX4ht.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.cls | 67 +++--
 1 file changed, 28 insertions(+), 39 deletions(-)

diff --git a/pms.cls b/pms.cls
index d7047cf..d7dc8e8 100644
--- a/pms.cls
+++ b/pms.cls
@@ -17,8 +17,6 @@
 \PassOptionsToPackage{textwidth=400pt,textheight=700pt,
 left=20mm,marginparsep=10pt,marginparwidth=40mm,
 vmarginratio=1:2,includehead}{geometry}
-% Position caption of float environments at the top
-\PassOptionsToPackage{position=top,labelfont=bf}{caption}
 % Enable UTF-8 input encoding
 \PassOptionsToPackage{utf8}{inputenc}
 \PassOptionsToPackage{quiet}{marginnote}
@@ -43,20 +41,14 @@
 parskip,% Space between paragraphs instead of indentation
 underscore, % Allow simple _ instead of \_
 chngcntr,   % Redefinition of counters
-tocbibind   % Add bibliography to table of contents
+tocbibind,  % Add bibliography to table of contents
+float,  % More control over float environments
+hyperref,   % Support for hyperlinks
+gitinfo2,   % Metadata from git
+algorithm,  %
+algorithmic % Set algorithms
 }
 
-% tex4ht workaround: hyperref needs to be loaded /after/ tex4ht injects itself
-\g@addto@macro\@documentclasshook{
-\RequirePackage{
-caption,% Extended float environment formatting
-float,  % More control over float environments
-hyperref,   % Support for hyperlinks
-gitinfo2,   % Metadata from git
-algorithm,  %
-algorithmic % Set algorithms
-}
-}
 \ClassInfo{pms}{Capsulation of LaTeX stuff for the Package Manager
 Specification, loaded baseclass: \ClassToLoad\MessageBreak}
 
@@ -75,15 +67,6 @@
 \setboolean{TEX4HT-HACKS}{true}
 \fi
 
-% tex4ht workaround: these need to happen after loading the float package
-\g@addto@macro\@documentclasshook{
-\floatstyle{ruled}
-\captionsetup[ruled]{labelsep=default,labelfont=bf}
-\newfloat{listing}{tbp}{lol}[chapter]
-\floatname{listing}{Listing}
-}
-\newcommand{\listoflistings}{\listof{listing}{List of Listings}}
-
 % Define own label and reference commands, that display the label in
 % the page margin.
 \ifthenelse{\boolean{TEX4HT-HACKS}}{%
@@ -117,11 +100,8 @@
 \counterwithout{footnote}{chapter}
 
 % Some shorthands for the lazy ones.
-% tex4ht workaround: this needs to happen after loading hyperref
-\g@addto@macro\@documentclasshook{
-\renewcommand{\i}[1]{\textit{#1}}
-\renewcommand{\t}[1]{\texttt{#1}}
-}
+\renewcommand{\i}[1]{\textit{#1}}
+\renewcommand{\t}[1]{\texttt{#1}}
 \newcommand{\e}[1]{\emph{#1}}
 \newcommand{\note}[1]{\begin{trivlist}\item\textbf{Note:} #1\end{trivlist}}
 
@@ -138,6 +118,17 @@
 % Define a new column type P for tables, like p but with ragged-right text
 \newcolumntype{P}[1]{>{\setlength\rightskip{0pt plus 1fil}}p{#1}}
 
+% Define a float environment for listings
+\floatstyle{ruled}
+\newfloat{listing}{tbp}{lol}[chapter]
+\floatname{listing}{Listing}
+\newcommand{\listoflistings}{\listof{listing}{List of Listings}}
+
+% We always place captions above floats, so redefine vertical spacings
+% Don't use the "caption" package because it interferes with TeX4ht
+\setlength\belowcaptionskip{\abovecaptionskip}
+\setlength\abovecaptionskip{0pt}
+
 % Prevent numbers in list of tables from overrunning into the table captions
 \renewcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{2.8em}} % was 2.3em
 \let\l@table\l@figure
@@ -148,18 +139,16 @@
 \setlength\emergencystretch{1em} % was 0
 
 % Define some PDF meta-data.
-% tex4ht workaround: this needs to happen after loading hyperref
-\g@addto@macro\@documentclasshook{
-\hypersetup{%
-urlcolor=black,
-colorlinks=true,
-citecolor=black,
-linkcolor=black,
-pdflang={en},
-pdfcreator={pdfLaTeX and hyperref},
-pdfproducer={pdfLaTeX and hyperref},
-}
+\hypersetup{%
+urlcolor=black,
+colorlinks=true,
+citecolor=black,
+linkcolor=black,
+pdflang={en},
+pdfcreator={pdfLaTeX and hyperref},
+pdfproducer={pdfLaTeX and 

[gentoo-commits] proj/pms:master commit in: /

2020-06-15 Thread Ulrich Müller
commit: ee879159b86b19cb72ccd708eb7a42de664f72c9
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Jun 15 17:03:21 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Jun 15 17:03:21 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ee879159

Makefile: Remove workaround for list of tables.

This broke HTML output with TeX Live 2020. Without the workaround,
formatting within the list of tables is consistent, but the list of
tables is now inconsistent with the table of contents.

Signed-off-by: Ulrich Müller  gentoo.org>

 Makefile | 4 
 1 file changed, 4 deletions(-)

diff --git a/Makefile b/Makefile
index 612af4c..89fd7a2 100644
--- a/Makefile
+++ b/Makefile
@@ -51,10 +51,6 @@ pms.html: $(LATEXFILES) pms.bbl $(COMMITINFO)
@# replace ligatures by their component letters
LC_ALL=C sed -i "$$(printf 's/\\xef\\xac\\x8%s/%s/g;' \
  0 ff 1 fi 2 fl 3 ffi 4 ffl)" $@
-   @# work around irregularity in how links to longtables are
-   @# formatted in the List of Tables
-   LC_ALL=C sed -Ei '/\B/{N;N;'\
-   's/([^>]*)([0-9A-Z.]+)\s+/\2\1/;}' $@
@# remove redundant span elements
LC_ALL=C sed -Ei ':x;/]*)?$$/{N;bx;};'\
':y;s,(]*>)([^<]*)\1,\1\2,;ty' $@



[gentoo-commits] proj/pms:master commit in: /

2020-04-20 Thread Ulrich Müller
commit: 58d5831ef7cc673858ea85d54ff0693f6a2f9914
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Apr 11 09:56:39 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Apr 11 12:13:22 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=58d5831e

glossary.tex: Move explanation of new-style virtuals to the appendix.

The term "new-style virtual" is not used in the spec, so we need not
explain it in the glossary.

Signed-off-by: Ulrich Müller  gentoo.org>

 appendices.tex | 4 
 glossary.tex   | 4 
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/appendices.tex b/appendices.tex
index ee537f7..21716d6 100644
--- a/appendices.tex
+++ b/appendices.tex
@@ -78,6 +78,10 @@ in mind when handling dependencies.
 Old-style virtuals were supported by EAPIs \t{0}, \t{1}, \t{2}, \t{3} and 
\t{4}. They were phased
 out via GLEP 37~\cite{Glep37} and finally removed in 2011.
 
+\note{A `new-style virtual' is a normal package that installs no files and 
uses its dependency
+requirements to pull in a `provider'. This does not require any special 
handling from the package
+manager.}
+
 \subsection{EAPI parsing}
 The method to specify the EAPI of an ebuild used to be a shell variable 
assignment, and the package
 manager had to source the ebuild in order to determine the EAPI\@. Therefore 
any ebuild using

diff --git a/glossary.tex b/glossary.tex
index 5666aa2..f8cd376 100644
--- a/glossary.tex
+++ b/glossary.tex
@@ -7,10 +7,6 @@ be immediately obvious.
 \begin{description}
 \item[qualified package name] A package name along with its associated 
category. For example,
 \t{app-editors/vim} is a qualified package name.
-\item[new-style virtual] A new-style virtual is a normal package in the 
\t{virtual} category which
-installs no files and uses its dependency requirements to pull in a 
`provider'. Historically,
-old-style virtuals required special handling from the package manager; 
new-style virtuals do
-not.
 \item[stand-alone repository] An (ebuild) repository which is intended to 
function on its own as the
 only, or primary, repository on a system. Contrast with \i{slave 
repository} below.
 \item[slave repository, non-stand-alone repository] An (ebuild) repository 
which is not complete



[gentoo-commits] proj/pms:master commit in: /

2020-04-20 Thread Ulrich Müller
commit: ca1a05d5e1f79e24dcce5b0fb74a23ee2efab449
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Apr 12 11:38:23 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Apr 12 11:38:23 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=ca1a05d5

Revert "(vapier 2.1.1) document why hyphens are not required in category names"

Specific category names are tree policy and don't belong in the spec.
This reverts commit 5c9ee872cb8d953bc037c765e2ef154eb0b96e4a (svn r63).

Signed-off-by: Ulrich Müller  gentoo.org>

 names.tex | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/names.tex b/names.tex
index c8e1129..2994719 100644
--- a/names.tex
+++ b/names.tex
@@ -9,9 +9,6 @@ name. A package manager should indicate or reject any name that 
is invalid accor
 A category name may contain any of the characters [\t{A-Za-z0-9+_.-}]. It must 
not begin with
 a hyphen, a dot or a plus sign.
 
-\note{A hyphen is \e{not} required because of the \t{virtual} category. 
Usually, however, category
-names will contain a hyphen.}
-
 \subsection{Package names}
 \label{sec:package-names}
 A package name may contain any of the characters [\t{A-Za-z0-9+_-}]. It must 
not begin with a



[gentoo-commits] proj/pms:master commit in: /

2020-02-18 Thread Ulrich Müller
commit: 0d4ffd51d3dc86782dae2db9fe632f45af7eec87
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sat Feb 15 09:56:55 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Feb 15 09:56:55 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=0d4ffd51

ebuild-functions.tex: Update array detection code.

Remove the space after "declare -a" for matching "declare -p" output.
With the update of the bash version to 4.2 in EAPI 6, variables can
have other attributes in addition, which would make the test fail.
For example, see https://bugs.gentoo.org/444832#c7. The implementation
in Portage already omits the space.

Replace grep by functionally equivalent code in bash. This is how the
test is implemented in package managers, and follows the principle
that external programs should not be called unnecessarily.

Redirect stderr for "declare -p", because it outputs an error message
if the PATCHES variable is not defined.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-functions.tex | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 33c003a..4a13db6 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -133,7 +133,7 @@ as:
 \caption{\t{src_prepare}, format~6}
 \begin{verbatim}
 src_prepare() {
-if declare -p PATCHES | grep -q "^declare -a "; then
+if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
 [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
 else
 [[ -n ${PATCHES} ]] && eapply ${PATCHES}
@@ -325,13 +325,13 @@ src_install() {
 emake DESTDIR="${D}" install
 fi
 
-if ! declare -p DOCS >/dev/null 2>&1 ; then
+if ! declare -p DOCS >/dev/null 2>&1; then
 local d
 for d in README* ChangeLog AUTHORS NEWS TODO CHANGES \
-THANKS BUGS FAQ CREDITS CHANGELOG ; do
+THANKS BUGS FAQ CREDITS CHANGELOG; do
 [[ -s "${d}" ]] && dodoc "${d}"
 done
-elif declare -p DOCS | grep -q "^declare -a " ; then
+elif [[ $(declare -p DOCS) == "declare -a"* ]]; then
 dodoc "${DOCS[@]}"
 else
 dodoc ${DOCS}



[gentoo-commits] proj/pms:master commit in: /

2020-01-17 Thread Ulrich Müller
commit: 2821d4b280e383e1964033385c2e1a92b189fe0b
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Jan  5 11:38:54 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sun Jan  5 11:38:54 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2821d4b2

dependencies.tex: Don't mention blocks on provided virtuals.

This is a remnant of old-style virtuals and should have been removed
long ago.

Fixes: c8ab6b99bffa85bcd686284ba60a30f53c31c8b0
Signed-off-by: Ulrich Müller  gentoo.org>

 dependencies.tex | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 44382d1..3305b86 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -279,13 +279,8 @@ The following operators are available:
 \subsection{Block operator}
 
 If the specification is prefixed with one or two exclamation marks, the named 
dependency is a block
-rather than a requirement---that is to say, the specified package must not be 
installed, with the
-following exceptions:
-
-\begin{compactitem}
-\item Blocks on a package provided exclusively by the ebuild do not count.
-\item Weak blocks on the package version of the ebuild itself do not count.
-\end{compactitem}
+rather than a requirement---that is to say, the specified package must not be 
installed. As an
+exception, weak blocks on the package version of the ebuild itself do not 
count.
 
 \featurelabel{bang-strength} There are two strengths of block: weak and 
strong. A weak block may be
 ignored by the package manager, so long as any blocked package will be 
uninstalled later on. A



[gentoo-commits] proj/pms:master commit in: /

2020-01-17 Thread Ulrich Müller
commit: cf17bf885e702a6bbb2b00baad6ac1622c4bb718
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Jan 17 19:29:12 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Jan 17 19:29:12 2020 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=cf17bf88

Update copyright years.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pms.tex b/pms.tex
index aea0d4d..f9b2460 100644
--- a/pms.tex
+++ b/pms.tex
@@ -31,7 +31,7 @@
 \vspace*{\fill}
 {%
 \small
-\textcopyright{} 2007--2019 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
+\textcopyright{} 2007--2020 Stephen Bennett, Ciaran McCreesh and others. 
Contributions are owned
 by their respective authors, and may have been changed substantially 
before inclusion.
 
 This document is released under the Creative Commons 
Attribution-ShareAlike 3.0 Licence. The



[gentoo-commits] proj/pms:master commit in: /

2019-12-30 Thread Ulrich Müller
commit: 2f8a07cf6b41b8883ad751d0e67705ab3cd264d4
Author: Michał Górny  gentoo  org>
AuthorDate: Sun Dec 22 18:52:00 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Dec 30 14:35:25 2019 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=2f8a07cf

ebuild-vars: Remove 'simple filename' mirror fetching

The feature of using 'simple filename' to fetch from mirrors
is ill-defined (which mirrors?).  The Portage implementation works only
if GENTOO_MIRRORS are explicitly set.  It's not used in any ebuilds.
Let's remove it retroactively from the specification.

Bug: https://bugs.gentoo.org/695814
Signed-off-by: Michał Górny  gentoo.org>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-vars.tex | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 9de9d55..476ea13 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -159,11 +159,9 @@ managers may also consult mirrors for their files.
 The special \t{mirror://} protocol must be supported. See 
section~\ref{sec:thirdpartymirrors} for
 mirror details.
 
-If a simple filename rather than a full URI is provided, the package manager 
can only use mirrors
-to download the file.
-
 The \t{RESTRICT} metadata key can be used to impose additional restrictions 
upon downloading---see
-section~\ref{sec:restrict} for details.
+section~\ref{sec:restrict} for details. Fetch restricted packages may use a 
simple filename instead
+of a full URI.
 
 \featurelabel{src-uri-arrows} In EAPIs listed in 
table~\ref{tab:uri-arrows-table} as supporting
 arrows, if an arrow is used, the filename used when saving to \t{DISTDIR} 
shall instead be the name



[gentoo-commits] proj/pms:master commit in: /

2019-12-23 Thread Ulrich Müller
commit: b5b919182974a94e3d14d359edb11cd22339942e
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Dec 23 18:46:14 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Dec 23 18:46:14 2019 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b5b91918

ebuild-vars.tex: Consistent order of *DEPEND variables.

It is DEPEND, BDEPEND, RDEPEND, PDEPEND elsewhere.

Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-vars.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index 2f81db7..9de9d55 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -81,11 +81,11 @@ Ebuilds may define any of the following variables:
 \item[RESTRICT] Zero or more behaviour restrictions for this package. See 
section~\ref{sec:restrict}
 for value meanings and section~\ref{sec:dependency-spec} for full syntax.
 \item[DEPEND] See chapter~\ref{ch:dependencies}.
+\item[BDEPEND] See chapter~\ref{ch:dependencies}.
 \item[RDEPEND] See chapter~\ref{ch:dependencies}. For some EAPIs, \t{RDEPEND} 
has special behaviour
 for its value if unset and when used with an eclass. See 
section~\ref{sec:rdepend-depend} for
 details.
 \item[PDEPEND] See chapter~\ref{ch:dependencies}.
-\item[BDEPEND] See chapter~\ref{ch:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{7}



[gentoo-commits] proj/pms:master commit in: /

2019-11-25 Thread Ulrich Müller
commit: 8b404a13673c35a1fa7bf4eb4aa2b29e9ce120a2
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Nov 25 10:55:37 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Nov 25 10:55:37 2019 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=8b404a13

ebuild-functions.tex: Reorder phase functions in table.

Ordering corresponding to their call order (except pkg_nofetch).

Signed-off-by: Ulrich Müller  gentoo.org>

 eapi-differences.tex | 8 
 ebuild-functions.tex | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 4c22473..bc49a33 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -132,13 +132,13 @@ Parallel tests & \compactfeatureref{parallel-tests} &
 \t{default_} phase functions & \compactfeatureref{default-phase-funcs} &
 * &
 \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-\t{src_compile}, \t{src_install}, \t{src_test} &
+\t{src_compile}, \t{src_test}, \t{src_install} &
 \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-\t{src_compile}, \t{src_install}, \t{src_test} &
+\t{src_compile}, \t{src_test}, \t{src_install} &
 \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-\t{src_compile}, \t{src_install}, \t{src_test} &
+\t{src_compile}, \t{src_test}, \t{src_install} &
 \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure},
-\t{src_compile}, \t{src_install}, \t{src_test} \\
+\t{src_compile}, \t{src_test}, \t{src_install} \\
 
 \t{AA} & \compactfeatureref{aa} &
 Yes & No & No & No & No \\

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index 10247a8..33c003a 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -470,7 +470,7 @@ when in the phase in question.
   2, 3  & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, 
\t{src_configure},
   \t{src_compile}, \t{src_test} \\
   4, 5, 6, 7& \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, 
\t{src_configure},
-  \t{src_compile}, \t{src_install}, \t{src_test} \\
+  \t{src_compile}, \t{src_test}, \t{src_install} \\
   \bottomrule
 \end{tabular}
 \end{centertable}



[gentoo-commits] proj/pms:master commit in: /

2019-11-11 Thread Ulrich Müller
commit: b72617efdf52ad9cb67a0492ef4ef978e364c4c3
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Nov  6 17:29:10 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Nov  6 17:29:10 2019 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=b72617ef

pms.bib: Use last date listed in Post-History for GLEPs.

This seems to be a closer substitute for the publication date than
the "Created" field used until now.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.bib | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/pms.bib b/pms.bib
index 5bd52a2..e505418 100644
--- a/pms.bib
+++ b/pms.bib
@@ -1,31 +1,31 @@
 @manual{Glep37,
 author = {Jason Stubbs},
 title = {{GLEP} 37: Virtuals deprecation},
-year = 2005,
-month = Apr,
+year = 2006,
+month = Sep,
 url = {https://www.gentoo.org/glep/glep-0037.html}
 }
 
 @manual{Glep44,
 author = {Marius Mauch},
 title = {{GLEP} 44: Manifest2 format},
-year = 2005,
-month = Dec,
+year = 2006,
+month = Sep,
 url = {https://www.gentoo.org/glep/glep-0044.html}
 }
 
 @manual{Glep55,
 author = {Piotr Jaroszyński},
 title = {{GLEP} 55: Use {EAPI}-suffixed ebuilds},
-year = 2007,
-month = Dec,
+year = 2009,
+month = May,
 url = {https://www.gentoo.org/glep/glep-0055.html}
 }
 
 @manual{Glep68,
 author = {Michał Górny},
 title = {{GLEP} 68: Package and category metadata},
-year = 2016,
-month = Apr,
+year = 2018,
+month = Feb,
 url = {https://www.gentoo.org/glep/glep-0068.html}
 }



[gentoo-commits] proj/pms:master commit in: /

2019-11-11 Thread Ulrich Müller
commit: 561197425c2f43afdbfd2f29343f26ae4d4f7693
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Nov  6 17:37:15 2019 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Nov  6 17:37:15 2019 +
URL:https://gitweb.gentoo.org/proj/pms.git/commit/?id=56119742

pms.bib: Add GLEP 74 to bibliography.

GLEP 74 has replaced GLEP 44, so use it as reference for the Manifest
file.

Signed-off-by: Ulrich Müller  gentoo.org>

 pms.bib | 8 
 tree-layout.tex | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/pms.bib b/pms.bib
index e505418..8b718af 100644
--- a/pms.bib
+++ b/pms.bib
@@ -29,3 +29,11 @@
 month = Feb,
 url = {https://www.gentoo.org/glep/glep-0068.html}
 }
+
+@manual{Glep74,
+author = {Michał Górny and Robin Hugh Johnson and Ulrich Müller},
+title = {{GLEP} 74: Full-tree verification using Manifest files},
+year = 2018,
+month = Feb,
+url = {https://www.gentoo.org/glep/glep-0074.html}
+}

diff --git a/tree-layout.tex b/tree-layout.tex
index f84f6f5..80d70d6 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -52,7 +52,7 @@ A package directory contains the following:
 \item A \t{metadata.xml} file, as described in 
appendix~\ref{ch:metadata-xml}\@. Optional only for
 legacy support.
 \item A \t{ChangeLog}, in a format determined by the provider of the 
repository. Optional.
-\item A \t{Manifest} file, whose format is described in~\cite{Glep44}. Can be 
omitted if the file
+\item A \t{Manifest} file, whose format is described in~\cite{Glep74}. Can be 
omitted if the file
 would be empty.
 \item A \t{files} directory, containing any support files needed by the 
ebuilds. Optional.
 \end{compactitem}



  1   2   3   >