Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 337318 Details for
Bug 450372
sys-apps/portage: russian translation of manpages
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
ebuild.5 english
ebuild.5 (text/plain), 54.23 KB, created by
Vladimir Romanov (RETIRED)
on 2013-01-30 15:18:44 UTC
(
hide
)
Description:
ebuild.5 english
Filename:
MIME Type:
Creator:
Vladimir Romanov (RETIRED)
Created:
2013-01-30 15:18:44 UTC
Size:
54.23 KB
patch
obsolete
>.TH "EBUILD" "5" "Jan 2013" "Portage VERSION" "Portage" > >.SH "NAME" >ebuild \- the internal format, variables, and functions in an ebuild script > >.SH "DESCRIPTION" >The \fBebuild\fR(1) 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. All ebuild scripts are >written in bash. > >.SS "Dependencies" >A \fIdepend atom\fR is simply a dependency that is used by portage when calculating >relationships between packages. Please note that if the atom has not already >been emerged, then the latest version available is matched. >.TP >.B Atom Bases >The base atom is just a full category/packagename. > >Examples: >.nf >.I sys\-apps/sed >.I sys\-libs/zlib >.I net\-misc/dhcp >.fi >.TP >.B Atom Versions >It is nice to be more specific and say that only certain versions of atoms are >acceptable. Note that versions must be combined with a prefix (see below). >Hence you may add a version number as a postfix to the base. > >Examples: >.nf > sys\-apps/sed\fI\-4.0.5\fR > sys\-libs/zlib\fI\-1.1.4\-r1\fR > net\-misc/dhcp\fI\-3.0_p2\fR >.fi > >Versions are normally made up of two or three numbers separated by periods, such >as 1.2 or 4.5.2. This string may be followed by a character such as 1.2a or >4.5.2z. Note that this letter is \fInot\fR meant to indicate alpha, beta, >etc... status. For that, use the optional suffix; either _alpha, _beta, _pre >(pre\-release), _rc (release candidate), or _p (patch). This means for the >3rd pre\-release of a package, you would use something like 1.2_pre3. The >suffixes here can be arbitrarily chained without limitation. >.TP >.B Atom Prefix Operators [> >= = <= <] >Sometimes you want to be able to depend on general versions rather than specifying >exact versions all the time. Hence we provide standard boolean operators: > >Examples: >.nf > \fI>\fRmedia\-libs/libgd\-1.6 > \fI>=\fRmedia\-libs/libgd\-1.6 > \fI=\fRmedia\-libs/libgd\-1.6 > \fI<=\fRmedia\-libs/libgd\-1.6 > \fI<\fRmedia\-libs/libgd\-1.6 >.fi >.TP >.B Extended Atom Prefixes [!~] and Postfixes [*] >Now to get even fancier, we provide the ability to define blocking packages and >version range matching. Also note that these extended prefixes/postfixes may >be combined in any way with the atom classes defined above. >.RS >.TP >.I ~ >means match any revision of the base version specified. So in the >example below, we would match versions '1.0.2a', '1.0.2a\-r1', '1.0.2a\-r2', >etc... > >Example: >.nf > \fI~\fRnet\-libs/libnet\-1.0.2a >.fi >.TP >.I ! >means block packages from being installed at the same time. > >Example: >.nf > \fI!\fRapp\-text/dos2unix >.fi >.TP >.I !! >means block packages from being installed at the same time >and explicitly disallow them from being temporarily installed >simultaneously during a series of upgrades. This syntax is supported >beginning with \fBEAPI 2\fR. > >Example: >.nf > \fI!!\fR<sys\-apps/portage\-2.1.4_rc1 >.fi >.TP >.I * >means match any version of the package so long >as the specified string prefix is matched. So with a >version of '2*', we can match '2.1', '2.2', '2.2.1', >etc... and not match version '1.0', '3.0', '4.1', etc... >Beware that, due to the string matching nature, '20' >will also be matched by '2*'. The version part >that comes before the '*' must be a valid version in the absence of the '*'. >For example, '2' is a valid version and '2.' is not. Therefore, '2*' is >allowed and '2.*' is not. > >Examples: >.nf > =dev\-libs/glib\-2\fI*\fR > \fI!\fR=net\-fs/samba\-2\fI*\fR >.fi >.RE >.TP >.B Atom Slots >Beginning with \fBEAPI 1\fR, any atom can be constrained to match a specific >\fBSLOT\fR. This is accomplished by appending a colon followed by a >\fBSLOT\fR: > >Examples: >.nf > x11\-libs/qt:3 > \fI~\fRx11\-libs/qt-3.3.8:3 > \fI>=\fRx11\-libs/qt-3.3.8:3 > \fI=\fRx11\-libs/qt-3.3*:3 >.fi >.TP >.B Sub Slots >Beginning with \fBEAPI 5\fR, a slot dependency may contain an >optional sub\-slot part that follows the regular slot and is >delimited by a \fI/\fR character. > >Examples: >.nf > dev\-libs/icu:0/0 > dev\-libs/icu:0/49 > dev\-lang/perl:0/5.12 > dev\-libs/glib:2/2.30 >.fi >.TP >.B Atom Slot Operators >Beginning with \fBEAPI 5\fR, slot operator dependency consists >of a colon followed by one of the following operators: >.RS >.TP >.I * >Indicates that any slot value is acceptable. In addition, >for runtime dependencies, indicates that the package will not >break if the matched package is uninstalled and replaced by >a different matching package in a different slot. > >Examples: >.nf > dev\-libs/icu:* > dev\-lang/perl:* > dev-libs/glib:* >.fi >.TP >.I = >Indicates that any slot value is acceptable. In addition, >for runtime dependencies, indicates that the package will >break unless a matching package with slot and sub\-slot equal >to the slot and sub\-slot of the best installed version at the >time the package was installed is available. > >Examples: >.nf > dev\-libs/icu:= > dev\-lang/perl:= > dev-libs/glib:= >.fi >.TP >.I slot= >Indicates that only a specific slot value is acceptable, and >otherwise behaves identically to the plain equals slot operator. > >Examples: >.nf > dev\-libs/icu:0= > dev\-lang/perl:0= > dev-libs/glib:2= >.fi >.PP >To implement the equals slot operator, the package manager >will need to store the slot/sub\-slot pair of the best installed >version of the matching package. This syntax is only for package >manager use and must not be used by ebuilds. The package manager >may do this by inserting the appropriate slot/sub\-slot pair >between the colon and equals sign when saving the package's >dependencies. The sub\-slot part must not be omitted here >(when the SLOT variable omits the sub\-slot part, the package >is considered to have an implicit sub\-slot which is equal to >the regular slot). > >Examples: >.nf > dev\-libs/icu:0/0= > dev\-libs/icu:0/49= > dev\-lang/perl:0/5.12= > dev-libs/glib:2/2.30= >.fi >.RE >.TP >.B Atom USE >Beginning with \fBEAPI 2\fR, any atom can be constrained to match specific >\fBUSE\fR flag settings. When used together with \fBSLOT\fR dependencies, >\fBUSE\fR dependencies appear on the right hand side of \fBSLOT\fR >dependencies. >.RS >.TP >.B Unconditional USE Dependencies >.TS >l l >__ >l l. >Example Meaning >foo[bar] foo must have bar enabled >foo[bar,baz] foo must have both bar and baz enabled >foo[\-bar,baz] foo must have bar disabled and baz enabled >.TE >.TP >.B Conditional USE Dependencies >.TS >l l >__ >l l. >Compact Form Equivalent Expanded Form >foo[bar?] bar? ( foo[bar] ) !bar? ( foo ) >foo[!bar?] bar? ( foo ) !bar? ( foo[\-bar] ) >foo[bar=] bar? ( foo[bar] ) !bar? ( foo[\-bar] ) >foo[!bar=] bar? ( foo[\-bar] ) !bar? ( foo[bar] ) >.TE >.RE >.TP >.B Atom USE defaults >Beginning with \fBEAPI 4\fR, \fBUSE\fR dependencies may specify default >assumptions about values for flags that may or may not be missing from >the \fBIUSE\fR of the matched package. Such defaults are specified by >immediately following a flag with either \fI(+)\fR or \fI(\-)\fR. Use >\fI(+)\fR to behave as if a missing flag is present and enabled, or >\fI(\-)\fR to behave as if it is present and disabled: > >Examples: >.nf > media\-video/ffmpeg[threads(+)] > media\-video/ffmpeg[-threads(\-)] >.fi >.TP >.B Dynamic Dependencies >Sometimes programs may depend on different things depending on the USE >variable. Portage offers a few options to handle this. Note that when >using the following syntaxes, each case is considered as 1 Atom in the >scope it appears. That means that each Atom both conditionally include >multiple Atoms and be nested to an infinite depth. >.RS >.TP >.B usevar? ( Atom ) >To include the jpeg library when the user has jpeg in \fBUSE\fR, simply use the >following syntax: > >jpeg? ( media\-libs/jpeg ) >.TP >.B !usevar? ( Atom ) >If you want to include a package only if the user does not have a certain option >in their \fBUSE\fR variable, then use the following syntax: > >!nophysfs? ( dev\-games/physfs ) > >This is often useful for those times when you want to want to add optional support >for a feature and have it enabled by default. >.TP >.B usevar? ( Atom if true ) !usevar? ( Atom if false ) >For functionality like the tertiary operator found in C you must use >two statements, one normal and one inverted. If a package uses >GTK2 or GTK1, but not both, then you can handle that like this: > >gtk2? ( =x11\-libs/gtk+\-2* ) !gtk2? ( =x11\-libs/gtk+\-1* ) > >That way the default is the superior GTK2 library. >.TP >.B || ( Atom Atom ... ) >When a package can work with a few different packages but a virtual is not >appropriate, this syntax can easily be used. > >Example: >.nf >|| ( > app\-games/unreal\-tournament > app\-games/unreal\-tournament\-goty >) >.fi > >Here we see that unreal\-tournament has a normal version and it has a goty >version. Since they provide the same base set of files, another package can >use either. Adding a virtual is inappropriate due to the small scope of it. > >Another good example is when a package can be built with multiple video >interfaces, but it can only ever have just one. > >Example: >.nf >|| ( > sdl? ( media\-libs/libsdl ) > svga? ( media\-libs/svgalib ) > opengl? ( virtual/opengl ) > ggi? ( media\-libs/libggi ) > virtual/x11 >) >.fi > >Here only one of the packages will be chosen, and the order of preference is >determined by the order in which they appear. So sdl has the best chance of >being chosen, followed by svga, then opengl, then ggi, with a default of X if >the user does not specify any of the previous choices. > >Note that if any of the packages listed are already merged, the package manager >will use that to consider the dependency satisfied. > >.SS "Cross-compilation" >Portage supports cross-compilation into a subdirectory specified by \fBROOT\fR. >.TP >.B Host >\fIHost\fR in this context means the platform hosting the build process, i.e. >what autotools calls CBUILD. >Its packages are contained in the root of the filesystem ("\fI/\fR"). > >If \fBROOT\fR is "\fI/\fR", all dependency types will be installed there. >Otherwise, for EAPIs that support \fBHDEPEND\fR (experimental >\fBEAPI 5-hdepend\fR), only \fBHDEPEND\fR is installed into "\fI/\fR". >For EAPIs that do not support \fBHDEPEND\fR, the behaviour is controlled by the >\fI\-\-root-deps\fR flag to \fBemerge\fR(1), defaulting to install only >\fBDEPEND\fR into the \fIhost\fR. >.TP >.B Target >\fITarget\fR refers to the platform that the package will later run on, i.e. >what autotools calls CHOST. >The directory housing this system is specified by \fBROOT\fR. >If it is different from "\fI/\fR", i.e. \fIhost\fR and \fItarget\fR are not the >same, this variable contains the path to the directory housing the \fItarget\fR >system. > >For EAPIs that support \fBHDEPEND\fR (experimental \fBEAPI 5-hdepend\fR), >\fBDEPEND\fR, \fBRDEPEND\fR, and \fBPDEPEND\fR >list the \fItarget\fR dependencies, i.e. those to be installed into \fBROOT\fR. >For EAPIs that do not support \fBHDEPEND\fR, the \fBemerge\fR(1) flag >\fI\-\-root-deps\fR controls what the package manager installs there. >Without it, \fBemerge\fR defaults to install only runtime dependencies (i.e. >\fBRDEPEND\fR and \fBPDEPEND\fR) into \fBROOT\fR. >.PP >See section \fBVARIABLES\fR for more information about the \fBDEPEND\fR, >\fBRDEPEND\fR and \fBHDEPEND\fR variables. >.TP >.B The targetroot USE flag >For EAPIs that support the "\fItargetroot\fR" USE flag, that flag is >automatically enabled by the package manager if \fIhost\fR and \fItarget\fR >system are not the same, i.e. if the \fBROOT\fR is not "\fI/\fR". >This is necessary where the package to be built needs an executable copy of >itself during the build process. >A known example is dev-lang/python, which needs to run a Python interpreter >during compilation. > >.SH "VARIABLES" >.TP >.B Usage Notes >\- 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 \fIcannot have a >space\fR between the variable name and the equal sign. >.br >\- Variable values should only contain characters that are members of the >\fBascii\fR(7) character set. This requirement is mandated by \fBGLEP 31\fR. >.TP >.B P >This variable contains the package name without the ebuild revision. >This variable must NEVER be modified. > >xfree\-4.2.1\-r2.ebuild \-\-> $P=='xfree\-4.2.1' >.TP >.B PN >Contains the name of the script without the version number. > >xfree\-4.2.1\-r2.ebuild \-\-> $PN=='xfree' >.TP >.B PV >Contains the version number without the revision. > >xfree\-4.2.1\-r2.ebuild \-\-> $PV=='4.2.1' >.TP >.B PR >Contains the revision number or 'r0' if no revision number exists. > >xfree\-4.2.1\-r2.ebuild \-\-> $PR=='r2' >.TP >.B PVR >Contains the version number with the revision. > >xfree\-4.2.1\-r2.ebuild \-\-> $PVR=='4.2.1\-r2' >.TP >.B PF >Contains the full package name \fBPN\fR\-\fBPVR\fR > >xfree\-4.2.1\-r2.ebuild \-\-> $PF=='xfree\-4.2.1\-r2' >.TP >.B CATEGORY >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 \fBSRC_URI\fR variable. >.TP >.B WORKDIR\fR = \fI"${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work" >Contains the path to the package build root. Do not modify this variable. >.TP >.B FILESDIR\fR = \fI"${PORTDIR}/${CATEGORY}/${PN}/files" >Contains the path to the 'files' sub folder in the package specific >location in the portage tree. Do not modify this variable. >.TP >.B EBUILD_PHASE >Contains the abreviated name of the phase function that is >currently executing, such as "setup", "unpack", "compile", or >"preinst". >.TP >.B EBUILD_PHASE_FUNC >Beginning with \fBEAPI 5\fR, contains the full name of the phase >function that is currently executing, such as "pkg_setup", >"src_unpack", "src_compile", or "pkg_preinst". >.TP >.B EPREFIX >Beginning with \fBEAPI 3\fR, contains the offset >that this Portage was configured for during >installation. The offset is sometimes necessary in an ebuild or eclass, >and is available in such cases as ${EPREFIX}. EPREFIX does not contain >a trailing slash, therefore an absent offset is represented by the empty >string. Do not modify this variable. >.TP >.B S\fR = \fI"${WORKDIR}/${P}" >Contains the path to the temporary \fIbuild directory\fR. This variable >is used by the functions \fIsrc_compile\fR and \fIsrc_install\fR. Both >are executed with \fIS\fR as the current directory. This variable may >be modified to match the extraction directory of a tarball for the package. >.TP >.B T\fR = \fI"${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/temp" >Contains the path to a \fItemporary directory\fR. You may use this for >whatever you like. >.TP >.B D\fR = \fI"${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image/" >Contains the path to the temporary \fIinstall directory\fR. Every write >operation that does not involve the helper tools and functions (found below) >should be prefixed with ${D}. >Beginning with \fBEAPI 3\fR, the offset prefix often needs >to be taken into account here, for which the variable >${ED} is provided (see below). >Do not modify this variable. >.TP >.B ED\fR = \fI"${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image/${EPREFIX}/" >Beginning with \fBEAPI 3\fR, contains the path >"${D%/}${EPREFIX}/" for convenience purposes. >For EAPI values prior to \fBEAPI 3\fR which do >not support ED, helpers use \fBD\fR where >they would otherwise use ED. >Do not modify this variable. >.TP >.B MERGE_TYPE >Beginning with \fBEAPI 4\fR, the MERGE_TYPE variable can be used to >query the current merge type. This variable will contain one of the >following possible values: > >.RS >.TS >l l >__ >l l. >Value Meaning >binary previously\-built which is scheduled for merge >buildonly source\-build which is not scheduled for merge >source source\-build which is scheduled for merge >.TE >.RE >.TP >.B PORTAGE_LOG_FILE >Contains the path of the build log. If \fBPORT_LOGDIR\fR variable is unset then >PORTAGE_LOG_FILE=\fI"${T}/build.log"\fR. >.TP >.B REPLACED_BY_VERSION >Beginning with \fBEAPI 4\fR, the REPLACED_BY_VERSION variable can be >used in pkg_prerm and pkg_postrm to query the package version that >is replacing the current package. If there is no replacement package, >the variable will be empty, otherwise it will contain a single version >number. >.TP >.B REPLACING_VERSIONS >Beginning with \fBEAPI 4\fR, the REPLACING_VERSIONS variable can be >used in pkg_pretend, pkg_setup, pkg_preinst and pkg_postinst to query >the package version(s) that the current package is replacing. If there >are no packages to replace, the variable will be empty, otherwise it >will contain a space\-separated list of version numbers corresponding >to the package version(s) being replaced. Typically, this variable will >not contain more than one version, but according to PMS it can contain >more. >.TP >.B ROOT\fR = \fI"/" >Contains the path that portage should use as the root of the live filesystem. >When packages wish to make changes to the live filesystem, they should do so in >the tree prefixed by ${ROOT}. Often the offset prefix needs to be taken >into account here, for which the variable ${EROOT} is provided (see >below). Do not modify this variable. >.TP >.B EROOT\fR = \fI"${ROOT%/}${EPREFIX}/" >Beginning with \fBEAPI 3\fR, contains >"${ROOT%/}${EPREFIX}/" for convenience >purposes. Do not modify this variable. >.TP >.B DESCRIPTION\fR = \fI"A happy little package" >Should contain a short description of the package. >.TP >.B EAPI\fR = \fI"0" >Defines the ebuild API version to which this package conforms. If not >defined then it defaults to "0". If portage does not recognize the >EAPI value then it will mask the package and refuse to perform any >operations with it since this means that a newer version of portage >needs to be installed first. For maximum backward compatiblity, a >package should conform to the lowest possible EAPI. Note that anyone >who uses the \fBebuild\fR(1) and \fBrepoman\fR(1) commands with this >package will be required to have a version of portage that recognizes >the EAPI to which this package conforms. >.TP >.B SRC_URI\fR = \fI"http://example.com/path/${P}.tar.gz" >Contains a list of URIs for the required source files. It can contain >multiple URIs for a single source file. The list is processed in order >if the file was not found on any of the \fIGENTOO_MIRRORS\fR. >Beginning with \fBEAPI 2\fR, the output file name of a given URI may be >customized with a "->" operator on the right hand side, followed by the >desired output file name. All tokens, including the operator and output >file name, should be separated by whitespace. >.TP >.B HOMEPAGE\fR = \fI"http://example.com/" >Should contain a list of URIs for the sources main sites and other further >package dependent information. >.TP >.B KEYWORDS\fR = \fI[\-~][x86,ppc,sparc,mips,alpha,arm,hppa] >Should contain appropriate list of arches that the ebuild is know to >work/not work. By default if you do not know if an ebuild runs under >a particular arch simply omit that KEYWORD. If the ebuild will not >work on that arch include it as \-ppc for example. If the ebuild is >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. Please keep this list in alphabetical order. >.TP >.B SLOT >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. > >Beginning with \fBEAPI 5\fR, 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. Refer to the \fBAtom Slot >Operators\fR section for more information about sub\-slot >usage. >.TP >.B LICENSE >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 >must add it first. >.TP >.B IUSE >This should be a list of any and all USE flags that are leveraged within >your build script. The only USE flags that should not be listed here are >arch related flags (see \fBKEYWORDS\fR). Beginning with \fBEAPI 1\fR, it >is possible to prefix flags with + or - in order to create default settings >that respectively enable or disable the corresponding \fBUSE\fR flags. For >details about \fBUSE\fR flag stacking order, refer to the \fBUSE_ORDER\fR >variable in \fBmake.conf\fR(5). Given the default \fBUSE_ORDER\fR setting, >negative IUSE default settings are effective only for negation of >repo\-level USE settings, since profile and user configuration settings >override them. >.TP >.B DEPEND >This should contain a list of all packages that are required for the program >to compile (aka \fIbuildtime\fR dependencies). These are usually libraries and >headers. > >Starting from experimental \fBEAPI 5-hdepend\fR, tools should go into the >\fBHDEPEND\fR variable instead, as \fBDEPEND\fR will only be installed into the >\fItarget\fR system and hence cannot be executed in a cross\-compile setting. >(See section \fBCross\-compilation\fR for more information.) > >You may use the syntax described above in the \fBDependencies\fR section. >.TP >.B RDEPEND >This should contain a list of all packages that are required for this >program to run (aka \fIruntime\fR dependencies). These are usually libraries. > >In \fBEAPI 3\fR or earlier, if this is not set, then it defaults to the value >of \fBDEPEND\fR. In \fBEAPI 4\fR or later, \fBRDEPEND\fR will never be >implicitly set. > >You may use the syntax described above in the \fBDependencies\fR section. >.TP >.B HDEPEND >This should contain a list of all packages that are required to be executable >during compilation of this program (aka \fIhost\fR buildtime dependencies). >These are usually tools, like interpreters or (cross\-)compilers. > >This variable is new in experimental \fBEAPI 5-hdepend\fR and will be installed >into the \fIhost\fR system. >(See section \fBCross-compilation\fR for more information.) > >You may use the syntax described above in the \fBDependencies\fR section. >.TP >.B PDEPEND >This should contain a list of all packages that should be merged after this >one (aka \fIpost\fR merge dependencies), but which may be installed by the >package manager at any time, if that is not possible. > >.B ***WARNING*** >.br >Use this only as last resort to break cyclic dependencies! > >You may use the syntax described above in the \fBDependencies\fR section. >.TP >.B REQUIRED_USE >Beginning with \fBEAPI 4\fR, the \fBREQUIRED_USE\fR variable can be >used to specify combinations of \fBUSE\fR flags that are allowed >or not allowed. Elements can be nested when necessary. >.TS >l l >__ >l l. >Behavior Expression >If flag1 enabled then flag2 disabled flag1? ( !flag2 ) >If flag1 enabled then flag2 enabled flag1? ( flag2 ) >If flag1 disabled then flag2 enabled !flag1? ( flag2 ) >If flag1 disabled then flag2 disabled !flag1? ( !flag2 ) >Must enable any one or more (inclusive or) || ( flag1 flag2 flag3 ) >Must enable exactly one but not more (exclusive or) ^^ ( flag1 flag2 flag3 ) >May enable at most one (EAPI 5 or later) ?? ( flag1 flag2 flag3 ) >.TE >.TP >.B RESTRICT\fR = \fI[strip,mirror,fetch,userpriv] >This should be a space delimited list of portage features to restrict. >You may use conditional syntax to vary restrictions as seen above in DEPEND. >.PD 0 >.RS >.TP >.I binchecks >Disable all QA checks for binaries. This should ONLY be used in packages >for which binary checks make no sense (linux\-headers and kernel\-sources, for >example, can safely be skipped since they have no binaries). If the binary >checks need to be skipped for other reasons (such as proprietary binaries), >see the \fBQA CONTROL VARIABLES\fR section for more specific exemptions. >.TP >.I bindist >Distribution of built packages is restricted. >.TP >.I fetch >like \fImirror\fR but the files will not be fetched via \fBSRC_URI\fR either. >.TP >.I installsources >Disables installsources for specific packages. This is for packages with >binaries that are not compatible with debugedit. >.TP >.I mirror >files in \fBSRC_URI\fR will not be downloaded from the \fBGENTOO_MIRRORS\fR. >.TP >.I primaryuri >fetch from URIs in \fBSRC_URI\fR before \fBGENTOO_MIRRORS\fR. >.TP >.I strip >final binaries/libraries will not be stripped of debug symbols. >.TP >.I test >do not run src_test even if user has \fBFEATURES\fR=test. >.TP >.I userpriv >Disables userpriv for specific packages. >.RE >.PD 1 >.TP >.B PROPERTIES\fR = \fI[interactive] >A space delimited list of properties, with conditional syntax support. >.PD 0 >.RS >.TP >.I interactive >One or more ebuild phases will produce a prompt that requires user interaction. >.RE >.PD 1 >.TP >.B PROVIDE\fR = \fI"virtual/TARGET" >This variable should only be used when a package provides a virtual target. >For example, blackdown\-jdk and sun\-jdk provide \fIvirtual/jdk\fR. This >allows for packages to depend on \fIvirtual/jdk\fR rather than on blackdown >or sun specifically. >.TP >.B DOCS >Beginning with \fBEAPI 4\fR, an array or space\-delimited list of documentation >files for the default src_install function to install using dodoc. If >undefined, a reasonable default list is used. See the documentation for >src_install below. > >.SS "QA Control Variables:" >.TP >.B Usage Notes >Several QA variables are provided which allow an ebuild to manipulate some >of the QA checks performed by portage. Use of these variables in ebuilds >should be kept to an absolute minimum otherwise they defeat the purpose >of the QA checks, and their use is subject to agreement of the QA team. >They are primarily intended for use by ebuilds that install closed\-source >binary objects that cannot be altered. > >Note that objects that violate these rules may fail on some architectures. >.TP >.B QA_PREBUILT >This should contain a list of file paths, relative to the image >directory, of files that are pre\-built binaries. Paths >listed here will be appended to each of the QA_* variables >listed below. The paths may contain fnmatch\-like patterns >which will be internally translated to regular expressions for >the QA_* variables that support regular expressions instead >of fnmatch patterns. The translation mechanism simply replaces >"*" with ".*". >.TP >.B QA_TEXTRELS >This variable can be set to a list of file paths, relative to the image >directory, of files that contain text relocations that cannot be eliminated. >The paths may contain fnmatch patterns. > >This variable is intended to be used on closed\-source binary objects that >cannot be altered. >.TP >.B QA_EXECSTACK >This should contain a list of file paths, relative to the image directory, of >objects that require executable stack in order to run. >The paths may contain fnmatch patterns. > >This variable is intended to be used on objects that truly need executable >stack (i.e. not those marked to need it which in fact do not). >.TP >.B QA_WX_LOAD >This should contain a list of file paths, relative to the image directory, of >files that contain writable and executable segments. These are rare. >The paths may contain fnmatch patterns. >.TP >.B QA_FLAGS_IGNORED >This should contain a list of file paths, relative to the image directory, of >files that do not contain .GCC.command.line sections or contain .hash sections. >The paths may contain regular expressions with escape\-quoted special characters. > >This variable is intended to be used on files of binary packages which ignore >CFLAGS, CXXFLAGS, FFLAGS, FCFLAGS, and LDFLAGS variables. >.TP >.B QA_MULTILIB_PATHS >This should contain a list of file paths, relative to the image directory, of >files that should be ignored for the multilib\-strict checks. >The paths may contain regular expressions with escape\-quoted special characters. >.TP >.B QA_PRESTRIPPED >This should contain a list of file paths, relative to the image directory, of >files that contain pre-stripped binaries. The paths may contain regular >expressions with escape\-quoted special characters. >.TP >.B QA_SONAME >This should contain a list of file paths, relative to the image directory, of >shared libraries that lack SONAMEs. The paths may contain regular expressions >with escape\-quoted special characters. >.TP >.B QA_SONAME_NO_SYMLINK >This should contain a list of file paths, relative to the image directory, of >shared libraries that have SONAMEs but should not have a corresponding SONAME >symlink in the same directory. The paths may contain regular expressions >with escape\-quoted special characters. >.TP >.B QA_AM_MAINTAINER_MODE >This should contain a list of lines containing automake missing \-\-run >commands. The lines may contain regular expressions with escape\-quoted >special characters. >.TP >.B QA_CONFIGURE_OPTIONS >This should contain a list of configure options which trigger warnings about >unrecognized options. The options may contain regular expressions with >escape\-quoted special characters. >.TP >.B QA_DT_NEEDED >This should contain a list of file paths, relative to the image directory, of >shared libraries that lack NEEDED entries. The paths may contain regular >expressions with escape\-quoted special characters. >.TP >.B QA_DESKTOP_FILE >This should contain a list of file paths, relative to the image directory, of >desktop files which should not be validated. The paths may contain regular >expressions with escape\-quoted special characters. > >.SH "PORTAGE DECLARATIONS" >.TP >.B inherit >Inherit is portage's maintenance 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. Call to inherit cannot depend on conditions which can vary in given >ebuild. Specification of the eclasses contains only their name and not the >\fI.eclass\fR extension. Also note that the inherit statement must come >before other variable declarations unless these variables are used in global >scope of eclasses. > >.SH "PHASE FUNCTIONS" >.TP >.B pkg_pretend >Beginning with \fBEAPI 4\fR, this function can be defined in order to >check that miscellaneous requirements are met. It is called as early >as possible, before any attempt is made to satisfy dependencies. If the >function detects a problem then it should call eerror and die. The >environment (variables, functions, temporary directories, etc..) that >is used to execute pkg_pretend is not saved and therefore is not >available in phases that execute afterwards. >.TP >.B pkg_nofetch >This function will be executed when the files in \fBSRC_URI\fR >cannot be fetched for any reason. If you turn on \fIfetch\fR in >\fBRESTRICT\fR, this is useful for displaying information to the >user on *how* to obtain said files. All >you have to do is output a message and let the function return. Do not >end the function with a call to \fBdie\fR. >.TP >.B pkg_setup >This function can be used if the package needs specific setup actions or >checks to be preformed before anything else. >.br >Initial working directory: $PORTAGE_TMPDIR >.TP >.B src_unpack >This function is used to unpack all the sources in \fIA\fR to \fIWORKDIR\fR. >If not defined in the \fIebuild script\fR it calls \fIunpack ${A}\fR. Any >patches and other pre configure/compile modifications should be done here. >.br >Initial working directory: $WORKDIR >.TP >.B src_prepare >All preparation of source code, such as application of patches, should be done >here. This function is supported beginning with \fBEAPI 2\fR. >.br >Initial working directory: $S >.TP >.B src_configure >All necessary steps for configuration should be done here. This function is >supported beginning with \fBEAPI 2\fR. >.br >Initial working directory: $S >.TP >.B src_compile >With less than \fBEAPI 2\fR, all necessary steps for both configuration and >compilation should be done here. Beginning with \fBEAPI 2\fR, only compilation >steps should be done here. >.br >Initial working directory: $S >.TP >.B src_test >Run all package specific test cases. The default is to run >\'emake check\' followed \'emake test\'. Prior to \fBEAPI 5\fR, >the default src_test implementation will automatically pass the >\-j1 option as the last argument to emake, and beginning with >\fBEAPI 5\fR it will allow the tests to run in parallel. >.br >Initial working directory: $S >.TP >.B src_install >Should contain everything required to install the package in the temporary >\fIinstall directory\fR. >.br >Initial working directory: $S > >Beginning with \fBEAPI 4\fR, if src_install is undefined then the >following default implementation is used: > >.nf >src_install() { > if [[ \-f Makefile || \-f GNUmakefile || \-f makefile ]] ; then > emake DESTDIR="${D}" install > fi > > if ! declare -p DOCS &>/dev/null ; then > local d > for d in README* ChangeLog AUTHORS NEWS TODO CHANGES \\ > THANKS BUGS FAQ CREDITS CHANGELOG ; do > [[ \-s "${d}" ]] && dodoc "${d}" > done > elif [[ $(declare \-p DOCS) == "declare \-a "* ]] ; then > dodoc "${DOCS[@]}" > else > dodoc ${DOCS} > fi >} >.fi >.TP >.B pkg_preinst pkg_postinst >All modifications required on the live\-filesystem before and after the >package is merged should be placed here. Also commentary for the user >should be listed here as it will be displayed last. >.br >Initial working directory: $PWD >.TP >.B pkg_prerm pkg_postrm >Like the pkg_*inst functions but for unmerge. >.br >Initial working directory: $PWD >.TP >.B pkg_config >This function should contain optional basic configuration steps. >.br >Initial working directory: $PWD > >.SH "HELPER FUNCTIONS" >.SS "Phases:" >.TP >.B default >Calls the default phase function implementation for the currently executing >phase. This function is supported beginning with \fBEAPI 2\fR. >.TP >.B default_* >Beginning with \fBEAPI 2\fR, the default pkg_nofetch and src_* phase >functions are accessible via a function having a name that begins with >default_ and ends with the respective phase function name. For example, >a call to a function with the name default_src_compile is equivalent to >a call to the default src_compile implementation. > >.RS >.TS >l >_ >l. >Default Phase Functions >default_pkg_nofetch >default_src_unpack >default_src_prepare >default_src_configure >default_src_compile >default_src_test >.TE >.RE > >.SS "General:" >.TP >.B die\fR \fI[reason] >Causes the current emerge process to be aborted. The final display will >include \fIreason\fR. > >Beginning with \fBEAPI 4\fR, all helpers automatically call \fBdie\fR >whenever some sort of error occurs. Helper calls may be prefixed with >the \fBnonfatal\fR helper in order to prevent errors from being fatal. >.TP >.B nonfatal\fR \fI<helper> >Execute \fIhelper\fR and \fIdo not\fR call die if it fails. >The \fBnonfatal\fR helper is available beginning with \fBEAPI 4\fR. >.TP >.B use\fR \fI<USE item> >If \fIUSE item\fR is in the \fBUSE\fR variable, the function will silently >return 0 (aka shell true). If \fIUSE item\fR is not in the \fBUSE\fR >variable, the function will silently return 1 (aka shell false). \fBusev\fR >is a verbose version of \fBuse\fR. >.RS >.TP >.I Example: >.nf >if use gnome ; then > guiconf="\-\-enable\-gui=gnome \-\-with\-x" >elif use gtk ; then > guiconf="\-\-enable\-gui=gtk \-\-with\-x" >elif use X ; then > guiconf="\-\-enable\-gui=athena \-\-with\-x" >else > # No gui version will be built > guiconf="" >fi >.fi >.RE >.TP >.B usex\fR \fI<USE flag>\fR \fI[true output]\fR \fI[false output]\fR \fI[true suffix]\fR \fI[false suffix] >If USE flag is set, echo [true output][true suffix] (defaults to >"yes"), otherwise echo [false output][false suffix] (defaults to >"no"). The usex helper is available beginning with \fBEAPI 5\fR. >.TP >.B use_with\fR \fI<USE item>\fR \fI[configure name]\fR \fI[configure opt] >Useful for creating custom options to pass to a configure script. If \fIUSE >item\fR is in the \fBUSE\fR variable and a \fIconfigure opt\fR is specified, >then the string \fI\-\-with\-[configure name]=[configure opt]\fR will be echoed. >If \fIconfigure opt\fR is not specified, then just \fI\-\-with\-[configure >name]\fR will be echoed. If \fIUSE item\fR is not in the \fBUSE\fR variable, >then the string \fI\-\-without\-[configure name]\fR will be echoed. If >\fIconfigure name\fR is not specified, then \fIUSE item\fR will be used in >its place. Beginning with \fBEAPI 4\fR, an empty \fIconfigure opt\fR argument >is recognized. In \fBEAPI 3\fR and earlier, an empty \fIconfigure opt\fR >argument is treated as if it weren't provided. >.RS >.TP >.I Examples: >.nf >USE="opengl" >myconf=$(use_with opengl) >(myconf now has the value "\-\-with\-opengl") > >USE="jpeg" >myconf=$(use_with jpeg libjpeg) >(myconf now has the value "\-\-with\-libjpeg") > >USE="" >myconf=$(use_with jpeg libjpeg) >(myconf now has the value "\-\-without\-libjpeg") > >USE="sdl" >myconf=$(use_with sdl SDL all\-plugins) >(myconf now has the value "\-\-with\-SDL=all\-plugins") >.fi >.RE >.TP >.B use_enable\fR \fI<USE item>\fR \fI[configure name]\fR \fI[configure opt] >Same as \fBuse_with\fR above, except that the configure options are >\fI\-\-enable\-\fR instead of \fI\-\-with\-\fR and \fI\-\-disable\-\fR instead of >\fI\-\-without\-\fR. Beginning with \fBEAPI 4\fR, an empty \fIconfigure opt\fR >argument is recognized. In \fBEAPI 3\fR and earlier, an empty >\fIconfigure opt\fR argument is treated as if it weren't provided. >.TP >.B hasv\fR \fI<item>\fR \fI<item list> >If \fIitem\fR is in \fIitem list\fR, then \fIitem\fR is echoed and \fBhasv\fR >returns 0. Otherwise, nothing is echoed and 1 is returned. As indicated with >use, there is a non\-echoing version \fBhas\fR. Please use \fBhas\fR in all >places where output is to be disregarded. Never use the output for calculation. >.br >The \fIitem list\fR is delimited by the \fIIFS\fR variable. This variable >has a default value of ' ', or a space. It is a \fBbash\fR(1) setting. >.TP >.B has_version\fR \fI[\-\-host\-root]\fR \fI<category/package\-version> >Check to see if \fIcategory/package\-version\fR is installed on the system. >The parameter accepts all values that are acceptable in the \fBDEPEND\fR >variable. The function returns 0 if \fIcategory/package\-version\fR is >installed, 1 otherwise. Beginning with \fBEAPI 5\fR, the >\-\-host\-root option may be used in order to cause the query >to apply to the host root instead of ${ROOT}. >.TP >.B best_version\fR \fI[\-\-host\-root]\fR \fI<package name> >This function will look up \fIpackage name\fR in the database of currently >installed programs and echo the "best version" of the package that is >currently installed. Beginning with \fBEAPI 5\fR, the >\-\-host\-root option may be used in order to cause the query >to apply to the host root instead of ${ROOT}. > >Example: >.nf > VERINS="$(best_version net\-ftp/glftpd)" > (VERINS now has the value "net\-ftp/glftpd\-1.27" if glftpd\-1.27 is installed) >.fi > >.SS "Hooks:" >.TP >.B register_die_hook\fR \fI[list of function names] >Register one or more functions to call when the ebuild fails for any reason, >including file collisions with other packages. >.TP >.B register_success_hook\fR \fI[list of function names] >Register one or more functions to call when the ebuild builds and/or installs >successfully. > >.SS "Output:" >.TP >.B einfo\fR \fI"disposable message" >Same as \fBelog\fR, but should be used when the message isn't important to the >user (like progress or status messages during the build process). >.TP >.B elog\fR \fI"informative message" >If you need to display a message that you wish the user to read and take >notice of, then use \fBelog\fR. It works just like \fBecho\fR(1), but >adds a little more to the output so as to catch the user's eye. The message >will also be logged by portage for later review. >.TP >.B ewarn\fR \fI"warning message" >Same as \fBeinfo\fR, but should be used when showing a warning to the user. >.TP >.B eqawarn\fR \fI"QA warning message" >Same as \fBeinfo\fR, but should be used when showing a QA warning to the user. >.TP >.B eerror\fR \fI"error message" >Same as \fBeinfo\fR, but should be used when showing an error to the user. >.TP >.B ebegin\fR \fI"helpful message" >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 >.B eend\fR \fI<status>\fR \fI["error message"] >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. > >.SS "Unpack:" >.TP >.B unpack\fR \fI<source>\fR \fI[list of more sources] >This function uncompresses and/or untars a list of sources into the current >directory. The function will append \fIsource\fR to the \fBDISTDIR\fR variable. > >.SS "Compile:" >.TP >.B econf\fR \fI[configure options] >This is used as a replacement for configure. Performs: >.nf >${\fIECONF_SOURCE\fR:-.}/configure \\ > ${CBUILD:+\-\-build=${CBUILD}} \\ > \-\-datadir="${EPREFIX}"/usr/share \\ > \-\-host=${CHOST} \\ > \-\-infodir="${EPREFIX}"/usr/share/info \\ > \-\-localstatedir="${EPREFIX}"/var/lib \\ > \-\-prefix="${EPREFIX}"/usr \\ > \-\-mandir="${EPREFIX}"/usr/share/man \\ > \-\-sysconfdir="${EPREFIX}"/etc \\ > ${CTARGET:+\-\-target=${CTARGET}} \\ > \-\-disable\-dependency\-tracking \\ > \fI${EXTRA_ECONF}\fR \\ > \fIconfigure options\fR || die "econf failed" >.fi >Note that the \fIEXTRA_ECONF\fR is for users only, not for ebuild >writers. If you wish to pass more options to configure, just pass the >extra arguments to \fBeconf\fR. Also note that \fBeconf\fR automatically >calls \fBdie\fR if the configure script fails. >Beginning with \fBEAPI 3\fR, \fBeconf\fR uses the \fB${EPREFIX}\fR >variable which is disregarded for prior \fBEAPI\fR values. >Beginning with \fBEAPI 4\fR, \fBeconf\fR adds >\fI\-\-disable\-dependency\-tracking\fR to the arguments if the >string \fIdisable\-dependency\-tracking\fR occurs in the output >of \fIconfigure \-\-help\fR. >Beginning with \fBEAPI 5\fR, \fBeconf\fR adds >\fIdisable\-silent\-rules\fR to the arguments if the >string \fIdisable\-silent\-rules\fR occurs in the output >of \fIconfigure \-\-help\fR. >.TP >.B emake\fR \fI[make options] >This is used as a replacement for make. Performs 'make ${MAKEOPTS} >\fImake options\fR' (as set in make.globals), default is MAKEOPTS="\-j2". > >.B ***WARNING*** >.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. 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'. > >.SS "Install:" >.TP >.B einstall\fR \fI[make options] >This is used as a replacement for make install. Performs: >.nf >make \\ > prefix=${ED}/usr \\ > datadir=${ED}/usr/share \\ > infodir=${ED}/usr/share/info \\ > localstatedir=${ED}/var/lib \\ > mandir=${ED}/usr/share/man \\ > sysconfdir=${ED}/etc \\ > \fI${EXTRA_EINSTALL}\fR \\ > \fImake options\fR \\ > install >.fi >Please do \fBnot\fR use this in place of 'emake install DESTDIR=${D}'. >That is the preferred way of installing make\-based packages. Also, do >not utilize the \fIEXTRA_EINSTALL\fR variable since it is for users. > >.PD 0 >.TP >.B prepall >.TP >.B prepalldocs >.TP >.B prepallinfo >.TP >.B prepallman >.TP >.B prepallstrip >.PD 1 >Useful for when a package installs into \fB${D}\fR via scripts >(i.e. makefiles). If you want to be sure that libraries are executable, >aclocal files are installed into the right place, doc/info/man files are >all compressed, and that executables are all stripped of debugging symbols, >then use these suite of functions. >.RS >.PD 0 >.TP >.B prepall: >Runs \fBprepallman\fR, \fBprepallinfo\fR, \fBprepallstrip\fR, sets >libraries +x, and then checks aclocal directories. Please note this >does \fI*not*\fR run \fBprepalldocs\fR. >.TP >.B prepalldocs: >Compresses all doc files in ${ED}/usr/share/doc. >.TP >.B prepallinfo: >Compresses all info files in ${ED}/usr/share/info. >.TP >.B prepallman: >Compresses all man files in ${ED}/usr/share/man. >.TP >.B prepallstrip: >Strips all executable files of debugging symboles. This includes libraries. >.RE > >.TP >.B prepinfo\fR \fI[dir] >.TP >.B prepman\fR \fI[dir] >.TP >.B prepstrip\fR \fI[dir] >.PD 1 >Similar to the \fBprepall\fR functions, these are subtle in their differences. >.RS >.PD 0 >.TP >.B prepinfo: >If a \fIdir\fR is not specified, then \fBprepinfo\fR will assume the dir >\fIusr\fR. \fBprepinfo\fR will then compress all the files in >${ED}/\fIdir\fR/info. >.TP >.B prepman: >If a \fIdir\fR is not specified, then \fBprepman\fR will assume the dir >\fIusr\fR. \fBprepman\fR will then compress all the files in >${ED}/\fIdir\fR/man/*/. >.TP >.B prepstrip: >All the files found in ${ED}/\fIdir\fR will be stripped. You may specify >multiple directories. >.RE >.PD 1 >.TP >.B docompress\fR \fI[\-x] <path> [list of more paths] >.RS >Beginning with \fBEAPI 4\fR, the \fBdocompress\fR helper is used to >manage lists of files to be included or excluded from optional compression. >If the first argument is \fB\-x\fR, add each of its subsequent arguments to >the exclusion list. Otherwise, add each argument to the inclusion list. >The inclusion list initially contains \fI/usr/share/doc\fR, >\fI/usr/share/info\fR, and \fI/usr/share/man\fR. The exclusion list >initially contains \fI/usr/share/doc/${PF}/html\fR. > >The optional compression shall be carried out after \fBsrc_install\fR >has completed, and before the execution of any subsequent phase >function. For each item in the inclusion list, pretend it has the >value of the \fBD\fR variable prepended, then: > >.RS >If it is a directory, act as if every file or directory immediately >under this directory were in the inclusion list. > >If the item is a file, it may be compressed unless it has been >excluded as described below. > >If the item does not exist, it is ignored. >.RE > >Whether an item is to be excluded is determined as follows: For each >item in the exclusion list, pretend it has the value of the \fBD\fR >variable prepended, then: > >.RS >If it is a directory, act as if every file or directory immediately >under this directory were in the exclusion list. > >If the item is a file, it shall not be compressed. > >If the item does not exist, it is ignored. >.RE >.RE >.TP >.B dosed\fR \fI"s:orig:change:g" <filename> >Beginning with \fBEAPI 4\fR, the \fBdosed\fR helper no longer exists. Ebuilds >should call \fBsed(1)\fR directly (and assume that it is GNU sed). > >Performs sed in place on \fIfilename\fR inside ${ED}. If no expression is >given then \fI"s:${D}::g"\fR is used as the default expression. Note >that this expression does \fBNOT\fR use the offset prefix. >.br >.BR 'dosed\ "s:/usr/local:/usr:g"\ /usr/bin/some\-script' >runs sed on ${ED}/usr/bin/some\-script >.TP >.B dodir\fR \fI<path> [more paths] >Creates directories inside of ${ED}. >.br >.BR 'dodir\ /usr/lib/apache' >creates ${ED}/usr/lib/apache. Note that the do* functions will run >\fBdodir\fR for you. >.TP >.B diropts\fR \fI[options for install(1)] >Can be used to define options for the install function used in >\fBdodir\fR. The default is \fI\-m0755\fR. >.TP >.B into\fR \fI<path> >Sets the root (\fIDESTTREE\fR) for other functions like \fBdobin\fR, >\fBdosbin\fR, \fBdoman\fR, \fBdoinfo\fR, \fBdolib\fR. >.br >The default root is /usr. >.TP >.B keepdir\fR \fI<path> [more paths] >Tells portage to leave directories behind even if they're empty. Functions >the same as \fBdodir\fR. >.TP >.B dobin\fR \fI<binary> [list of more binaries] >Installs a \fIbinary\fR or a list of binaries into \fIDESTTREE\fR/bin. >Creates all necessary dirs. >.TP >.B dosbin\fR \fI<binary> [list of more binaries] >Installs a \fIbinary\fR or a list of binaries into \fIDESTTREE\fR/sbin. >Creates all necessary dirs. >.TP >.B doinitd\fR \fI<init.d script> [list of more init.d scripts] >Install Gentoo \fIinit.d scripts\fR. They will be installed into the >correct location for Gentoo init.d scripts (/etc/init.d/). Creates all >necessary dirs. >.TP >.B doconfd\fR \fI<conf.d file> [list of more conf.d file] >Install Gentoo \fIconf.d files\fR. They will be installed into the >correct location for Gentoo conf.d files (/etc/conf.d/). Creates all >necessary dirs. >.TP >.B doenvd\fR \fI<env.d entry> [list of more env.d entries] >Install Gentoo \fIenv.d entries\fR. They will be installed into the >correct location for Gentoo env.d entries (/etc/env.d/). Creates all >necessary dirs. > >.PD 0 >.TP >.B dolib\fR \fI<library>\fR \fI[list of more libraries] >.TP >.B dolib.a\fR \fI<library>\fR \fI[list of more libraries] >.TP >.B dolib.so\fR \fI<library>\fR \fI[list of more libraries] >.PD 1 >Installs a library or a list of libraries into \fIDESTTREE\fR/lib. >Creates all necessary dirs. >.TP >.B libopts\fR \fI[options for install(1)] >Can be used to define options for the install function used in >the \fBdolib\fR functions. The default is \fI\-m0644\fR. >.TP >.B doman\fR \fI[\-i18n=<locale>]\fR \fI<man\-page> [list of more man\-pages] >Installs manual\-pages into /usr/share/man/man[0\-9n] depending on the >manual file ending. The files are compressed if they are not already. You >can specify locale\-specific manpages with the \fI\-i18n\fR option. Then the >man\-page will be installed into /usr/share/man/\fI<locale>\fR/man[0\-9n]. >Beginning with \fBEAPI 2\fR, a locale\-specific manpage which contains a locale >in the file name will be installed in /usr/share/man/\fI<locale>\fR/man[0\-9n], >with the locale portion of the file name removed, and the \fI\-i18n\fR option >has no effect. For example, with \fBEAPI 2\fR, a manpage named >foo.\fI<locale>\fR.1 will be installed as >/usr/share/man/\fI<locale>\fR/man1/foo.1. Beginning with \fBEAPI 4\fR, >the \fI\-i18n\fR option takes precedence over the locale suffix of the >file name. >.PD 0 >.TP >.B dohard\fR \fI<filename> <linkname> >Beginning with \fBEAPI 4\fR, the \fBdohard\fR helper no longer exists. Ebuilds >should call \fBln(1)\fR directly. >.TP >.B dosym\fR \fI<filename> <linkname> >.PD 1 >Performs the ln command to create a symlink. >.TP >.B doheader\fR \fI[\-r] <file> [list of more files] >Installs the given header files into /usr/include/, by default >with file mode \fI0644\fR (this can be overridden with the >\fBinsopts\fR function). Setting \-r sets recursive. The >\fBdoheader\fR helper is available beginning with \fBEAPI 5\fR. >.TP >.B dohtml\fR \fI [\-a filetypes] [\-r] [\-x list\-of\-dirs\-to\-ignore] [list\-of\-files\-and\-dirs] >Installs the files in the list of files (space\-separated list) into >/usr/share/doc/${PF}/html provided the file ends in .htm, .html, .css, .js, .gif, .jpeg, .jpg, or .png. >Setting \fI\-a\fR limits what types of files will be included, >\fI\-A\fR appends to the default list, setting \fI\-x\fR sets which dirs to >exclude (CVS excluded by default), \fI\-p\fR sets a document prefix, \fI\-r\fR sets recursive. >.TP >.B doinfo\fR \fI<info\-file> [list of more info\-files] >Installs info\-pages into \fIDESTDIR\fR/info. Files are automatically >gzipped. Creates all necessary dirs. >.TP >.B domo\fR \fI<locale\-file> [list of more locale\-files] >Installs locale\-files into \fIDESTDIR\fR/usr/share/locale/[LANG] >depending on local\-file's ending. Creates all necessary dirs. > >.PD 0 >.TP >.B fowners\fR \fI<permissions> <file> [files] >.TP >.B fperms\fR \fI<permissions> <file> [files] >.PD 1 >Performs chown (\fBfowners\fR) or chmod (\fBfperms\fR), applying >\fIpermissions\fR to \fIfiles\fR. >.TP >.B insinto\fR \fI[path] >Sets the destination path for the \fBdoins\fR function. >.br >The default path is /. >.TP >.B insopts\fR \fI[options for install(1)] >Can be used to define options for the install function used in >\fBdoins\fR. The default is \fI\-m0644\fR. >.TP >.B doins\fR \fI[\-r] <file> [list of more files] >Installs files into the path controlled by \fBinsinto\fR. This function >uses \fBinstall\fR(1). Creates all necessary dirs. >Setting \-r sets recursive. Beginning with \fBEAPI 4\fR, both >\fBdoins\fR and \fBnewins\fR preserve symlinks. In \fBEAPI 3\fR and >earlier, symlinks are dereferenced rather than preserved. >.TP >.B exeinto\fR \fI[path] >Sets the destination path for the \fBdoexe\fR function. >.br >The default path is /. >.TP >.B exeopts\fR \fI[options for install(1)] >Can be used to define options for the install function used in \fBdoexe\fR. >The default is \fI\-m0755\fR. >.TP >.B doexe\fR \fI<executable> [list of more executables] >Installs executables into the path controlled by \fBexeinto\fR. This function >uses \fBinstall\fR(1). Creates all necessary dirs. >.TP >.B docinto\fR \fI[path] >Sets the subdir used by \fBdodoc\fR and \fBdohtml\fR >when installing into the document tree >(based in /usr/share/doc/${PF}/). Default is no subdir, or just "". >.TP >.B dodoc\fR \fI[-r] <document> [list of more documents] >Installs a document or a list of documents into /usr/share/doc/${PF}/\fI<docinto path>\fR. >Documents are marked for compression. Creates all necessary dirs. >Beginning with \fBEAPI 4\fR, there is support for recursion, enabled by the >new \fI\-r\fR option. > >.PD 0 >.TP >.B newbin\fR \fI<old file> <new filename> >.TP >.B newsbin\fR \fI<old file> <new filename> >.TP >.B newinitd\fR \fI<old file> <new filename> >.TP >.B newconfd\fR \fI<old file> <new filename> >.TP >.B newenvd\fR \fI<old file> <new filename> >.TP >.B newlib.so\fR \fI<old file> <new filename> >.TP >.B newlib.a\fR \fI<old file> <new filename> >.TP >.B newman\fR \fI<old file> <new filename> >.TP >.B newinfo\fR \fI<old file> <new filename> >.TP >.B newins\fR \fI<old file> <new filename> >.TP >.B newexe\fR \fI<old file> <new filename> >.TP >.B newdoc\fR \fI<old file> <new filename> >.PD 1 >All these functions act like the do* functions, but they only work with one >file and the file is installed as \fI[new filename]\fR. >Beginning with \fBEAPI 5\fR, standard input is read when the >first parameter is \- (a hyphen). > >.SH "EXAMPLES" >.DS >.nf ># Copyright 1999\-2013 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 ># $Header: $ > >EAPI="5" > >inherit some_eclass another_eclass > >DESCRIPTION="Super\-useful stream editor (sed)" >HOMEPAGE="http://www.gnu.org/software/sed/sed.html" >SRC_URI="ftp://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.gz" > >LICENSE="GPL\-2" >SLOT="0" >KEYWORDS="~x86" >IUSE="" > >RDEPEND="" >DEPEND="nls? ( sys-devel/gettext )" > >src_configure() { > econf \\ > \-\-bindir="${EPREFIX}"/bin >} > >src_install() { > emake DESTDIR="${D}" install > dodoc NEWS README* THANKS AUTHORS BUGS ChangeLog >} >.fi >.DE > >.SH "FILES" >.TP >The \fI/usr/sbin/ebuild.sh\fR script. >.TP >The helper apps in \fI/usr/lib/portage/bin\fR. >.TP >.B /etc/portage/make.conf >Contains variables for the build\-process and overwrites those in make.defaults. >.TP >.B /usr/share/portage/config/make.globals >Contains the default variables for the build\-process, you should edit >\fI/etc/portage/make.conf\fR instead. >.TP >.B /etc/portage/color.map >Contains variables customizing colors. > >.SH "SEE ALSO" >.BR ebuild (1), >.BR make.conf (5), >.BR color.map (5) > >.SH "REPORTING BUGS" >Please report bugs via http://bugs.gentoo.org/ > >.SH "AUTHORS" >.nf >Achim Gottinger <achim@gentoo.org> >Mark Guertin <gerk@gentoo.org> >Nicholas Jones <carpaski@gentoo.org> >Mike Frysinger <vapier@gentoo.org> >Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA@gmail.com> >Fabian Groffen <grobian@gentoo.org> >.fi
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 450372
:
335352
|
335814
|
337012
|
337014
|
337016
|
337018
|
337020
|
337316
| 337318 |
337320
|
337322
|
339120
|
339122
|
339124
|
339126
|
346096
|
346098
|
351820
|
366840