From f2bdf8bc5a521c5d516cf51f623bebc134b14fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= Date: Sat, 6 Jan 2018 19:09:54 +0100 Subject: Improve 5/2010 and 6/2010 --- decisions/decisions.ded | 6 ++ decisions/decisions.kilepr | 46 ++++++------ decisions/decisions.tex | 27 ++++--- decisions/documents.tex | 165 +++++++++++++++++++++++++++++++++++++++++ decisions/summary-20100517.tex | 9 ++- decisions/summary-20100614.tex | 18 ++++- 6 files changed, 230 insertions(+), 41 deletions(-) (limited to 'decisions') diff --git a/decisions/decisions.ded b/decisions/decisions.ded index 873fb38..613c89a 100644 --- a/decisions/decisions.ded +++ b/decisions/decisions.ded @@ -37,6 +37,9 @@ https://wiki.gentoo.org/wiki/User:Cardoe ciaranm Ciaran McCreesh +chainsaw +Tony Vroon + dberkholz Donnie Berkholz @@ -190,6 +193,9 @@ https://wiki.gentoo.org/wiki/User:Vapier welp Peter Weller +wired +Alex Alexander + wolf31o2 Chris Gianelloni diff --git a/decisions/decisions.kilepr b/decisions/decisions.kilepr index dc19778..2219636 100644 --- a/decisions/decisions.kilepr +++ b/decisions/decisions.kilepr @@ -4,7 +4,7 @@ img_extIsRegExp=false img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif kileprversion=2 kileversion=2.1.3 -lastDocument=summary-20100419.tex +lastDocument=decisions.ded masterDocument= name=Gentoo Council Decicisions Index pkg_extIsRegExp=false @@ -1200,10 +1200,10 @@ order=1 [item:decisions.ded] archive=true -column=39 +column=14 encoding=UTF-8 highlight=None -line=164 +line=196 mode= open=true order=2 @@ -1220,20 +1220,20 @@ order=4 [item:decisions.tex] archive=true -column=26 +column=0 encoding=UTF-8 highlight=LaTeX -line=327 +line=358 mode=LaTeX open=true order=0 [item:documents.tex] archive=true -column=28 +column=35 encoding=UTF-8 highlight=LaTeX -line=229 +line=419 mode=LaTeX open=true order=3 @@ -1895,7 +1895,7 @@ encoding=UTF-8 highlight=LaTeX line=33 mode=LaTeX -open=true +open=false order=5 [item:summary-20100517.tex] @@ -1903,7 +1903,7 @@ archive=true column=0 encoding=UTF-8 highlight=LaTeX -line=0 +line=54 mode=LaTeX open=false order=-1 @@ -1913,7 +1913,7 @@ archive=true column=0 encoding=UTF-8 highlight=LaTeX -line=0 +line=25 mode=LaTeX open=false order=-1 @@ -2855,10 +2855,10 @@ JumpList= ViMarks=.,49,14,[,48,0,],49,14 [view-settings,view=0,item:decisions.ded] -CursorColumn=39 -CursorLine=164 +CursorColumn=14 +CursorLine=196 JumpList= -ViMarks=.,164,0,[,164,0,],164,38 +ViMarks=.,196,13,[,195,0,],196,13 [view-settings,view=0,item:decisions.gld] CursorColumn=25 @@ -2867,16 +2867,16 @@ JumpList= ViMarks=.,0,0,[,0,0,],-1,-1 [view-settings,view=0,item:decisions.tex] -CursorColumn=26 -CursorLine=327 +CursorColumn=0 +CursorLine=358 JumpList= -ViMarks=.,320,52,[,320,52,],320,52 +ViMarks=.,358,0,[,358,0,],358,0 [view-settings,view=0,item:documents.tex] -CursorColumn=28 -CursorLine=229 +CursorColumn=35 +CursorLine=419 JumpList= -ViMarks=.,229,27,[,229,22,],229,27 +ViMarks=.,575,8,[,575,0,],575,8 [view-settings,view=0,item:summary-20050915.tex] CursorColumn=0 @@ -3276,15 +3276,15 @@ ViMarks=.,33,21,[,33,21,],33,21 [view-settings,view=0,item:summary-20100517.tex] CursorColumn=0 -CursorLine=0 +CursorLine=54 JumpList= -ViMarks= +ViMarks=.,43,42,[,43,22,],43,42 [view-settings,view=0,item:summary-20100614.tex] CursorColumn=0 -CursorLine=0 +CursorLine=25 JumpList= -ViMarks= +ViMarks=.,24,24,[,24,16,],-1,-1 [view-settings,view=0,item:summary-20100714.tex] CursorColumn=0 diff --git a/decisions/decisions.tex b/decisions/decisions.tex index a9f857e..98519a6 100644 --- a/decisions/decisions.tex +++ b/decisions/decisions.tex @@ -320,12 +320,6 @@ Election master ballot and results: subsequent meetings. No unanimous acceptance of \dev{patrick} as next in list was possible, so an election for the open seat was called. \item -Call for nominations: -\agoref{gentoo-dev}{538084afe1e88c7a70a9d4857bedd0fd} -\item -Election master ballot and results: -\agoref{gentoo-dev}{3364f83c94ec660c5f8556ea05a7659c} -\item {\bf Council members: \dev{betelgeuse}, \dev{calchan}, \dev{dertobi123}, \dev{leio}, \dev{lu_zero} (until 12/2009), \dev{scarabeus} (starting 1/2010), \dev{solar}, \dev{ulm}} @@ -346,10 +340,23 @@ Election master ballot and results: \chapter{Meeting summaries 2010/11} -Council members: betelgeuse, bonsaikitten (starting 1/2011), chainsaw, -ferringb, halyc0n (until 12/2010), jmbsvicetto, scarabeus, wired - -All summaries have been added here. +\begin{itemize} +\item +Call for nominations: +\agoref{gentoo-dev}{36194ace30bbfd8ce2249a3e2a1ba60b} +\item +Election results: +\agoref{gentoo-dev}{f86214d689286a1c491442e1b1ded2d9} +\item +Election master ballot: +\agoref{gentoo-dev}{4fc60082256c9c6ee8f3313f803dca68} +\item +todo: changes +\item +{\bf Council members: \dev{betelgeuse}, \dev{patrick} (starting 1/2011), +\dev{chainsaw}, \dev{ferringb}, \dev{halyc0n} (until 12/2010), +\dev{jmbsvicetto}, \dev{scarabeus}, \dev{wired}} +\end{itemize} \include{summary-20100714} \include{summary-20100726} diff --git a/decisions/documents.tex b/decisions/documents.tex index cc8301b..1cfd6c2 100644 --- a/decisions/documents.tex +++ b/decisions/documents.tex @@ -414,3 +414,168 @@ Copyright This document has been placed in the public domain. \end{verbatim}} + + +\section{REQUIRED_USE USE state constraints} +\label{2010-05-feringb-requireduse} + +Source: +\url{ +https://web.archive.org/web/20100812050720/http://dev.gentoo.org/~ferringb/requi +red-use.html} +\index{developer!feringb} + +\vspace*{1cm} + +{\small +\begin{verbatim} +GLEP: 61 +Title: REQUIRED_USE USE state constraints +Version: 1.1 +Author: Brian Harring +Last-Modified: 2010/04/10 17:03:27 +Status: Draft +Type: Standards Track +Content-Type: text/x-rst +Created: 10-April-2010 +Post-History: 10-April-2010 + +Abstract +======== + +This GLEP proposes the addition of a new metadata key to specify what USE flag +combinations are disallowed for a specific pkg. + +Motivation +========== + +It's a semi common occurence that an ebuild may need to state that they disallow +USE flags in specific combinations- either mysql or sqlite for example, but not +both. + +Existing solutions rely on checking the the USE configuration in pkg_setup which +is non-optimal due to pkg_setup being ran potentially hours after the initial +emerge -p invocation. + +Current versions of EAPI4 support a phase hook pkg_pretend that is intended to +move pre-build checks to just after resolution. It has been proposed that +pkg_pretend should continue the tradition of adhoc shell code validating the USE +state- this too is non optimal for the following reasons- + +1. The only way to find out if the USE state is disallowed is to run the code +2. The common implementation of this can result in an iterative process where +the user hits a USE constraint, fixs it, reruns the emerge invocation only to +find that there is another constraint still violated for the ebuild, thus +requiring them to fix it, rerun emerge, etc. +3. For a package manager to classify the error, the only option it has is to +try and parse adhoc output written by an ebuild dev. This effectively disallows +package manager options for providing a more informative error message. A simple +example would be if the package manager wanted to integrate in the flag +descriptions from use.desc/use.local.desc; this would be effectively impossible. +4. Fundamentally these constraints are data, yet they're being encoded as +executable code- this effectively blocks the possibility of doing a wide variety +of QA/tree scans. For example it blocks the possibility of sanely scanning for +USE flag induced hard dependency cycles, because the tools in question cannot +get that info out of adhoc shell code. +5. More importantly if the manager cannot know what the allowed USE states are +for the ebuild in question, this eliminates the possibility of ever sanely +breaking dependency cycles caused by USE flags. + +Just as .sh scripts are considered a poor archival form due to their opaqueness, +pkg_setup and pkg_pretend aren't a proper solution for this. pkg_pretend in +particular makes the situation slightly worse due to ebuild devs being expected +to convert their ebuilds to the pkg_pretend form when using EAPI4. In doing so +they'll have to do work w/out the gains REQUIRED_USE provides and have to repeat +the same conversion work when REQUIRED_USE lands in a later EAPI. + +It's due to this and a few lesser reasons that EAPI4 is strongly recommended as +the target for this functionality. + +Specification +============= + +Essentially REQUIRED_USE is proposed to be an analogue of DEPENDS style syntax- +a list of assertions that must be met for this USE configuration to be valid for +this ebuild. For example, to state "if build is set, python must be unset": + +REQUIRED_USE="build? ( !python )" + +To state "either mysql or sqlite must be set, but not both": + +REQUIRED_USE="mysql? ( !sqlite ) !mysql? ( sqlite )" + +Note that the mysql/sqlite relationship is that of an Exclusive OR (XOR). While +an XOR can be formed from existing syntax, it's suggested that a specific +operator be added for this case using ^^. Reformatting the "mysql or sqlite, but +not both" with XOR results in: + +REQUIRED_USE="^^ ( mysql sqlite )" + +Like any block operator, this can be combined with other constraints. For +example if the user has flipped on the client flag, one gui must be choosen: + +REQUIRED_USE="client? ( ^^ ( gtk qt motif ) )" + +If the pkg is implemented sanely and requires at least one gui, but can support +multiple it would be: + +REQUIRED_USE="client? ( || ( gtk qt motif ) )" + +Because ARCH is integrated into the USE space, this also allows for specifying +corner cases like "at least one gui must be specified, but on mips only one gui +can be specified": + +REQUIRED_USE="client? ( !mips? ( || ( gtk qt motif ) ) mips? ( ^^ ( gtk qt +motif ) ) )" + +Please note that the AND operator is of course supported- if to enable client +you must choose at least one gui and enable the python bindings the syntax would +be: + +REQUIRED_USE="client? ( python || ( gtk qt motif x11 ) )" + +Finally, please note that this new metadata key can be set by eclasses, and the +inherit implementation should protect the eclass set value just the same as how +eclass defined DEPEND is protected. +Implementation + +Implementing this for EAPI4, currently 'few' (Sebastion Luther) has a working +git branch available at [portage-implementation] implementing this +functionality. + +For getting this implemented in pkgcore, the author of the glep will handle it. +As for paludis, presumably they can manage it due to MYOPTIONS existing in +exheres already. + +Backwards Compatibility +======================= + +EAPI already makes this a non issue for backwards compatibility. Additionally +the rsync metadata caches (enumerated flat file format) is designed for key +expansion so there is no issue there either. + +References +========== + +Original ML proposal: +http://archives.gentoo.org/gentoo-dev/msg_b0e868626019f497eba47194c34e5421.xml +[portage-implementation] +http://github.com/few/fews-portage-branch/tree/REQUIRED_USE + +Thanks to +========= + +David Leverton, Brian Dolbec, and Jorge Manuel Vicetto for proofreading this and +correcting the innumerable typos, run on sentences and general abuse of english +the GLEP author is known for. + +Additionally, many thanks to Sebastion Luther ('few') for stepping up and +writing the portage patch on short notice. + +Copyright +========= + +This document has been placed in the public domain. +\end{verbatim} +} + diff --git a/decisions/summary-20100517.tex b/decisions/summary-20100517.tex index 21f7b2c..e2537cf 100644 --- a/decisions/summary-20100517.tex +++ b/decisions/summary-20100517.tex @@ -26,21 +26,22 @@ References: A discussion on the voting procedures summarized in the \agoref{gentoo-project}{df5433a1e6cbe479462da8f5fe588299} took place. It was decided that all 5 options from that e-mail should be present in a future -ballot on voting procedures. +ballot on voting procedures. \index{council!votes!by mail} +\index{council!meeting} Regarding present and future changes to the council structure, see the \agoref{gentoo-project}{76311b25ccb18fff4764955db55ad0ea}, consensus was that the new text should be a ``constitution'', which can only be updated with an -all developer vote. +all developer vote. \index{constitution} \index{metastructure} Regarding the role of the council (e.g., responsive versus proactive), see the \agoref{gentoo-project}{6009db554b00ae9de67047206c7698be}, an additional option ``Each council should set its mode of operation after being elected.'' was -proposed. The trustee option should be a separate vote. +proposed. The trustee option should be a separate vote. \index{council!role} The options on potentially selecting a council lead, see the \agoref{gentoo-project}{3806fe4e42dc8ce013e247a081e3d4a0}, were seen to be -suitable for a ballot. +suitable for a ballot. \index{council!lead} There was consensus that such a central re-organization of Gentoo structure as proposed here should not be rushed, with sufficient time for discussion on the diff --git a/decisions/summary-20100614.tex b/decisions/summary-20100614.tex index ea27481..15eb693 100644 --- a/decisions/summary-20100614.tex +++ b/decisions/summary-20100614.tex @@ -1,15 +1,25 @@ \summary{2010}{6}{14} +Agenda call: --- + +Agenda announcement: --- \agendaitem{REQUIRED_USE eapi addition} -\index{REQUIRED_USE} +\index{REQUIRED_USE}\index{PMS}\index{EAPI!4} + +Reference: http://dev.gentoo.org/~ferringb/required-use.html (dead link, see +\ref{2010-05-feringb-requireduse} for the text) -Reference: http://dev.gentoo.org/~ferringb/required-use.html (dead link) +Discussion touched the precise proposed syntax of REQUIRED_USE as well as its +relationship to PMS. -Voting delayed till next council to ensure everyone knew the details +Voting on this issue was delayed until the next council is in office to ensure +everyone knows the details. \agendaitem{Attempted post mortem discussion for the outgoing council's term} -Primarily discussion, no real recommendations/resolutions +Primarily discussion took place, without real recommendations or resolutions. +Suggestions included that the council be more decisive and proactive, and +postpone decisions less. -- cgit v1.2.3