summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* pms.cls: Do not define \e for \emphHEADmasterUlrich Müller10 days10-14/+13
| | | | | | | | 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 <ulm@gentoo.org>
* pms.tex: Update copyright yearsUlrich Müller10 days1-1/+1
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Reinstate TeX4ht/hyperref workaroundUlrich Müller10 days1-14/+26
| | | | | | | This had been removed in commit 1a510e7, but apparently it is needed again with TeX Live 2021. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-env-vars.tex: Clarify wording for profile IUSE injectionUlrich Müller2021-04-151-7/+4
| | | | | | | | | | | 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 <ulm@gentoo.org>
* pms.cls: Silence hyperref messagesUlrich Müller2021-01-161-0/+4
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Revert "pms.cls: Remove some tex4ht conditionals."Ulrich Müller2020-09-281-2/+2
| | | | | | | | | 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 <ulm@gentoo.org>
* ebuild-vars.tex: Allow other tokens in PROPERTIES.Ulrich Müller2020-09-211-1/+1
| | | | | | | | 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 <ulm@gentoo.org>
* pms.tex: Fix an \includepdf warning in DVI mode.Ulrich Müller2020-09-211-2/+1
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Change line length to reflect what is actually used.Ulrich Müller2020-09-211-2/+2
| | | | | | fill-column (Emacs) and tw (Vim) set to 80. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Remove some tex4ht conditionals.Ulrich Müller2020-09-211-2/+3
| | | | | | | 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 <ulm@gentoo.org>
* glossary: The term "slave repository" is not used anywhere else.Ulrich Müller2020-07-141-4/+4
| | | | | | So we need not explain it in the glossary. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Cheat sheet: Update ESYSROOT, following PMS.Ulrich Müller2020-07-071-2/+2
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-functions.tex: Phase functions can write to temporary dirs.Ulrich Müller2020-07-051-5/+6
| | | | | | | | 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 <ulm@gentoo.org>
* Revert "pms.cls: Another workaround for tex4ht."Ulrich Müller2020-06-291-2/+0
| | | | | | | | | 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 <ulm@gentoo.org>
* Correct the definition of ESYSROOT as EPREFIX isn't always applicableJames Le Cuirot2020-06-282-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 cross-pkg-config wrapper but it is completely lacking prefix support at the moment. I have fixes waiting on this change. Signed-off-by: James Le Cuirot <chewi@gentoo.org> [Replaced "/" by "empty", reworded table cell in ebuild-env-vars.tex] Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Drop the caption package because it interferes with TeX4ht.Ulrich Müller2020-06-241-39/+28
| | | | | | | | | | | | | | | | 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 <ulm@gentoo.org>
* Makefile: Remove workaround for list of tables.Ulrich Müller2020-06-151-4/+0
| | | | | | | | 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 <ulm@gentoo.org>
* Revert "(vapier 2.1.1) document why hyphens are not required in category names"Ulrich Müller2020-04-121-3/+0
| | | | | | | 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 <ulm@gentoo.org>
* glossary.tex: Move explanation of new-style virtuals to the appendix.Ulrich Müller2020-04-112-4/+4
| | | | | | | 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 <ulm@gentoo.org>
* ebuild-functions.tex: Update array detection code.Ulrich Müller2020-02-151-4/+4
| | | | | | | | | | | | | | | | | 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 <ulm@gentoo.org>
* Update copyright years.Ulrich Müller2020-01-171-1/+1
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* dependencies.tex: Don't mention blocks on provided virtuals.Ulrich Müller2020-01-051-7/+2
| | | | | | | | This is a remnant of old-style virtuals and should have been removed long ago. Fixes: c8ab6b99bffa85bcd686284ba60a30f53c31c8b0 Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-vars: Remove 'simple filename' mirror fetchingMichał Górny2019-12-301-4/+2
| | | | | | | | | | | 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 <mgorny@gentoo.org> Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-vars.tex: Consistent order of *DEPEND variables.Ulrich Müller2019-12-231-1/+1
| | | | | | It is DEPEND, BDEPEND, RDEPEND, PDEPEND elsewhere. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-functions.tex: Reorder phase functions in table.Ulrich Müller2019-11-252-5/+5
| | | | | | Ordering corresponding to their call order (except pkg_nofetch). Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.bib: Add GLEP 74 to bibliography.Ulrich Müller2019-11-062-1/+9
| | | | | | | GLEP 74 has replaced GLEP 44, so use it as reference for the Manifest file. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.bib: Use last date listed in Post-History for GLEPs.Ulrich Müller2019-11-061-8/+8
| | | | | | | This seems to be a closer substitute for the publication date than the "Created" field used until now. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* get_libdir: Clarify that it must be a shell function.Ulrich Müller2019-10-181-2/+2
| | | | | | It is implemented as a bash function in all package managers. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* doins, dodoc: Clarify how directories are created.Ulrich Müller2019-10-011-5/+6
| | | | | | | | | | | | | | | | | | | With the -r option, it was unspecified what the mode of any created directories is. Clarify that doins -r will create them as if dodir was called (i.e., respect diropts), and that dodoc -r will create them as if plain install -d was used. For doins, this agrees with package manager implementations. For dodoc, this agrees with historic Paludis behaviour. Portage behaviour has changed in the past, when dodoc was changed from a standalone helper to reusing parts of doins. Usage in the Gentoo repository indicates that no ebuilds call diropts specifically for installing of documentation. However, for several ebuilds dodoc -r is affected by diropts called previously for another directory, which looks like an unwanted side effect. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* profiles.tex: Wording and typographic fix.Ulrich Müller2019-08-251-1/+1
| | | | | | | The phrase "once again" referred to the preceding virtuals subsection, which was removed in commit c8ab6b99bffa85bcd686284ba60a30f53c31c8b0. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* tree-layout.tex: Typographic fix.Ulrich Müller2019-08-241-1/+1
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pkg-mgr-commands.tex: Fix indentation in einstall listing.Ulrich Müller2019-08-101-10/+10
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* eapi-cheatsheet.tex: Specify --with-sysroot in econf correctly.Ulrich Müller2019-08-011-3/+2
| | | | | | Also reword the sentence, in order to prevent an overfull box. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pkg-mgr-commands.tex: Specify --with-sysroot in econf correctly.Ulrich Müller2019-07-291-1/+1
| | | | | | | | | If ESYSROOT is empty, then econf must pass --with-sysroot="/" as option to configure. This agrees with the implementation in portage and pkgcore. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-env-vars.tex: Clarify trailing slash rule.Ulrich Müller2019-07-291-2/+3
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Recognise "live" as token in PROPERTIES.Ulrich Müller2019-07-191-0/+2
| | | | | Bug: https://bugs.gentoo.org/690220 Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Drop unused verbatim.sty.Ulrich Müller2019-07-101-1/+0
| | | | | | Only needed for \verbatiminput which is no longer used in the text. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pkg-mgr-commands: Correct ver_cut and ver_rs to use ${PV} by defaultMichał Górny2019-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Correct the description of ver_cut and ver_rs commands to indicate that they process ${PV} when no version argument is specified, rather than wrongly ${PVR}. It seems that the latter was introduced as a typo, as it neither agrees with initial Bugzilla proposal of the function [1], pre-EAPI implementation in eapi7-ver.eclass [2] or EAPI 7 cheatsheet in PMS. Furthermore, it simply makes little sense as the common usage of those functions is to manipulate URLs and filenames, and those do not use ebuild revisions.. It is also how it was implemented in Portage, and initially in PkgCore (afterwards the PkgCore implementation changed to conform to PMS, with expectably breaking results). [1] https://bugs.gentoo.org/482170#c15 [2] https://gitweb.gentoo.org/repo/gentoo.git/commit/eclass/eapi7-ver.eclass?id=59a1a0dda7300177a263eb1de347da493f09fdee Bug: https://bugs.gentoo.org/689494 Signed-off-by: Michał Górny <mgorny@gentoo.org>
* ebuild-env-vars.tex: Allow SYSROOT & BROOT in pkg_setupMichał Górny2019-05-131-3/+4
| | | | | | | | Allow using SYSROOT & BROOT in pkg_setup(), when building from source. This follows the earlier change allowing for build-time dependencies in pkg_setup under the same circumstances. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* eapi-cheatsheet.tex: Fix colour of cross reference links.Ulrich Müller2019-04-071-0/+1
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Drop page references when processing with tex4ht.Ulrich Müller2019-04-072-10/+11
| | | | | | | They are meaningless in the HTML output. Delete \pageref in the text; it was used only once. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* pms.cls: Change bibliographystyle to unsrturl.Ulrich Müller2019-04-072-9/+10
| | | | | | | This will list references in order of citation. Also, use the url field to specify URLs. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* dependencies.tex: Reorder variables to match ebuild-vars section.Ulrich Müller2019-03-241-4/+4
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Refer to chapters as chapters.Ulrich Müller2019-03-2413-47/+42
| | | | | | | Also rename label prefixes, "ch:" for chapters, "sec:" for sections, as suggested by Michael Orlitzky. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Promote "Package Dependency Specifications" to section.Ulrich Müller2019-03-241-5/+5
| | | | | | | | Its subsubsections "Operators", "Block operator", "Slot dependencies", and "2-style and 4-style USE dependencies" will become subsections, so the maximum section number depth of the document will be 2. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-vars.tex: More precise cross references.Ulrich Müller2019-03-241-8/+9
| | | | | | | Where appropriate, refer to the "Dependency Specification Format" section, instead of the "Dependencies" chapter. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Move some subsections out of the "Dependencies" chapter.Ulrich Müller2019-03-243-84/+86
| | | | | | | | | | SRC_URI, REQUIRED_USE, PROPERTIES, and RESTRICT are ebuild-defined variables. Move them to that chapter. Add reference to tab:uri-arrows-table in SRC_URI section. Otherwise, no change of wording. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Makefile: Change encoding of HTML file to UTF-8.Ulrich Müller2019-03-111-8/+8
| | | | | | | | | | This will allow to drop the dependency on app-text/recode. Replace ligatures in tex4ht output by their components, because they would interfere with text search. Update sed expression for the list of tables workaround. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* ebuild-functions.tex: S to WORKDIR fallback is conditional for src_test.Ulrich Müller2019-03-051-4/+6
| | | | | | | | | | | | | | | | | | | | Arguably, section 9.1.1 "Initial working directories" applies also to src_test, even if section 9.1.8 "src_test" doesn't refer back to 9.1.1. In src_test, a fallback from S to WORKDIR could only happen for an ebuild that: - Has no files in A to be unpacked. - Doesn't define any of the unpack, prepare, configure, compile or install phases (otherwise it would die in one of these phases). Since that scenario is very unlikely, fix the wording in section 9.1.8 retroactively for EAPI 4 and later. Note: Implementations also differ about this: portage will always fall back, while for pkgcore it is a conditional error. Closes: https://bugs.gentoo.org/652050 Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* Cheat sheet: Whitespace.Ulrich Müller2019-03-031-1/+1
| | | | Signed-off-by: Ulrich Müller <ulm@gentoo.org>