summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--man/ebuild.560
1 files changed, 38 insertions, 22 deletions
diff --git a/man/ebuild.5 b/man/ebuild.5
index af8443df1..9a03e7d58 100644
--- a/man/ebuild.5
+++ b/man/ebuild.5
@@ -1,4 +1,4 @@
-.TH "EBUILD" "5" "Dec 2005" "Portage 2.1" "portage"
+.TH "EBUILD" "5" "Mar 2006" "Portage 2.1" "portage"
.SH "NAME"
ebuild \- the internal format, variables, and functions in an ebuild script
.SH "DESCRIPTION"
@@ -8,13 +8,14 @@ program accepts a single ebuild script as an argument. This script
contains variables and commands that specify how to download, unpack,
patch, compile, install and merge a particular software package from
its original sources. In addition to all of this, the ebuild script
-can also contain pre/post install/remove commands, as required.
+can also contain pre/post install/remove commands, as required. All
+ebuild scripts are written in bash.
.SH "EXAMPLES"
Here's a simple example ebuild:
.DS
.nf
-# Copyright 1999\-2005 Gentoo Foundation
+# Copyright 1999\-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
@@ -51,10 +52,11 @@ src_install() {
.SH "VARIABLES"
.TP
.B MISC USAGE NOTES
-- PORTAGE* and PORTDIR* variables may be found in \fBmake.conf\fR(5).
+- All variables defined in \fBmake.conf\fR(5) are available for use in
+ebuilds (such as the PORTAGE* and PORTDIR* variables)
.br
-- When assigning values to variables in ebuilds, you \fBcannot have a space\fR
-between the variable name and the equal sign.
+- When assigning values to variables in ebuilds, you \fBcannot have a
+space\fR between the variable name and the equal sign.
.TP
.B P
This variable contains the package name without the ebuild revision.
@@ -92,7 +94,7 @@ Contains the package category name.
.TP
.B A
Contains all source files required for the package. This variable must
-not be defined. It is autogenerated from the \fISRC_URI\fR variables.
+not be defined. It is autogenerated from the \fISRC_URI\fR variable.
.TP
\fBWORKDIR\fR = \fI"${PORTAGE_TMPDIR}/portage/${PF}/work"\fR
Contains the path to the package build root. Do not modify this variable.
@@ -121,8 +123,8 @@ Should contain a short description of the package.
.TP
\fBSRC_URI\fR = \fI"http://happy.com/little/${P}.tar.gz"\fR
Contains a list of URI's for the required source files. It can contain
-multiple URI's for a single source file. The fastest location is chosen
-if the file was not found at \fIGENTOO_MIRROR\fB\fR.
+multiple URI's for a single source file. The list is processed in order
+if the file was not found on any of the \fIGENTOO_MIRROR\fRs.
.TP
\fBHOMEPAGE\fR = \fI"http://happy.com/"\fR
Should contain a list of URL's for the sources main sites and other further
@@ -137,17 +139,18 @@ being submitted for inclusion, it must have ~arch set for architectures
where it has been PROVEN TO WORK. (Packages KEYWORDed this way may be
unmasked for testing by setting ACCEPT_KEYWORDS="~arch" on the command
line, or in \fBmake.conf\fR(5)) For an authoritative list please review
-/usr/portage/profiles/arch.list.
+/usr/portage/profiles/arch.list. Please keep this list in alphabetical order.
.TP
\fBSLOT\fR
-This sets the SLOT for packages that may need to co\-exist. By default
-you should set \fBSLOT\fR="0" unless you know what you are doing and need
-to do otherwise. This value should \fINEVER\fR be left undefined.
+This sets the SLOT for packages that may need to have multiple versions
+co\-exist. By default you should set \fBSLOT\fR="0". If you are unsure, then
+do not fiddle with this until you seek some guidance from some guru. This
+value should \fINEVER\fR be left undefined.
.TP
\fBLICENSE\fR
This should be a space delimited list of licenses that the package falls
under. This \fB_must_\fR be set to a matching license in
-/usr/portage/licenses/. If the license does not exist in portage yet you
+/usr/portage/licenses/. If the license does not exist in portage yet, you
must add it first.
.TP
\fBIUSE\fR
@@ -342,13 +345,14 @@ or sun specifically.
.SH "PORTAGE DECLARATIONS"
.TP
.B inherit
-Inherit is portage's maintainance of extra classes of functions that
-are external to ebuilds and provided as inheritable capabilities and
-data. They define functions and set data types as drop-in replacements,
-expanded, and simplified routines for extremely common tasks to streamline
-the build process. Inherit may only be called once in an ebuild and it may
-\fBnever be wrapped within any conditionals\fR of any kind. Specification of
-the eclasses contains only their name and not the \fI.eclass\fR extention.
+Inherit is portage's maintainance of extra classes of functions that are
+external to ebuilds and provided as inheritable capabilities and data. They
+define functions and set data types as drop-in replacements, expanded, and
+simplified routines for extremely common tasks to streamline the build
+process. Inherit may only be called once in an ebuild and it may \fBnever be
+wrapped within any conditionals\fR of any kind. Specification of the eclasses
+contains only their name and not the \fI.eclass\fR extention. Also note that
+the inherit statement must come before other variable declarations.
.SH "FUNCTIONS"
.TP
.B pkg_nofetch
@@ -507,6 +511,16 @@ Same as \fBeinfo\fR, but should be used when showing a warning to the user.
.TP
\fBeerror\fR \fI"error message"\fR
Same as \fBeinfo\fR, but should be used when showing an error to the user.
+.TP
+\fBebegin\fR \fI"helpful message"\fR
+Like \fBeinfo\fR, we output a \fIhelpful message\fR and then hint that the
+following operation may take some time to complete. Once the task is
+finished, you need to call \fBeend\fR.
+.TP
+\fBeend\fR \fI<status>\fR \fI["error message"]\fR
+Followup the \fBebegin\fR message with an appropriate "OK" or "!!" (for
+errors) marker. If \fIstatus\fR is non-zero, then the additional \fIerror
+message\fR is displayed.
.SH "HELPER FUNCTIONS: UNPACK"
.TP
\fBunpack\fR \fI<source>\fR \fI[list of more sources]\fR
@@ -540,7 +554,9 @@ This is used as a replacement for make. Performs 'make ${MAKEOPTS}
.br
if you are going to use \fBemake\fR, make sure your build is happy with
parallel makes (make \-j2). It should be tested thoroughly as parallel
-makes are notorious for failing _sometimes_ but not always.
+makes are notorious for failing _sometimes_ but not always. If you determine
+that your package fails to build in parallel, and you are unable to resolve
+the issue, then you should run '\fBemake\fR -j1' instead of 'make'.
.SH "HELPER FUNCTIONS: INSTALL"
.TP
\fBeinstall\fR \fI[make options]\fR