Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 616206 - EAPI 6 reapproval
Summary: EAPI 6 reapproval
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: PMS/EAPI (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Gentoo Council
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-21 13:11 UTC by Ulrich Müller
Modified: 2017-05-14 20:04 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ulrich Müller gentoo-dev 2017-04-21 13:11:27 UTC
EAPI 6 (as it was approved in 2015) has introduced a default implementation of the src_prepare phase function which will apply a list of patches from the PATCHES variable:
https://projects.gentoo.org/pms/6/pms.html#x1-99001r2
The idea was that ebuilds should assign PATCHES in global scope, without the need to define an explicit phase function, therefore making their style less functional and more declarative.

As it turned out, this is flawed. Patch files will typically live in FILESDIR or DISTDIR, but these variables are only defined in the src_* phases. (The implementation in the three package managers does assign them in global scope, however.) Subsequently, the PMS team has updated the definition of these variables to be valid in global scope and to have a consistent value.

Also some other minor changes have been committed to the PMS git repository since the last council-approved version (bug 565700), see the list included below.

I therefore ask the council to approve the PMS version corresponding to this commit:
https://gitweb.gentoo.org/proj/pms.git/commit/?id=ca463ce502ee81bfbfb2e9afe63895faad1379fc

Rendered versions in PDF and HTML can be found here (the PDF version is authoritative, in the unlikely case of discrepancies):
https://dev.gentoo.org/~ulm/pms/2017-04-16-for-approval/pms.pdf
https://dev.gentoo.org/~ulm/pms/2017-04-16-for-approval/pms.html

Please vote (yes/no/abstain).


======================================================================

List of non-trivial PMS changes since the last council approved version:

1. Valid characters in license names
------------------------------------
Old: No restrictions
New: [A-Za-z0-9+_.-] and must not begin with a hyphen, dot or plus sign
Rationale: Allowing arbitrary characters could conflict with e.g. USE-conditional syntax. It also agrees with usage in the tree (historically, one single non-compliant license name "D&R", removed in 2006).
Commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=4a48d5b25f4e9b687427d47932cc4692adad10ec

2. Manifest files in package directories
----------------------------------------
Old: Mandatory
New: Can be omitted if empty
Rationale: With thin manifests the file can end up empty (e.g., if the package contains only live ebuilds). Current practice is to leave such empty files out.
Commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=e8e5e57caa1179a262aad362ba9a65e938257159

3. Behaviour of = slot operator
-------------------------------
Old: Record slot of matching package at install time
New: Record at build time, require matching package to be installed
Rationale: The common use case is to indicate that the build binds to a specific package version, which must be installed at build time. For example, binary package must be bound to the dependency's slot at build time, not at install time.
Commits:
https://gitweb.gentoo.org/proj/pms.git/commit/?id=c7d44d3a42c4777d77f61fbd90480f3fbd5f0515
https://gitweb.gentoo.org/proj/pms.git/commit/?id=3eb1886b944c912129f795b11a48ee2d14e71949

4. Consistency of PF across ebuild phases
-----------------------------------------
Old: Consistent
New: Not consistent
Rationale: Similar to P and PN, also the PF variable can change when the package is moved to another name.
Commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=01c2758ef0a91b81267fed85cc16d009c309bc9c

5. Scope of A (and AA) variable
-------------------------------
Old: src_*
New: src_*, pkg_nofetch
Rationale: Common usage in ebuilds, consistent with implementation in package managers.
Commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=f9faa16a59659e176b2acf435bf5ec174c39b3ed

6. Scope and consistency of FILESDIR and DISTDIR
------------------------------------------------
Old: src_* (not consistent across ebuild phases)
New: src_*, global scope (consistent). No access to the dir in global scope.
Rationale: These variables must be defined in global scope for assignment of the PATCHES variable in EAPI 6. However, the actual directories are not necessarily present in global scope (e.g., when installing from a binary package) and therefore must not be accessed there.
Commits:
https://gitweb.gentoo.org/proj/pms.git/commit/?id=fa4ac9474048ec75af138fc61f22485c06aac5b7
https://gitweb.gentoo.org/proj/pms.git/commit/?id=22a0ce7c0fe649572956f60d13e1003ced401689
https://gitweb.gentoo.org/proj/pms.git/commit/?id=00dfb42f757b356ed71693b962387dda0bc2f89a
https://gitweb.gentoo.org/proj/pms.git/commit/?id=b18166a8482c01a365b11efa12d72282b88e4d86

7. Scope of WORKDIR
-------------------
Old: src_*, global scope
New: src_*, global scope. No access to the dir in global scope.
Rationale: Same as for FILESDIR and DISTDIR.
Commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=f2ac6d06fae4923d0c913f9aa84452920e06ddb9

8. DIROPTIONS, EXEOPTIONS, INSOPTIONS, and LIBOPTIONS variables
---------------------------------------------------------------
Old: Mentioned in definition of *opts commands
New: Not mentioned
Rationale: Internal variables of the package manager which can be set only with the diropts, exeopts, insopts, and libopts commands. In addition, they were never listed in the variables table.
Commit: https://gitweb.gentoo.org/proj/pms.git/commit/?id=a75487848fb744906ed16d6f3e03708898d213ec


======================================================================

$ git log --oneline eapi-6-approved-2015-11-13..HEAD
ca463ce More consistent capitalisation of headings.
1d89f03 pkg-mgr-commands: dohard, both paths are relative to D/ED
f2ac6d0 WORKDIR has the same scope as FILESDIR and DISTDIR.
7a04d1e Revert "WORKDIR and S have the same scope as FILESDIR and DISTDIR."
f90b3c6 Improve positioning of tables and other floats.
251bdc7 In captions, use teletype font where appropriate.
38cda9b All EAPIs supporting controllable compression are also prefix aware.
dc6afee Makefile: Move cleanup of aux files into separate rule.
4195eaa Remove contradiction in historical curiosities chapter.
f9faa16 A is legal in pkg_nofetch.
65d3836 WORKDIR and S have the same scope as FILESDIR and DISTDIR.
b18166a ebuild-env-vars: Require DISTDIR & FILESDIR to be consistent
00dfb42 ebuild-env-vars: Allow FILESDIR to be a shadow directory
f017d65 pms.cls: Drop unused color.sty.
1bf9b22 Update copyright years.
01c2758 ebuild-env-vars.tex: PF has the same consistency behaviour as P.
3d0f218 Makefile: Add vc as prerequisite for vc.tex.
1dd0466 pkg-mgr-commands.tex: LZMA Utils replaced by XZ Utils.
422fb36 Makefile: Update sed command to remove span spam in tex4ht output.
6d2b924 Makefile: Use $@ rather than explicit target name.
e56c688 Makefile: Remove some workarounds for tex4ht bugs.
4a5b780 ebuild-vars.tex: Fix typo in IUSE description.
3eb1886 dependencies.tex: Explicitly require matching package for :=
c7d44d3 dependencies.tex: Record slot for := at build time, not install time
5b1638a pkg-mgr-commands.tex: List installation commands in alphabetical order.
ce959f3 vc: Sync from dev-tex/vc-0.5-r1.
bc56fb9 Remove unused labels.
e8e5e57 tree-layout.tex: Clarify that empty Manifest files can be omitted.
f2241b9 tree-layout.tex: Remove item list of ebuild file name components.
0c0488b Makefile: mk4ht must be run three times for some longtables.
4a48d5b Specify restrictions upon license names.
22a0ce7 Restore proper scope for PORTDIR and ECLASSDIR.
41ebe20 In footnotes, end complete sentences with full stops.
fa4ac94 Define the FILESDIR variable in global scope.
5b2f4cf Use \textbackslash rather than math mode.
f0cd8a2 Typographic fix: Suppress vertical space after featurelabel.
571fb06 Typographic fix: Use compactitem rather than itemize.
1afb71f pms.cls: Include subsubsections in table of contents.
046641a pms.cls: Reformat macro definition for readability.
3d40a84 appendices.tex: metadata.xml is now specified by GLEP 68
44ff2c6 credits.tex: Formatting fix.
9dbea8e credits.tex: Update copyright notice.
26df526 pkg-mgr-commands.tex: Typo.
fbcb587 Appendix: Include EAPI differences sections in table of contents.
1da137e Appendix: Do not number sections.
14d9ddf Suppress header line on credits page.
20cfbe6 REPLACING_VERSIONS: Clarify what whitespace-separated means.
a754878 Do not mention various *OPTIONS variables.
Comment 1 Ulrich Müller gentoo-dev 2017-04-21 13:12:23 UTC
> I therefore ask the council to approve the PMS version corresponding to this
> commit:
> https://gitweb.gentoo.org/proj/pms.git/commit/
> ?id=ca463ce502ee81bfbfb2e9afe63895faad1379fc
> 
> Rendered versions in PDF and HTML can be found here (the PDF version is
> authoritative, in the unlikely case of discrepancies):
> https://dev.gentoo.org/~ulm/pms/2017-04-16-for-approval/pms.pdf
> https://dev.gentoo.org/~ulm/pms/2017-04-16-for-approval/pms.html
> 
> Please vote (yes/no/abstain).

I vote yes.
Comment 2 Andreas K. Hüttel archtester gentoo-dev 2017-04-21 20:02:47 UTC
(In reply to Ulrich Müller from comment #1)
> > I therefore ask the council to approve the PMS version corresponding to this
> > commit:
> > https://gitweb.gentoo.org/proj/pms.git/commit/
> > ?id=ca463ce502ee81bfbfb2e9afe63895faad1379fc
> > 
> > Rendered versions in PDF and HTML can be found here (the PDF version is
> > authoritative, in the unlikely case of discrepancies):
> > https://dev.gentoo.org/~ulm/pms/2017-04-16-for-approval/pms.pdf
> > https://dev.gentoo.org/~ulm/pms/2017-04-16-for-approval/pms.html
> > 
> > Please vote (yes/no/abstain).

I vote yes.

[Note, the only thing that has a slight potential for discussion is the explicit "= slot op is invalid in ||()" which has also been added. That's fine with me though, we need a better specification for that case anyway.]
Comment 3 Kristian Fiskerstrand (RETIRED) gentoo-dev 2017-04-21 20:40:13 UTC
(In reply to Ulrich Müller from comment #0)


> 
> Also some other minor changes have been committed to the PMS git repository
> since the last council-approved version (bug 565700), see the list included
> below.
> 
> I therefore ask the council to approve the PMS version corresponding to this
> commit:
> https://gitweb.gentoo.org/proj/pms.git/commit/
> ?id=ca463ce502ee81bfbfb2e9afe63895faad1379fc
> 

I vote yes
Comment 4 Justin Lecher (RETIRED) gentoo-dev 2017-04-21 21:39:51 UTC
I vote yes
Comment 5 Richard Freeman gentoo-dev 2017-04-22 01:33:14 UTC
I vote yes
Comment 6 Anthony Basile gentoo-dev 2017-04-24 13:58:04 UTC
I vote yes.
Comment 7 William Hubbs gentoo-dev 2017-04-29 16:23:44 UTC
I vote yes.
Comment 8 Ulrich Müller gentoo-dev 2017-04-29 16:47:04 UTC
I count 7 yes votes. So this has been approved unanimously by the council.

Thank you.