[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/, quickstart/, ebuild-writing/common-mistakes/, ...

2024-08-12 Thread Ulrich Müller
commit: c08a1dc1072740182e5c4d059967db697897bed6
Author: Sebastian Engel  gmx  de>
AuthorDate: Mon Aug 12 09:12:05 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Aug 12 14:06:51 2024 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=c08a1dc1

Fix multiple typos and grammatical errors

Signed-off-by: Sebastian Engel  gmx.de>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-writing/common-mistakes/text.xml |  2 +-
 ebuild-writing/eapi/text.xml|  2 +-
 quickstart/text.xml |  2 +-
 tasks-reference/pam/text.xml| 18 +-
 tools-reference/echo/text.xml   |  4 ++--
 tools-reference/find/text.xml   |  2 +-
 6 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/ebuild-writing/common-mistakes/text.xml 
b/ebuild-writing/common-mistakes/text.xml
index e39e2e6..0b6adb8 100644
--- a/ebuild-writing/common-mistakes/text.xml
+++ b/ebuild-writing/common-mistakes/text.xml
@@ -263,7 +263,7 @@ bug about that ebuild.
 
 You should try not to include version numbers in the SRC_URI and S. Always try
 to use ${PV} or ${P}. It makes maintaining the ebuild much easier. If a version
-number is not consistent with the tarball/source, then use MY_P. An example
+number is not consistent with the tarball/source, then use MY_P. For example
 dev-python/pyopenal fetches a tarball called PyOpenAL, so we redefine it like:
 
 

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 4943dba..5c2f9b7 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -1009,7 +1009,7 @@ pkg_postrm() {
 
 
 
-In the example provided above, the ebuild needs to be update the icon cache
+In the example provided above, the ebuild needs to update the icon cache
 upon being installed or uninstalled. By placing the respective tool in
 IDEPEND, the ebuild requests it to be available at the time of
 pkg_postinst. When cross-compiling, the tool will be built for

diff --git a/quickstart/text.xml b/quickstart/text.xml
index 32e3ede..9e22dfd 100644
--- a/quickstart/text.xml
+++ b/quickstart/text.xml
@@ -74,7 +74,7 @@ At the top of the ebuild is a header block. This is present 
in all ebuilds.
 
 
 
-Ebuilds are indented using tabs, with each tab representing four places.
+Ebuilds are indented using tabs, with each tab representing four spaces.
 See .
 
 

diff --git a/tasks-reference/pam/text.xml b/tasks-reference/pam/text.xml
index 3094b20..2cc794c 100644
--- a/tasks-reference/pam/text.xml
+++ b/tasks-reference/pam/text.xml
@@ -80,15 +80,15 @@ The statement is composed of 3 or 4 tokens:
 methods.  Some documentation states that we need to specify the full path 
of
 the module, but this creates problems because not all the systems install 
the
 modules in the same place: Linux-PAM on Gentoo is generally set up to load
-them from /lib/security, but for example on AMD64 this become
+them from /lib/security, but for example on AMD64 this becomes
 /lib64/security. The
 result is that providing the full path will lead to non-working pamd
-files, and the right way to handle this is just states the module name  the
+files, and the right way to handle this is to just state the module name 
 the
 PAM implementation will take care of finding the module.
   
   
-The last token, which can consist of multiple items, describe the 
parameters
-passed to the module. These are module-dependent.
+The last token, which can consist of multiple items, describes the
+parameters passed to the module. These are module-dependent.
   
 
 
@@ -124,7 +124,7 @@ source for some services, such as mail and ftp servers.
 
 
 But for desktop systems, all the different services, such as mail servers, ftp
-servers, ssh and so on, just need to authenticate in the same way the users 
logs
+servers, ssh and so on, just need to authenticate in the same way the users log
 in to the system.
 
 
@@ -175,13 +175,13 @@ for pamd files (dopamd and newpamd, 
whose usage is the same
 similar do* and new* functions) and the /etc/security 
files
 (dopamsecurity and newpamsecurity, which need the first argument 
to be
 the subdirectory of /etc/security in which the files are to be 
installed).
-Those groups of functions already takes care of verifying whether the 
pam
+Those groups of functions already take care of verifying whether the pam
 USE flag is made optional for the package  if this is the case, and the 
flag
 is disabled, the pamd files are just skipped.
 
 
 
-Many pamd files just uses one or more auth types from 
system-auth login class,
+Many pamd files just use one or more auth types from system-auth 
login class,
 which is the base one which provides login facilities for most services on
 common desktop systems.  Instead of adding a pamd file in 
${FILESDIR}
 for this, one can use the pamd_mimic_system function. This function 
takes a series
@@ 

[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2024-07-05 Thread Ulrich Müller
commit: 91ac6474f078dc261807b535db75356cde91ac96
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Jul  5 20:15:04 2024 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Fri Jul  5 20:15:04 2024 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=91ac6474

ebuild-writing/eapi: Add todo items for EAPIs 5 and 6

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

 ebuild-writing/eapi/text.xml | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 26795cf..4943dba 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -112,6 +112,13 @@ Manager Specification for details about them.
 
 EAPI 5
 
+
+
+EAPI 5 is deprecated and should no longer appear here. The information needs to
+be split up and moved to other sections.
+
+
+
 
 EAPI 5 metadata
 
@@ -297,6 +304,13 @@ If USE flag is set, echo [true output][true suffix] 
(defaults to "yes"),
 
 EAPI 6
 
+
+
+EAPI 6 is deprecated and should no longer appear here. The information needs to
+be split up and moved to other sections.
+
+
+
 
 EAPI 6 Bash version
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2022-11-09 Thread Ulrich Müller
commit: 960cd5a52ec51120330ee4b099e89c58f61ee3a8
Author: Ulrich Müller  gentoo  org>
AuthorDate: Wed Oct 19 09:13:19 2022 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Wed Oct 19 09:13:19 2022 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=960cd5a5

ebuild-writing/eapi: Replace interactive by live in example

The former is semi-deprecated and we shouldn't advertise its use.

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

 ebuild-writing/eapi/text.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 45b032a..b6463c0 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -1072,7 +1072,7 @@ EAPI=7
 
 inherit git-r3
 
-PROPERTIES+=" interactive"
+PROPERTIES+=" live"
 
 
 
@@ -1086,7 +1086,7 @@ EAPI=8
 
 inherit git-r3
 
-PROPERTIES="interactive"
+PROPERTIES="live"
 
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2022-02-25 Thread Sam James
commit: e36a0545130215a7390dabaa5540d54c3a153c3f
Author: Sam James  gentoo  org>
AuthorDate: Fri Feb 25 19:02:45 2022 +
Commit: Sam James  gentoo  org>
CommitDate: Fri Feb 25 19:02:45 2022 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=e36a0545

ebuild-writing/eapi: update link to Python guide

Migrated to projects.gentoo.org.

Signed-off-by: Sam James  gentoo.org>

 ebuild-writing/eapi/text.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index fbf88a5..2a716ae 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -80,7 +80,7 @@ or its dependencies.
 The Base System project has
 https://wiki.gentoo.org/wiki/Project:Base#Rules_and_limitations";>rules
 governing their use of newer EAPIs, as does the
-https://dev.gentoo.org/~mgorny/python-guide/package-maintenance.html#porting-packages-to-a-new-eapi";>Python
 project.
+https://projects.gentoo.org/python/guide/package-maintenance.html#porting-packages-to-a-new-eapi";>Python
 project.
 
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2022-02-21 Thread Sam James
commit: 57ba0f67f138341373555447371bd125e34e5b1c
Author: Sam James  gentoo  org>
AuthorDate: Mon Jan 10 01:20:35 2022 +
Commit: Sam James  gentoo  org>
CommitDate: Tue Feb 22 07:11:24 2022 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=57ba0f67

ebuild-writing/eapi: document upgrade path policy

The "upgrade path" policy is not particularly well-defined;
over the years, various people have come to understand it
as "two years", "one year", with mixed interpretations
within that (is it enough to be able to upgrade just
Portage?)

This is a start towards formalising policy here,
even if we end up changing it later, at least
it's codified.

Closes: https://bugs.gentoo.org/821553
Signed-off-by: Sam James  gentoo.org>

 ebuild-writing/eapi/text.xml | 21 +
 1 file changed, 21 insertions(+)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index e85a3ec..257232c 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -62,8 +62,29 @@ EAPI-conditional code)
 When writing new ebuilds developers can choose whatever EAPI they think
 is the best.  Using the features of the latest EAPI is encouraged.
 
+
+
+
+Upgrade path
+
+
+
+Gentoo policy is to support upgrades for installations at least a year old
+with no/little intervention and up to two years old with minor intervention. To
+achieve this, developers must avoid using the latest EAPI in ebuilds within
+the @system set (see )
+or its dependencies.
+
+
+
+The Base System project has
+https://wiki.gentoo.org/wiki/Project:Base#Rules_and_limitations";>rules
+governing their use of newer EAPIs, as does the
+https://dev.gentoo.org/~mgorny/python-guide/package-maintenance.html#porting-packages-to-a-new-eapi";>Python
 project.
+
 
 
+
 
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2022-02-21 Thread Sam James
commit: 9db2bfb9151258ce62a1854774a6d3bf60734af2
Author: Sam James  gentoo  org>
AuthorDate: Mon Jan 10 01:25:20 2022 +
Commit: Sam James  gentoo  org>
CommitDate: Tue Feb 22 07:11:27 2022 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=9db2bfb9

ebuild-writing/eapi: mention blocker retention period

Bug: https://bugs.gentoo.org/821553
Signed-off-by: Sam James  gentoo.org>
Closes: https://github.com/gentoo/devmanual/pull/261
Signed-off-by: Sam James  gentoo.org>

 ebuild-writing/eapi/text.xml | 9 +
 1 file changed, 9 insertions(+)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 257232c..fbf88a5 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -83,6 +83,15 @@ governing their use of newer EAPIs, as does the
 https://dev.gentoo.org/~mgorny/python-guide/package-maintenance.html#porting-packages-to-a-new-eapi";>Python
 project.
 
 
+
+It is also convention that blockers within ebuilds are retained for at least
+2 years after the last ebuild matching the block is removed from the tree to
+avoid file collisions for users upgrading older systems. pkgcheck has
+a warning for this called OutdatedBlocker (or even
+NonexistentBlocker for when the match is from pre-git times if using
+a non-grafted repository).
+
+
 
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/, appendices/contributors/

2021-07-14 Thread Ulrich Müller
commit: 9236a4c31054fb03cf86bfcdfc1e3ddff6cc5396
Author: Ulrich Müller  gentoo  org>
AuthorDate: Fri Jul  2 19:09:18 2021 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Jul 12 18:28:24 2021 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=9236a4c3

ebuild-writing/eapi: Add EAPI 8 guide

Main part taken from "The ultimate guide to EAPI 8" by Michał Górny:
https://mgorny.pl/articles/the-ultimate-guide-to-eapi-8.html

Converted to DevBook XML and heavily edited to make it fit into the
framework of the devmanual.

Original-Author: Michał Górny  gentoo.org>
Original-License: CC-BY-3.0
Signed-off-by: Ulrich Müller  gentoo.org>

 appendices/contributors/text.xml |   6 +-
 ebuild-writing/eapi/text.xml | 766 +++
 2 files changed, 769 insertions(+), 3 deletions(-)

diff --git a/appendices/contributors/text.xml b/appendices/contributors/text.xml
index b1e9bd9..55a4cc2 100644
--- a/appendices/contributors/text.xml
+++ b/appendices/contributors/text.xml
@@ -109,9 +109,9 @@ Misc
 
 
   ,
-  ,
-  ,
-  ,
+  ,
+  
+  ,
   
 
 

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index b738640..e85a3ec 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -616,6 +616,772 @@ installation targets.
   
 
 
+
+
+
+
+
+EAPI 8
+
+
+
+This section is based on
+https://mgorny.pl/articles/the-ultimate-guide-to-eapi-8.html";>
+The ultimate guide to EAPI 8 by Michał Górny.
+
+
+
+
+
+EAPI 8 tree layout
+
+
+
+  Less strict naming rules for updates directory
+  
+
+Up to EAPI 7, the files in the profiles/updates directory had to
+follow strict naming by quarters like 2Q-2021, indicating the
+quarter and the year when they were added. Such a choice of name had the
+side effect that lexical sorting of filenames was unsuitable.
+
+
+
+In EAPI 8, the naming requirement is removed. Eventually, this will allow
+switching to a more convenient scheme sorted by year. Different lengths
+of time periods will also be possible.
+
+
+
+Note that this change actually requires changing the repository EAPI
+(found in profiles/eapi), so it will not affect Gentoo for at least
+the next two years.
+
+  
+
+
+
+
+
+EAPI 8 ebuild format
+
+
+
+  Bash version is now 5.0
+  
+
+The Bash version used for ebuilds is changed from 4.2 to 5.0. This means
+not only that ebuilds are now permitted to use features provided by the new
+Bash version but also the BASH_COMPAT value used for the ebuild
+environment is updated, switching the shell behaviour.
+
+
+
+The only really relevant difference in behaviour is:
+
+
+
+  
+
+Quotes are now removed from the RHS argument of a
+"${var/.../"..."}" substitution:
+
+
+
+var=foo
+echo "${var/foo/"bar"}"
+
+
+
+The above snippet yields "bar" in Bash 4.2 but just bar
+in 4.3+.
+
+  
+
+
+
+Potentially interesting new features include:
+
+
+
+  
+
+Negative subscripts can now be used to set and unset array elements
+(Bash 4.3+):
+
+
+
+$ foo=( 1 2 3 )
+$ foo[-1]=4
+$ unset 'foo[-2]'
+$ declare -p foo
+declare -a foo=([0]="1" [2]="4")
+
+
+  
+  
+
+Nameref variables are introduced that work as references to other
+variables (4.3+):
+
+
+
+$ foo=( 1 2 3 )
+$ declare -n bar=foo
+$ echo "${bar[@]}"
+1 2 3
+$ bar[0]=4
+$ echo "${foo[@]}"
+4 2 3
+$ declare -n baz=foo[1]
+$ echo "${baz}"
+2
+$ baz=100
+$ echo "${bar[@]}"
+4 100 3
+
+
+  
+  
+
+The [[ -v ... ]] test operator can be used with array indices
+to test for array elements being set (4.3+). The two following lines
+are now equivalent:
+
+
+
+[[ -n ${foo[3]+1} ]]
+[[ -v foo[3] ]]
+
+  
+  
+
+mapfile (AKA readarray) now accepts a delimiter via
+-d, with a -t option to strip it from read data
+(Bash 4.4+). The two following solutions to grab output from
+find(1) are now equivalent:
+
+
+
+# old solution
+local x files=()
+while read -d '' -r x; do
+   files+=( "${x}" )
+done < <(find -print0)
+
+# new solution
+local files=()
+mapfile -d '' -t files < <(find -print0)
+
+
+  
+  
+
+A new set of transformations is available via ${foo@...}
+parameter expansion (4.4+), e.g. to print a value with necessary
+quoting:
+
+
+
+$ var="foo 'bar' baz"
+$ echo "${var@Q}"
+'foo '\''bar'\'' baz'
+
+
+
+For more details, see: info bash or the
+https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html";>
+Bash reference manual.
+
+  
+  
+
+local - can be used to limit single-letter (mangled via
+set) shell option changes to the scope of the func

[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2020-05-09 Thread Ulrich Müller
commit: 95f2a74b60ec0057e99e8f3ff8e8271af63f1ff7
Author: Jaak Ristioja  ristioja  ee>
AuthorDate: Sat May  9 09:43:35 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat May  9 10:40:34 2020 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=95f2a74b

ebuild-writing/eapi: Fixed some typos

Signed-off-by: Jaak Ristioja  ristioja.ee>
Signed-off-by: Ulrich Müller  gentoo.org>

 ebuild-writing/eapi/text.xml | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index f51a458..9541c02 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -446,7 +446,7 @@ installation targets.
   
   CTARGET
   
-Used in certain cross-compliations, often empty value.
+Used in certain cross-compilations, often empty value.
   
 
 
@@ -473,14 +473,14 @@ installation targets.
   
 These variables no longer contain a trailing slash with EAPI=7.
   
-  BDEPEND addded
+  BDEPEND added
   
 Previously, all build-time tools and libraries went into the DEPEND.
 Now, built-time dependencies are split into DEPEND and
 BDEPEND. The difference is simply that BDEPEND are
 dependencies to be executed on the CBUILD. DEPEND remains for other
 dependencies, such as libraries, for the CHOST. This improves the
-cross-compliation support.
+cross-compilation support.
   
   BROOT added
   
@@ -562,7 +562,7 @@ installation targets.
   -b will check CBUILD build-time dependencies (BDEPEND)
 
   
-  Version manipulation and comparision commands
+  Version manipulation and comparison commands
   
 
 EAPI=7 introduced three commands for common version number operations.
@@ -612,7 +612,7 @@ installation targets.
 to specify CBUILD and CTARGET respectively have been added
 and are retro-active to all EAPIs. In addition, if the build supports
 --with-sysroot, the correct value will be passed such that normal
-and cross-compliations succeed.
+and cross-compilations succeed.
   
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/, ebuild-writing/variables/

2020-04-07 Thread Ulrich Müller
commit: 82e02b273768471f2739a95744e90dd848c13d06
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Mar  2 23:46:48 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Sat Mar 28 14:48:23 2020 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=82e02b27

ebuild-writing/eapi: Reformat the lists.

Many lists in this chapter simulate definition lists by:

  
term
definition
  
  ...

Change all of these to real definition lists.

Reformat the file according to the style guide.

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

 ebuild-writing/eapi/text.xml  | 806 +-
 ebuild-writing/variables/text.xml |   2 +-
 2 files changed, 437 insertions(+), 371 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 9a2de35..aa4fdec 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -2,8 +2,8 @@
 
 
 EAPI Usage and Description
-
 
+
 
 The https://wiki.gentoo.org/wiki/Project:PMS";>Package Manager
 Specification (PMS) is a standardization effort to ensure that the
@@ -23,11 +23,13 @@ file adheres to.
 
 This section provides usage and descriptions of the different EAPIs.
 
+
 
 
 
 Usage of EAPIs
 
+
 
 An overview about the important features of each EAPI is provided in the
 appendix of the Package Manager Specification.  The two-page leaflet
@@ -77,479 +79,543 @@ Manager Specification for details about them.
 
 
 
-EAPI=5
+EAPI 5
 
 
 EAPI 5 Metadata
 
-
-   
-   REQUIRED_USE supports new at-most-one-of operator
-   
-   The new at-most-one-of operator consists of the string 
'??', and is satisfied if zero or one (but no more) of its child 
elements is matched.
-   
-   
-   
-   SLOT supports optional "sub-slot" part
-   
-   The SLOT variable may contain an optional 
sub-slot part that follows the regular slot and is delimited by a 
/ character. The sub-slot must be a valid slot name. The sub-slot is 
used to represent cases in which an upgrade to a new version of a package with 
a different sub-slot may require dependent packages to be rebuilt. When the 
sub-slot part is omitted from the SLOT definition, the package is considered to 
have an implicit sub-slot which is equal to the regular slot.
-   
-   
-   
-   Slot operators and sub-slots in dependencies
-   
-   A slot dependency may contain an optional sub-slot part that 
follows the regular slot and is delimited by a / character. This can be 
useful for packages installing pre-built binaries that require a library with a 
specific soname version which corresponds to the sub-slot. For example:
-   
+
+
+  REQUIRED_USE supports new at-most-one-of operator
+  
+The new at-most-one-of operator consists of the string '??',
+and is satisfied if zero or one (but no more) of its child elements is
+matched.
+  
+  SLOT supports optional "sub-slot" part
+  
+The SLOT variable may contain an optional sub-slot part that
+follows the regular slot and is delimited by a / character.
+The sub-slot must be a valid slot name. The sub-slot is used to represent
+cases in which an upgrade to a new version of a package with a different
+sub-slot may require dependent packages to be rebuilt. When the sub-slot
+part is omitted from the SLOT definition, the package is considered to have
+an implicit sub-slot which is equal to the regular slot.
+  
+  Slot operators and sub-slots in dependencies
+  
+
+A slot dependency may contain an optional sub-slot part that follows the
+regular slot and is delimited by a / character. This can be useful
+for packages installing pre-built binaries that require a library with a
+specific soname version which corresponds to the sub-slot. For example:
+
 
 RDEPEND="dev-libs/foo:0/3"
 
-   
-   Package dependency specifications can use slot operators 
to
-   clarify what should happen if the slot and/or sub-slot of a 
runtime
-   dependency changes:
-   
-   
-   
-   :* Indicates that any slot value is acceptable. 
In addition, for runtime dependencies, indicates that the package specifying 
the dependency will not break if the package matching the dependency is 
replaced by a different matching package with a different slot and/or sub-slot.
-   
-   
-   := Indicates that any slot value is acceptable. 
In addition, for runtime dependencies, indicates that the package specifying 
the dependency will break unless there is available a package matching the 
dependency and whose slot and sub-slot are equal to the slot and sub-slot of 
the best installed version that had matched this dependency at the time when 
the pa

[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/, ebuild-writing/functions/src_prepare/, ...

2020-02-20 Thread Ulrich Müller
commit: 353f6addd6f45cefb2d316ebbfb0fd6f031ed9d6
Author: Ulrich Müller  gentoo  org>
AuthorDate: Sun Feb 16 15:57:16 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Feb 20 19:06:49 2020 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=353f6add

Sync example phase functions from PMS.

This follows the recent PMS update:
https://gitweb.gentoo.org/proj/pms.git/commit/?id=0d4ffd51d3dc86782dae2db9fe632f45af7eec87

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

 ebuild-writing/eapi/text.xml  |  2 +-
 ebuild-writing/functions/src_install/text.xml |  2 +-
 ebuild-writing/functions/src_prepare/text.xml | 12 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 57c899e..9a2de35 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -272,7 +272,7 @@ If USE flag is set, echo [true output][true suffix] 
(defaults to "yes"),

 
 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}

diff --git a/ebuild-writing/functions/src_install/text.xml 
b/ebuild-writing/functions/src_install/text.xml
index 1dd1bac..6ad3412 100644
--- a/ebuild-writing/functions/src_install/text.xml
+++ b/ebuild-writing/functions/src_install/text.xml
@@ -47,7 +47,7 @@ src_install() {
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}

diff --git a/ebuild-writing/functions/src_prepare/text.xml 
b/ebuild-writing/functions/src_prepare/text.xml
index 5cbfcf1..d62f2fd 100644
--- a/ebuild-writing/functions/src_prepare/text.xml
+++ b/ebuild-writing/functions/src_prepare/text.xml
@@ -49,12 +49,12 @@ implementation:
 
 
 src_prepare() {
-if declare -p PATCHES | grep -q "^declare -a "; then
-[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
-else
-[[ -n ${PATCHES} ]] && eapply ${PATCHES}
-fi
-eapply_user
+   if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then
+   [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+   else
+   [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+   fi
+   eapply_user
 }
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2020-01-22 Thread Ulrich Müller
commit: 758897db36d3d176ef9acef42c7aec990ac039f9
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Jan 20 21:13:06 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Jan 23 07:44:51 2020 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=758897db

ebuild-writing/eapi: Update introduction, section on EAPIs 0 to 3.

Modernise the introduction, and add a short section saying that EAPIs
0 to 3 are obsolete.

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

 ebuild-writing/eapi/text.xml | 47 
 1 file changed, 34 insertions(+), 13 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 89b88ff..2a47617 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -5,11 +5,12 @@
 
 
 
-The Package Manager Specification (PMS) is a standardization
-effort to ensure that the ebuild file format, the ebuild repository format
-(of which the Gentoo repository is Gentoo's main incarnation) as well as 
behavior
-of the package managers interacting with these ebuilds is properly written
-down and agreed upon.
+The https://wiki.gentoo.org/wiki/Project:PMS";>Package Manager
+Specification (PMS) is a standardization effort to ensure that the
+ebuild file format, the ebuild repository format (of which the Gentoo
+repository is Gentoo's main incarnation) as well as behaviour of the package
+managers interacting with these ebuilds is properly written down and agreed
+upon.
 
 
 
@@ -33,37 +34,57 @@ appendix of the Package Manager Specification.  The 
two-page leaflet
 can be printed out, consulted for reference and is available
 as app-doc/pms in the main tree.
 
+
 
-If EAPI is undefined in an ebuild, then EAPI=0 is selected.  You should
-set the EAPI variable, by specifying it at the top of the ebuild:
+You must set the EAPI variable by specifying it at the top of the ebuild:
 
 
-
-Most developers prefer to set the EAPI version without quotes. However, the 
PMS allows single and double quotes as well.
-
-
 
 # Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
 
+
+Most developers prefer to set the EAPI version without quotes. However, the PMS
+allows single and double quotes as well.
+
+
 
 EAPI must only be defined in ebuild files, not eclasses. (eclasses may have
 EAPI-conditional code)
 
 
 
-When writing new ebuilds developers can choose whathever EAPI they think
+When writing new ebuilds developers can choose whatever EAPI they think
 is the best.  Using the features of the latest EAPI is encouraged.
 
 
 
 
 
+
+EAPIs 0 to 3
+
+
+
+EAPIs 0 to 3 are obsolete and must no longer be used. Refer to the Package
+Manager Specification for details about them.
+
+
+
+
+
 
 EAPI=4
+
+
+
+Split up and move each feature to the section that is relevant for it.
+
+
+
 
 
 EAPI 4 Helpers



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2020-01-08 Thread Ulrich Müller
commit: 03ab16d359f1525fa135eb7465dd54695fb16a36
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Jan  9 07:57:14 2020 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Jan  9 07:57:14 2020 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=03ab16d3

ebuild-writing/eapi: Fix link to Prefix Technical Documentation.

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

 ebuild-writing/eapi/text.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index a2fbddd..f1bdfed 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -327,7 +327,8 @@ src_compile() {

Support for the EPREFIX, EROOT, and 
ED
variables. If an ebuild uses one of these, it must be 
EAPI3 aware.
-   See https://www.gentoo.org/proj/en/gentoo-alt/prefix/techdocs.xml#doc_chap2";>Gentoo
 Prefix Techdocs for more information.
+   See https://wiki.gentoo.org/wiki/Project:Prefix/Technical_Documentation";>
+   Gentoo Prefix Technical Documentation for more 
information.






[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2018-10-24 Thread Brian Evans
commit: b887343bd84cfbfd7c0fa42e1e35158f3817e464
Author: Brian Evans  gentoo  org>
AuthorDate: Mon Sep 17 14:35:57 2018 +
Commit: Brian Evans  gentoo  org>
CommitDate: Wed Oct 24 12:56:36 2018 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=b887343b

ebuild-writing/eapi: Add summary of EAPI=7 features

Reference material used includes "The ultimate guide to EAPI 7"[1] by Michał 
Górny
and the "Package Manager Specification"[2]

[1] https://dev.gentoo.org/~mgorny/articles/the-ultimate-guide-to-eapi-7.html
[2] https://projects.gentoo.org/pms/7/pms.html

Signed-off-by: Brian Evans  gentoo.org>

 ebuild-writing/eapi/text.xml | 184 +++
 1 file changed, 184 insertions(+)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 406a562..7fd018f 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -976,6 +976,190 @@ src_install() {
 
 
 
+
+EAPI=7
+
+
+Terminology
+
+Documents may use the following terms to better describe dependency and 
installation targets.
+
+   
+   CHOST
+   The system that will be running the installed package.
+   
+   
+   CBUILD
+   The system used to build packages. When not cross-compiling, 
CBUILD == CHOST.
+   
+   
+   CTARGET
+   Used in certain cross-compliations, often empty value.
+   
+
+
+
+
+Variables
+
+
+   
+   PORTDIR and ECLASSDIR are removed
+   PORTDIR and ECLASSDIR are no longer defined 
and cannot be used
+   in ebuilds to access these directories.
+   
+   
+   DESTTREE and INSDESTTREE are removed
+   The unintended exported variables PORTDIR and 
ECLASSDIR
+   cannot be used in ebuilds to manipulate installation paths.
+   Use into or insinto, respectively, instead.
+   
+   
+   D, ED, ROOT, and EROOT 
modified
+   These variables no longer contain a trailing slash with 
EAPI=7.
+   
+   
+   BDEPEND addded
+   
+   Previously, all build-time tools and libraries went 
into the DEPEND.
+   Now, built-time dependencies are split into 
DEPEND and BDEPEND.
+   The difference is simply that BDEPEND are 
dependencies to be executed on the CBUILD.
+   DEPEND remains for other dependencies, such as 
libraries, for the CHOST.
+   This improves the cross-compliation support.
+   
+   
+   
+   BROOT added
+   BROOT is the absolute path to the root directory, 
including any prefix, containing build
+   dependencies satisfied by BDEPEND, typically executable build 
tools.
+   
+   
+   SYSROOT and ESYSROOT added
+   SYSROOT is the location of where dependencies in 
DEPEND are installed.
+   ESYSROOT is SYSROOT with EPREFIX appended.
+   
+   
+   
+   ENV_UNSET added
+   A whitespace delimited list of variables to be removed from 
the build environment.
+   
+
+
+
+
+Metadata
+
+
+   
+   Empty groupings are banned
+   Groupings which are empty, such as DEPEND="|| ( 
${empty_var} )" will now generate an error.
+   Furthermore, conditions within groupings are more strictly 
enforced.
+   Eg. REQUIRED_USE="|| ( foo? ( bar ) baz? ( zoinks )" 
would previously work with USE="-a -b" now requires
+   either USE="foo bar" or USE="baz zoinks".
+   
+   
+
+
+
+
+Profiles
+
+
+   
+   package.provided banned
+   Profiles may no longer contain a package.provided 
file with EAPI=7.
+   
+
+
+
+
+Helpers
+
+
+   
+   dohtml banned
+   
+   The dohtml helper has been banned with 
EAPI=7.
+   
+   
+   
+   dolib and libopts banned
+   
+   The dolib helper and the associated 
libopts have been banned with EAPI=7.
+   
+   
+   
+   has_version and best_version changes
+   
+   has_version and best_version now support 
an optional switch
+   to determine which type of dependencies to check.
+   
+   
+   -r (the default) will check 
runtime dependencies (RDEPEND)
+   -d will check target build-time 
dependencies (DEPEND)
+   -b will check host build-time 
dependencies (BDEPEND)
+   
+   
+   
+   Version manipulation and comparision commands
+   
+   EAPI=7 introduced three comma

[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2017-09-24 Thread Göktürk Yüksek
commit: b5f6752aab9664d4672c476065467039b73b2f7b
Author: Michał Górny  gentoo  org>
AuthorDate: Sun Jun  7 12:44:00 2015 +
Commit: Göktürk Yüksek  gentoo  org>
CommitDate: Mon Sep 25 04:25:12 2017 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=b5f6752a

ebuild-writing/eapi: Replace nonfatal example with something correct

Replace the nonfatal example from a poor programming practice (nonfatal
dodoc) to a code collecting logs for test failures. Based on an old
version of sys-apps/paludis.

Closes: https://bugs.gentoo.org/551190

 ebuild-writing/eapi/text.xml | 26 +++---
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index a02b5a6..68f27b0 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -369,19 +369,31 @@ src_compile() {

Example:

-EAPI=1
+EAPI=2
 ...
-src_install() {
-   emake DESTDIR="${D}" install || die "make install failed"
-   dodoc ChangeLog README
+src_test() {
+   if ! emake check ; then
+   local a
+   eerror "Tests failed. Looking for files for you to add to your 
bug report..."
+   while IFS='' read -r -d $'\0' a ; do
+   eerror "${a}"
+   done < <(find "${S}" -type f '(' -name '*.epicfail' -o 
-name '*.log' ')' -print0)
+   die "Make check failed"
+   fi
 }


 EAPI=4
 ...
-src_install() {
-   emake DESTDIR="${D}" install
-   nonfatal dodoc ChangeLog README
+src_test() {
+   if ! nonfatal emake check ; then
+   local a
+   eerror "Tests failed. Looking for files for you to add to your 
bug report..."
+   while IFS='' read -r -d $'\0' a ; do
+   eerror "${a}"
+   done < <(find "${S}" -type f '(' -name '*.epicfail' -o 
-name '*.log' ')' -print0)
+   die "Make check failed"
+   fi
 }





[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2017-01-24 Thread Göktürk Yüksek
commit: f4c6229352dfc9705697aa684ce6a251d8dda5f5
Author: Jonas Stein  jonasstein  de>
AuthorDate: Tue Jan 24 14:26:55 2017 +
Commit: Göktürk Yüksek  gentoo  org>
CommitDate: Wed Jan 25 00:53:42 2017 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=f4c62293

ebuild-writing/eapi: Update example to EAPI=6, 2017

 ebuild-writing/eapi/text.xml | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index a918fd0..6a5de05 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -42,13 +42,11 @@ Most developers prefer to set the EAPI version without 
quotes. However, the PMS
 
 
 
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
-inherit eutils
-
+EAPI=6
 
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-12-07 Thread Göktürk Yüksek
commit: f8ed217cfb3aa502048bd73cec53578b679a0039
Author: Göktürk Yüksek  gentoo  org>
AuthorDate: Thu Dec  8 04:06:17 2016 +
Commit: Göktürk Yüksek  gentoo  org>
CommitDate: Thu Dec  8 04:06:17 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=f8ed217c

ebuild-writing/eapi: mention that dohtml has been deprecated in EAPI 6

 ebuild-writing/eapi/text.xml | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 6218eab..59e0bf3 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -940,6 +940,12 @@ src_install() {



+   dohtml deprecated
+   
+   The dohtml helper has been deprecated with 
EAPI=6.
+   
+   
+   
nonfatal die

When die or assert are called under the 
nonfatal command and with the -n option, they will not abort the 
build process but return with an error.



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-09-08 Thread Mike Gilbert
commit: 6018032574616720916bcb7a7e1fae4ef699fedc
Author: Mike Gilbert  gentoo  org>
AuthorDate: Thu Sep  8 21:22:55 2016 +
Commit: Mike Gilbert  gentoo  org>
CommitDate: Thu Sep  8 21:22:55 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=60180325

ebuild-writing/eapi: replace weird unicode angle brackets

 ebuild-writing/eapi/text.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index aaa7033..c339e91 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -815,7 +815,7 @@ RDEPEND="dev-libs/foo:2=



-USAGE: usex 〈USE flag〉 [true output] [false output] [true suffix] 
[false suffix]
+USAGE: usex  [true output] [false output] [true suffix] [false 
suffix]
 DESCRIPTION:
 If USE flag is set, echo [true output][true suffix] (defaults to "yes"),
  otherwise echo [false output][false suffix] (defaults to "no").



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-04-29 Thread Göktürk Yüksek
commit: 8cdab91359e7bb9112720d1df1dde92409ab2348
Author: Louis Sautier  gmail  com>
AuthorDate: Thu Mar 31 12:36:07 2016 +
Commit: Göktürk Yüksek  binghamton  edu>
CommitDate: Sat Apr 30 02:50:11 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=8cdab913

ebuild-writing/eapi/text: fix typo: s/inform/informs/

 ebuild-writing/eapi/text.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 8045b28..aaa7033 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -14,7 +14,7 @@ down and agreed upon.
 
 
 EAPI is a version defined in ebuilds and other package manager related files
-which inform the package manager about the file syntax and content. It is,
+which informs the package manager about the file syntax and content. It is,
 in effect, the version of the package manager specification (PMS) that the
 file adheres to.
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-03-24 Thread Ulrich Müller
commit: 7f647d3e3a3b3f029a9c44ef20fd8f9a3077181b
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Mar 24 15:09:33 2016 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Mar 24 15:09:33 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=7f647d3e

ebuild-writing/eapi: Typo.

Bug: 578184

 ebuild-writing/eapi/text.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index b18f052..239f6f3 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -973,7 +973,7 @@ src_install() {

unpack changes

-   unpack supports elative paths without 
leading ./ (unpack foo/bar.tar.gz is valid as relative 
path).
+   unpack supports relative paths without 
leading ./ (unpack foo/bar.tar.gz is valid as relative 
path).
unpack supports .txz (xz 
compressed tarball).
unpack matches filename extensions 
case-insensitively.




[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-02-15 Thread Ulrich Müller
commit: 4b5ee4105f98de06fd2f75dc032885ba67d111d7
Author: Ulrich Müller  gentoo  org>
AuthorDate: Mon Feb 15 18:00:38 2016 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Feb 15 18:00:38 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=4b5ee410

ebuild-writing/eapi: Fix documentation of locale settings.

 ebuild-writing/eapi/text.xml | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 9d0f2ea..b18f052 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -875,7 +875,11 @@ If USE flag is set, echo [true output][true suffix] 
(defaults to "yes"),
 

Locale settings
-   With EAPI=6 both LC_CTYPE and 
LC_COLLATE are set to C.
+   
+   Behaviour of case modification and collation order 
(LC_CTYPE
+   and LC_COLLATE) are guaranteed to be the same as 
in the
+   C locale, as far as characters in the ASCII range are 
concerned.
+   


failglob enabled



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-02-15 Thread Ulrich Müller
commit: dc45ef4f246cf360e9e67ec0fdfa87749bf1f67d
Author: Markus Meier  gentoo  org>
AuthorDate: Thu Nov 19 20:37:34 2015 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Feb 15 12:09:02 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=dc45ef4f

describe EAPI=6 in EAPI Usage and Description page

This is based on PMS and it's cheat sheet

 ebuild-writing/eapi/text.xml | 135 +++
 1 file changed, 135 insertions(+)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 4cf6133..376089a 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -858,6 +858,141 @@ If USE flag is set, echo [true output][true suffix] 
(defaults to "yes"),
 
 
 
+
+EAPI=6
+
+
+
+Bash version
+
+Ebuilds can use features of Bash version 4.2 (was 3.2 before).
+
+
+
+
+Ebuild environment
+
+
+   
+   Locale settings
+   It is ensured that the behaviour of case modification and 
collation order for ASCII characters (LC_CTYPE and LC_COLLATE) 
are the same as in the POSIX locale.
+   
+   
+   failglob enabled
+   
+   The failglob option of Bash is set in global scope, so 
that unintentional pattern expansion will be caught as an error.
+   
+   
+
+
+
+
+
+Phases
+
+
+   
+   New src_prepare Phase Function
+   
+   This phase is no longer a no-op, it supports applying 
patches via the PATCHES variable and applying user patches via 
eaply_user. The default src_prepare looks like this:
+   
+src_prepare() {
+   if declare -p PATCHES | grep -q "^declare -a "; then
+   [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+   else
+   [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+   fi
+   eapply_user
+}
+   
+   
+   
+   
+   New src_install Phase Function
+   
+   This phase uses the new einstalldocs function 
for installation of documentation. The default src_install looks like 
this:
+   
+src_install() {
+   if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
+   emake DESTDIR="${D}" install
+   fi
+   einstalldocs
+}
+   
+   
+   
+
+
+
+
+
+Helpers
+
+
+   
+   einstall banned
+   
+   The einstall helper has been banned with 
EAPI=6.
+   
+   
+   
+   nonfatal die
+   
+   When die or assert are called under the 
nonfatal command and with the -n option, they will not abort the 
build process but return with an error.
+   
+   
+   
+   eapply support
+   
+   The eapply command is a simplified substitute 
for epatch (from eutils.eclass), implemented in the package 
manager. The patches from its file or directory arguments are applied using 
patch -p1.
+   
+   
+   
+   eapply_user support
+   
+   The eapply_user command permits the package 
manager to apply user-provided patches. It must be called from every 
src_prepare function.
+   
+   
+   
+   econf adds --docdir and 
--htmldir
+   
+   Options --docdir and --htmldir are passed 
to configure, in addition to the existing options.
+   
+   
+   
+   in_iuse support
+   
+   The in_iuse function returns true if the 
USE flag given as its argument is available in the ebuild for USE 
queries.
+   
+   
+   
+   unpack changes
+   
+   unpack supports absolute and relative 
paths.
+   unpack supports .txz (xz 
compressed tarball).
+   unpack matches filename extensions 
case-insensitively.
+   
+   
+   
+   einstalldocs support
+   
+   The einstalldocs function will in-stall the 
files specified by the DOCS variable (or a default set of files if 
DOCS is unset) and by the HTML_DOCS variable.
+   
+   
+   
+   get_libdir support
+   
+   The get_libdir command outputs the lib* 
directory basename suitable for the current ABI.
+   
+   
+
+
+
+
+
+
+
+
 
 
 



[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2016-02-15 Thread Ulrich Müller
commit: aff608f26981189bb0f701d70b5ba47bd1189619
Author: Markus Meier  gentoo  org>
AuthorDate: Fri Nov 20 16:40:24 2015 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Mon Feb 15 12:09:02 2016 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=aff608f2

Update EAPI=6 description

Based on feedback from mgorny and steev

 ebuild-writing/eapi/text.xml | 17 +
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 376089a..9d0f2ea 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -875,12 +875,12 @@ If USE flag is set, echo [true output][true suffix] 
(defaults to "yes"),
 

Locale settings
-   It is ensured that the behaviour of case modification and 
collation order for ASCII characters (LC_CTYPE and LC_COLLATE) 
are the same as in the POSIX locale.
+   With EAPI=6 both LC_CTYPE and 
LC_COLLATE are set to C.


failglob enabled

-   The failglob option of Bash is set in global scope, so 
that unintentional pattern expansion will be caught as an error.
+   For EAPI=6, the 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.


 
@@ -892,9 +892,9 @@ If USE flag is set, echo [true output][true suffix] 
(defaults to "yes"),
 
 

-   New src_prepare Phase Function
+   Update default implementation of 
src_prepare

-   This phase is no longer a no-op, it supports applying 
patches via the PATCHES variable and applying user patches via 
eaply_user. The default src_prepare looks like this:
+   This phase is no longer a no-op, it supports applying 
patches via the PATCHES variable and applying user patches via 
eapply_user. The default src_prepare looks like this:

 src_prepare() {
if declare -p PATCHES | grep -q "^declare -a "; then
@@ -944,13 +944,14 @@ src_install() {

eapply support

-   The eapply command is a simplified substitute 
for epatch (from eutils.eclass), implemented in the package 
manager. The patches from its file or directory arguments are applied using 
patch -p1.
+   The eapply command is a simplified substitute 
for epatch (from eutils.eclass), implemented in the package 
manager. The patches from its file or directory arguments are applied using 
patch -p1, but it accepts patch(1) options from GNU patch to 
override default behavior.



eapply_user support

The eapply_user command permits the package 
manager to apply user-provided patches. It must be called from every 
src_prepare function.
+   eapply_user doesn't need to be called 
explicitly when default src_prepare is called.



@@ -962,13 +963,13 @@ src_install() {

in_iuse support

-   The in_iuse function returns true if the 
USE flag given as its argument is available in the ebuild for USE 
queries.
+   The in_iuse function returns true if the 
given parameter is available in the ebuilds USE.



unpack changes

-   unpack supports absolute and relative 
paths.
+   unpack supports elative paths without 
leading ./ (unpack foo/bar.tar.gz is valid as relative 
path).
unpack supports .txz (xz 
compressed tarball).
unpack matches filename extensions 
case-insensitively.

@@ -976,7 +977,7 @@ src_install() {

einstalldocs support

-   The einstalldocs function will in-stall the 
files specified by the DOCS variable (or a default set of files if 
DOCS is unset) and by the HTML_DOCS variable.
+   The einstalldocs function will install the files 
specified by the DOCS variable (or a default set of files if DOCS 
is unset) and by the HTML_DOCS variable.






[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2015-11-22 Thread Ulrich Müller
commit: b7aff930e229a8dd82229f4495a8caa57625ce51
Author: Ulrich Müller  gentoo  org>
AuthorDate: Thu Nov 19 19:06:19 2015 +
Commit: Ulrich Müller  gentoo  org>
CommitDate: Thu Nov 19 19:06:19 2015 +
URL:https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=b7aff930

ebuild-writing/eapi: Update documentation of doheader in EAPI 5.

Do not mention INSOPTIONS; install options should be set with the
insopts function, but never by directly assigning the INSOPTIONS
variable.

Document the -r option.

Bug: 566254

 ebuild-writing/eapi/text.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 3acf047..4cf6133 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -806,7 +806,8 @@ RDEPEND="dev-libs/foo:2=

New doheader helper function

-   Installs the given header files into /usr/include/, by 
default with file mode 0644. This can be overridden by setting 
INSOPTIONS with the insopts function.
+   Installs the given header files into /usr/include/. If 
option
+   -r is specified, descends recursively into any 
directories given.






[gentoo-commits] proj/devmanual:master commit in: ebuild-writing/eapi/

2014-06-08 Thread Mike Gilbert
commit: d38d6b5e7537e6f35ef9b494b7a705d9df6b62c7
Author: Mike Gilbert  gentoo  org>
AuthorDate: Sun Jun  8 17:37:42 2014 +
Commit: Mike Gilbert  gentoo  org>
CommitDate: Sun Jun  8 17:37:42 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/devmanual.git;a=commit;h=d38d6b5e

ebuild-writing/eapi: Replace REPLACED_BY with REPLACED_BY_VERSION

---
 ebuild-writing/eapi/text.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 1ee4026..3faab22 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -646,7 +646,7 @@ REQUIRED_USE="|| ( foo bar baz )"
when using it in these phases.


-   The REPLACED_BY variable contains the single 
version
+   The REPLACED_BY_VERSION variable contains the 
single version
(PVR) of this package that is replacing us, if 
we are being
uninstalled as part of an install, or an empty string 
otherwise.
It is valid in pkg_prerm and pkg_postrm.