ebuild man page on Gentoo

Man page or keyword search:  
man Server   6889 pages
apropos Keyword Search (all sections)
Output format
Gentoo logo
[printable version]

EBUILD(5)			    Portage			     EBUILD(5)

NAME
       ebuild  -  the  internal	 format, variables, and functions in an ebuild
       script

DESCRIPTION
       The ebuild(1) program accepts a single ebuild script  as	 an  argument.
       This  script  contains variables and commands that specify how to down‐
       load, 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.

   Dependencies
       A  depend atom is simply a dependency that is used by portage when cal‐
       culating relationships between packages.	 Please note that if the  atom
       has  not	 already  been	emerged,  then the latest version available is
       matched.

       Atom Bases
	      The base atom is just a full category/packagename.

	      Examples:
		   sys-apps/sed
		   sys-libs/zlib
		   net-misc/dhcp

       Atom Versions
	      It is nice to be more specific and say that  only	 certain  ver‐
	      sions  of atoms are acceptable.  Note that versions must be com‐
	      bined with a prefix (see below).	Hence you may  add  a  version
	      number as a postfix to the base.

	      Examples:
		   sys-apps/sed-4.0.5
		   sys-libs/zlib-1.1.4-r1
		   net-misc/dhcp-3.0_p2

	      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
	      not 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.

       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:
		   >media-libs/libgd-1.6
		   >=media-libs/libgd-1.6
		   =media-libs/libgd-1.6
		   <=media-libs/libgd-1.6
		   <media-libs/libgd-1.6

       Extended Atom Prefixes [!~] and Postfixes [*]
	      Now to get even fancier, we provide the ability to define block‐
	      ing  packages  and version range matching.  Also note that these
	      extended prefixes/postfixes may be combined in any way with  the
	      atom classes defined above.

	      ~	     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:
			  ~net-libs/libnet-1.0.2a

	      !	     means  block  packages  from  being installed at the same
		     time.

		     Example:
			  !app-text/dos2unix

	      !!     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 EAPI 2.

		     Example:
			  !!<sys-apps/portage-2.1.4_rc1

	      *	     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:
			  =dev-libs/glib-2*
			  !=net-fs/samba-2*

       Atom Slots
	      Beginning	 with  EAPI  1, any atom can be constrained to match a
	      specific SLOT. This is accomplished by appending	a  colon  fol‐
	      lowed by a SLOT:

	      Examples:
		   x11-libs/qt:3
		   ~x11-libs/qt-3.3.8:3
		   >=x11-libs/qt-3.3.8:3
		   =x11-libs/qt-3.3*:3

       Sub Slots
	      Beginning with EAPI 5, a slot dependency may contain an optional
	      sub-slot part that follows the regular slot and is delimited  by
	      a / character.

	      Examples:
		   dev-libs/icu:0/0
		   dev-libs/icu:0/49
		   dev-lang/perl:0/5.12
		   dev-libs/glib:2/2.30

       Atom Slot Operators
	      Beginning	 with  EAPI  5, slot operator dependency consists of a
	      colon followed by one of the following operators:

	      *	     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:
			  dev-libs/icu:*
			  dev-lang/perl:*
			  dev-libs/glib:*

	      =	     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 ver‐
		     sion at the time the package was installed is available.

		     Examples:
			  dev-libs/icu:=
			  dev-lang/perl:=
			  dev-libs/glib:=

	      slot=  Indicates that only a specific slot value is  acceptable,
		     and  otherwise  behaves  identically  to the plain equals
		     slot operator.

		     Examples:
			  dev-libs/icu:0=
			  dev-lang/perl:0=
			  dev-libs/glib:2=

	      To implement the equals slot operator, the package manager  will
	      need  to store the slot/sub-slot pair of the best installed ver‐
	      sion 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 con‐
	      sidered to have an implicit sub-slot which is equal to the regu‐
	      lar slot).

	      Examples:
		   dev-libs/icu:0/0=
		   dev-libs/icu:0/49=
		   dev-lang/perl:0/5.12=
		   dev-libs/glib:2/2.30=

       Atom USE
	      Beginning with EAPI 2, any atom can be constrained to match spe‐
	      cific USE flag settings. When used together with SLOT  dependen‐
	      cies,  USE  dependencies	appear	on the right hand side of SLOT
	      dependencies.

	      Unconditional USE Dependencies

		     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

	      Conditional USE Dependencies

		     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] )

       Atom USE defaults
	      Beginning with EAPI 4,  USE  dependencies	 may  specify  default
	      assumptions  about values for flags that may or may not be miss‐
	      ing from the IUSE of the	matched	 package.  Such	 defaults  are
	      specified	 by  immediately  following  a flag with either (+) or
	      (-). Use (+) to behave as if  a  missing	flag  is  present  and
	      enabled, or (-) to behave as if it is present and disabled:

	      Examples:
			  media-video/ffmpeg[threads(+)]
			  media-video/ffmpeg[-threads(-)]

       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 con‐
	      sidered 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.

	      usevar? ( Atom )
		     To include the jpeg library when the  user	 has  jpeg  in
		     USE, simply use the following syntax:

		     jpeg? ( media-libs/jpeg )

	      !usevar? ( Atom )
		     If	 you  want  to include a package only if the user does
		     not have a certain option in their USE 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.

	      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.

	      || ( 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:
		     || (
				 app-games/unreal-tournament
				 app-games/unreal-tournament-goty
		     )

		     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:
		     || (
				 sdl? ( media-libs/libsdl )
				 svga? ( media-libs/svgalib )
				 opengl? ( virtual/opengl )
				 ggi? ( media-libs/libggi )
				 virtual/x11
		     )

		     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.

   Cross-compilation
       Portage	supports  cross-compilation  into  a subdirectory specified by
       ROOT.

       Host   Host 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 ("/").

	      If ROOT is "/", all dependency types will	 be  installed	there.
	      Otherwise,  for  EAPIs  that  support HDEPEND (experimental EAPI
	      5-hdepend), only HDEPEND is installed into "/".  For EAPIs  that
	      do  not  support	HDEPEND,  the  behaviour  is controlled by the
	      --root-deps flag to emerge(1), defaulting to install only DEPEND
	      into the host.

       Target Target  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 ROOT.  If it is different from "/",
	      i.e. host and target are not the same,  this  variable  contains
	      the path to the directory housing the target system.

	      For  EAPIs  that	support HDEPEND (experimental EAPI 5-hdepend),
	      DEPEND, RDEPEND, and PDEPEND list the target dependencies,  i.e.
	      those  to be installed into ROOT.	 For EAPIs that do not support
	      HDEPEND, the emerge(1) flag --root-deps controls what the	 pack‐
	      age  manager  installs  there.   Without	it, emerge defaults to
	      install only runtime dependencies (i.e.	RDEPEND	 and  PDEPEND)
	      into ROOT.

       See  section  VARIABLES	for more information about the DEPEND, RDEPEND
       and HDEPEND variables.

       The targetroot USE flag
	      For EAPIs that support the "targetroot" USE flag, that  flag  is
	      automatically  enabled by the package manager if host and target
	      system are not the same, i.e. if the ROOT is not "/".   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 com‐
	      pilation.

VARIABLES
       Usage Notes
	      - All variables defined in make.conf(5) are available for use in
	      ebuilds (such as the PORTAGE* and PORTDIR* variables)
	      - When assigning values to variables in ebuilds, you cannot have
	      a space between the variable name and the equal sign.
	      - Variable values should only contain characters that  are  mem‐
	      bers of the ascii(7) character set. This requirement is mandated
	      by GLEP 31.

       P      This variable contains the package name without the ebuild revi‐
	      sion.  This variable must NEVER be modified.

	      xfree-4.2.1-r2.ebuild --> $P=='xfree-4.2.1'

       PN     Contains the name of the script without the version number.

	      xfree-4.2.1-r2.ebuild --> $PN=='xfree'

       PV     Contains the version number without the revision.

	      xfree-4.2.1-r2.ebuild --> $PV=='4.2.1'

       PR     Contains	the  revision  number  or  'r0'	 if no revision number
	      exists.

	      xfree-4.2.1-r2.ebuild --> $PR=='r2'

       PVR    Contains the version number with the revision.

	      xfree-4.2.1-r2.ebuild --> $PVR=='4.2.1-r2'

       PF     Contains the full package name PN-PVR

	      xfree-4.2.1-r2.ebuild --> $PF=='xfree-4.2.1-r2'

       CATEGORY
	      Contains the package category name.

       A      Contains all source files required for the package.  This	 vari‐
	      able  must  not be defined. It is autogenerated from the SRC_URI
	      variable.

       WORKDIR = "${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work"
	      Contains the path to the package build root.  Do not modify this
	      variable.

       FILESDIR = "${PORTDIR}/${CATEGORY}/${PN}/files"
	      Contains	the path to the 'files' sub folder in the package spe‐
	      cific location in the portage tree.  Do not  modify  this	 vari‐
	      able.

       EBUILD_PHASE
	      Contains	the abreviated name of the phase function that is cur‐
	      rently executing, such as "setup", "unpack", "compile", or "pre‐
	      inst".

       EBUILD_PHASE_FUNC
	      Beginning with EAPI 5, contains the full name of the phase func‐
	      tion  that  is  currently	 executing,   such   as	  "pkg_setup",
	      "src_unpack", "src_compile", or "pkg_preinst".

       EPREFIX
	      Beginning with EAPI 3, 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.

       S = "${WORKDIR}/${P}"
	      Contains the path to the temporary build directory.  This	 vari‐
	      able is used by the functions src_compile and src_install.  Both
	      are executed with S as the current directory.  This variable may
	      be  modified  to match the extraction directory of a tarball for
	      the package.

       T = "${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/temp"
	      Contains the path to a temporary directory.  You	may  use  this
	      for whatever you like.

       D = "${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image/"
	      Contains	the  path  to  the temporary install directory.	 Every
	      write operation that does not involve the helper tools and func‐
	      tions  (found  below)  should  be prefixed with ${D}.  Beginning
	      with EAPI 3, 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.

       ED = "${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image/${EPREFIX}/"
	      Beginning with EAPI 3, contains the path "${D%/}${EPREFIX}/" for
	      convenience  purposes.  For EAPI values prior to EAPI 3 which do
	      not support ED, helpers use D where they would otherwise use ED.
	      Do not modify this variable.

       MERGE_TYPE
	      Beginning	 with  EAPI  4, the MERGE_TYPE variable can be used to
	      query the current merge type. This variable will contain one  of
	      the following possible values:

	      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

       PORTAGE_LOG_FILE
	      Contains	the  path of the build log. If PORT_LOGDIR variable is
	      unset then PORTAGE_LOG_FILE="${T}/build.log".

       REPLACED_BY_VERSION
	      Beginning with EAPI 4, 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  replace‐
	      ment package, the variable will be empty, otherwise it will con‐
	      tain a single version number.

       REPLACING_VERSIONS
	      Beginning with EAPI 4, 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 replac‐
	      ing.  If	there are no packages to replace, the variable will be
	      empty, otherwise it will contain a space-separated list of  ver‐
	      sion  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.

       ROOT = "/"
	      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.

       EROOT = "${ROOT%/}${EPREFIX}/"
	      Beginning with EAPI 3, contains "${ROOT%/}${EPREFIX}/" for  con‐
	      venience purposes. Do not modify this variable.

       DESCRIPTION = "A happy little package"
	      Should contain a short description of the package.

       EAPI = "0"
	      Defines  the  ebuild API version to which this package conforms.
	      If not defined then it defaults to "0". If portage does not rec‐
	      ognize  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 ebuild(1) and repo‐
	      man(1) commands with this package will be	 required  to  have  a
	      version  of portage that recognizes the EAPI to which this pack‐
	      age conforms.

       SRC_URI = "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  GEN‐
	      TOO_MIRRORS.   Beginning	with EAPI 2, 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.

       HOMEPAGE = "http://example.com/"
	      Should  contain  a  list	of URIs for the sources main sites and
	      other further package dependent information.

       KEYWORDS = [-~][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 test‐
	      ing  by  setting ACCEPT_KEYWORDS="~arch" on the command line, or
	      in  make.conf(5))	 For  an  authoritative	 list  please	review
	      /usr/portage/profiles/arch.list.	  Please  keep	this  list  in
	      alphabetical order.

       SLOT   This sets the SLOT for packages that may need to	have  multiple
	      versions	co-exist.  By default you should set SLOT="0".	If you
	      are unsure, then do not fiddle with this	until  you  seek  some
	      guidance	from some guru.	 This value should NEVER be left unde‐
	      fined.

	      Beginning with EAPI 5, 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 Atom Slot Operators section	for  more  information
	      about sub-slot usage.

       LICENSE
	      This should be a space delimited list of licenses that the pack‐
	      age falls under.	This _must_ be set to a	 matching  license  in
	      /usr/portage/licenses/. If the license does not exist in portage
	      yet, you must add it first.

       IUSE   This should be a list of any and all USE flags that  are	lever‐
	      aged  within  your build script.	The only USE flags that should
	      not be listed here are arch related flags (see KEYWORDS). Begin‐
	      ning  with EAPI 1, it is possible to prefix flags with + or - in
	      order to create default settings	that  respectively  enable  or
	      disable  the corresponding USE flags. For details about USE flag
	      stacking order, refer to the USE_ORDER variable in make.conf(5).
	      Given  the default USE_ORDER setting, negative IUSE default set‐
	      tings are effective only for negation  of	 repo-level  USE  set‐
	      tings,  since  profile  and user configuration settings override
	      them.

       DEPEND This should contain a list of all packages that are required for
	      the  program to compile (aka buildtime dependencies).  These are
	      usually libraries and headers.

	      Starting from experimental EAPI 5-hdepend, tools should go  into
	      the  HDEPEND  variable instead, as DEPEND will only be installed
	      into the target  system  and  hence  cannot  be  executed	 in  a
	      cross-compile  setting.  (See section Cross-compilation for more
	      information.)

	      You may use the syntax described above in the Dependencies  sec‐
	      tion.

       RDEPEND
	      This should contain a list of all packages that are required for
	      this program to run (aka runtime dependencies).  These are  usu‐
	      ally libraries.

	      In  EAPI	3  or earlier, if this is not set, then it defaults to
	      the value of DEPEND. In EAPI 4 or later, RDEPEND will  never  be
	      implicitly set.

	      You  may use the syntax described above in the Dependencies sec‐
	      tion.

       HDEPEND
	      This should contain a list of all packages that are required  to
	      be  executable  during  compilation  of  this  program (aka host
	      buildtime dependencies).	These are usually tools,  like	inter‐
	      preters or (cross-)compilers.

	      This  variable is new in experimental EAPI 5-hdepend and will be
	      installed into the host system.  (See section  Cross-compilation
	      for more information.)

	      You  may use the syntax described above in the Dependencies sec‐
	      tion.

       PDEPEND
	      This should contain a list of all packages that should be merged
	      after  this  one (aka post merge dependencies), but which may be
	      installed by the package manager at any time,  if	 that  is  not
	      possible.

	      ***WARNING***
	      Use this only as last resort to break cyclic dependencies!

	      You  may use the syntax described above in the Dependencies sec‐
	      tion.

       REQUIRED_USE
	      Beginning with EAPI 4, the REQUIRED_USE variable can be used  to
	      specify  combinations  of	 USE  flags  that  are	allowed or not
	      allowed. Elements can be nested when necessary.

	      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 )

       RESTRICT = [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.
	      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 QA CONTROL VARIABLES
		     section for more specific exemptions.
	      bindist
		     Distribution of built packages is restricted.
	      fetch  like mirror but the files will not be fetched via SRC_URI
		     either.
	      installsources
		     Disables  installsources  for  specific packages. This is
		     for packages with binaries that are not  compatible  with
		     debugedit.
	      mirror files  in	SRC_URI	 will  not be downloaded from the GEN‐
		     TOO_MIRRORS.
	      preserve-libs
		     Disables preserve-libs for specific packages.  Note  than
		     when  a package is merged, RESTRICT=preserve-libs applies
		     if either the new	instance  or  the  old	instance  sets
		     RESTRICT=preserve-libs.
	      primaryuri
		     fetch from URIs in SRC_URI before GENTOO_MIRRORS.
	      splitdebug
		     Disables  splitdebug  for	specific packages. This is for
		     packages with binaries that trigger problems with	split‐
		     debug,   such  as	file-collisions	 between  symlinks  in
		     /usr/lib/debug/.build-id	 (triggered	by     bundled
		     libraries).
	      strip  final  binaries/libraries	will  not be stripped of debug
		     symbols.
	      test   do not run src_test even if user has FEATURES=test.
	      userpriv
		     Disables userpriv for specific packages.

       PROPERTIES = [interactive]
	      A space delimited list of properties,  with  conditional	syntax
	      support.
	      interactive
		     One  or  more  ebuild  phases  will produce a prompt that
		     requires user interaction.

       PROVIDE = "virtual/TARGET"
	      This variable should only be used when a package provides a vir‐
	      tual  target.   For  example,  blackdown-jdk and sun-jdk provide
	      virtual/jdk.  This allows for packages to depend on  virtual/jdk
	      rather than on blackdown or sun specifically.

	      The  PROVIDE  variable  has been deprecated. See http://www.gen‐
	      too.org/proj/en/glep/glep-0037.html for details.

       DOCS   Beginning with EAPI 4, an array or space-delimited list of docu‐
	      mentation	 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.

   QA Control Variables:
       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.

       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_*	 vari‐
	      ables  that  support regular expressions instead of fnmatch pat‐
	      terns. The translation mechanism simply replaces "*" with ".*".

       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.

       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).

       QA_WX_LOAD
	      This  should contain a list of file paths, relative to the image
	      directory, of files that contain writable	 and  executable  seg‐
	      ments.  These are rare.  The paths may contain fnmatch patterns.

       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  sec‐
	      tions  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.

       QA_MULTILIB_PATHS
	      This should contain a list of file paths, relative to the	 image
	      directory,  of  files  that  should  be  ignored	for the multi‐
	      lib-strict checks.  The paths may	 contain  regular  expressions
	      with escape-quoted special characters.

       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.

       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  charac‐
	      ters.

       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.

       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.

       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.

       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.

       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.

PORTAGE DECLARATIONS
       inherit
	      Inherit  is  portage's maintenance of extra classes of functions
	      that are external to ebuilds and provided as  inheritable	 capa‐
	      bilities	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 .eclass extension. Also note that the inherit state‐
	      ment  must  come before other variable declarations unless these
	      variables are used in global scope of eclasses.

PHASE FUNCTIONS
       pkg_pretend
	      Beginning with EAPI 4, 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	depen‐
	      dencies.	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.

       pkg_nofetch
	      This  function will be executed when the files in SRC_URI cannot
	      be fetched for any reason. If you turn  on  fetch	 in  RESTRICT,
	      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
	      die.

       pkg_setup
	      This function can be used if the package	needs  specific	 setup
	      actions or checks to be preformed before anything else.
	      Initial working directory: $PORTAGE_TMPDIR

       src_unpack
	      This function is used to unpack all the sources in A to WORKDIR.
	      If not defined in the ebuild script it calls  unpack  ${A}.  Any
	      patches  and other pre configure/compile modifications should be
	      done here.
	      Initial working directory: $WORKDIR

       src_prepare
	      All preparation of source code, such as application of  patches,
	      should  be  done here. This function is supported beginning with
	      EAPI 2.
	      Initial working directory: $S

       src_configure
	      All necessary steps for configuration should be done here.  This
	      function is supported beginning with EAPI 2.
	      Initial working directory: $S

       src_compile
	      With  less  than EAPI 2, all necessary steps for both configura‐
	      tion and compilation should be done here. Beginning with EAPI 2,
	      only compilation steps should be done here.
	      Initial working directory: $S

       src_test
	      Run  all	package	 specific  test	 cases.	 The default is to run
	      ´emake check´ followed  ´emake  test´.  Prior  to	 EAPI  5,  the
	      default  src_test implementation will automatically pass the -j1
	      option as the last argument to emake, and beginning with EAPI  5
	      it will allow the tests to run in parallel.
	      Initial working directory: $S

       src_install
	      Should contain everything required to install the package in the
	      temporary install directory.
	      Initial working directory: $S

	      Beginning with EAPI 4, if src_install is undefined then the fol‐
	      lowing default implementation is used:

	      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
	      }

       pkg_preinst pkg_postinst
	      All  modifications  required  on	the live-filesystem before and
	      after the package is merged should be placed here. Also  commen‐
	      tary  for the user should be listed here as it will be displayed
	      last.
	      Initial working directory: $PWD

       pkg_prerm pkg_postrm
	      Like the pkg_*inst functions but for unmerge.
	      Initial working directory: $PWD

       pkg_config
	      This function should contain optional basic configuration steps.
	      Initial working directory: $PWD

HELPER FUNCTIONS
   Phases:
       default
	      Calls the default phase function	implementation	for  the  cur‐
	      rently  executing	 phase.	 This  function is supported beginning
	      with EAPI 2.

       default_*
	      Beginning with EAPI 2, 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.

	      Default Phase Functions
	      ────────────────────────
	      default_pkg_nofetch
	      default_src_unpack
	      default_src_prepare
	      default_src_configure
	      default_src_compile
	      default_src_test

   General:
       die [reason]
	      Causes  the current emerge process to be aborted. The final dis‐
	      play will include reason.

	      Beginning with EAPI 4, all helpers automatically call die	 when‐
	      ever  some  sort	of  error occurs. Helper calls may be prefixed
	      with the nonfatal helper in order to prevent errors  from	 being
	      fatal.

       nonfatal <helper>
	      Execute  helper  and  do not call die if it fails.  The nonfatal
	      helper is available beginning with EAPI 4.

       use <USE item>
	      If USE item is in the USE variable, the function	will  silently
	      return  0 (aka shell true).  If USE item is not in the USE vari‐
	      able, the function will silently return  1  (aka	shell  false).
	      usev is a verbose version of use.

	      Example:
		     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

       usex  <USE flag> [true output] [false output] [true suffix] [false suf‐
       fix]
	      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 EAPI 5.

       use_with <USE item> [configure name] [configure opt]
	      Useful for creating  custom  options  to	pass  to  a  configure
	      script.  If  USE item is in the USE variable and a configure opt
	      is specified, then the string --with-[configure name]=[configure
	      opt]  will  be  echoed.  If configure opt is not specified, then
	      just --with-[configure name] will be echoed.  If USE item is not
	      in  the USE variable, then the string --without-[configure name]
	      will be echoed. If configure name is  not	 specified,  then  USE
	      item  will be used in its place. Beginning with EAPI 4, an empty
	      configure opt argument is recognized. In EAPI 3 and earlier,  an
	      empty  configure	opt  argument is treated as if it weren't pro‐
	      vided.

	      Examples:
		     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")

       use_enable <USE item> [configure name] [configure opt]
	      Same as use_with above, except that the  configure  options  are
	      --enable-	 instead  of --with- and --disable- instead of --with‐
	      out-. Beginning with EAPI 4, an empty configure opt argument  is
	      recognized.  In EAPI 3 and earlier, an empty configure opt argu‐
	      ment is treated as if it weren't provided.

       hasv <item> <item list>
	      If item is in item list, then item is echoed and hasv returns 0.
	      Otherwise,  nothing  is  echoed  and 1 is returned. As indicated
	      with use, there is a non-echoing version has. Please use has  in
	      all places where output is to be disregarded. Never use the out‐
	      put for calculation.
	      The item list is delimited by the IFS variable.	This  variable
	      has  a  default  value of ' ', or a space.  It is a bash(1) set‐
	      ting.

       has_version [--host-root] <category/package-version>
	      Check to see if category/package-version	is  installed  on  the
	      system.  The parameter accepts all values that are acceptable in
	      the DEPEND variable.  The function returns 0  if	category/pack‐
	      age-version  is  installed,  1 otherwise. Beginning with EAPI 5,
	      the --host-root option may be used in order to cause  the	 query
	      to apply to the host root instead of ${ROOT}.

       best_version [--host-root] <package name>
	      This  function will look up package name in the database of cur‐
	      rently installed programs and echo the  "best  version"  of  the
	      package  that is currently installed. Beginning with EAPI 5, the
	      --host-root option may be used in order to cause	the  query  to
	      apply to the host root instead of ${ROOT}.

	      Example:
				     VERINS="$(best_version net-ftp/glftpd)"
				     (VERINS now has the value "net-ftp/glftpd-1.27" if glftpd-1.27 is installed)

   Hooks:
       register_die_hook [list of function names]
	      Register one or more functions to call when the ebuild fails for
	      any reason, including file collisions with other packages.

       register_success_hook [list of function names]
	      Register one or more functions to call when  the	ebuild	builds
	      and/or installs successfully.

   Output:
       einfo "disposable message"
	      Same  as	elog, but should be used when the message isn't impor‐
	      tant to the user (like progress or status	 messages  during  the
	      build process).

       elog "informative message"
	      If  you need to display a message that you wish the user to read
	      and take notice of, then use elog.  It works just like  echo(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.

       ewarn "warning message"
	      Same  as einfo, but should be used when showing a warning to the
	      user.

       eqawarn "QA warning message"
	      Same as einfo, but should be used when showing a QA  warning  to
	      the user.

       eerror "error message"
	      Same  as	einfo, but should be used when showing an error to the
	      user.

       ebegin "helpful message"
	      Like einfo, we output a helpful message and then hint  that  the
	      following	 operation  may	 take some time to complete.  Once the
	      task is finished, you need to call eend.

       eend <status> ["error message"]
	      Followup the ebegin message with an  appropriate	"OK"  or  "!!"
	      (for errors) marker.  If status is non-zero, then the additional
	      error message is displayed.

   Unpack:
       unpack <source> [list of more sources]
	      This function uncompresses and/or untars a list of sources  into
	      the  current  directory.	The function will append source to the
	      DISTDIR variable.

   Compile:
       econf [configure options]
	      This is used as a replacement for configure.  Performs:
	      ${ECONF_SOURCE:-.}/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 \
				     ${EXTRA_ECONF} \
				     configure options || die "econf failed"
	      Note that the EXTRA_ECONF is for	users  only,  not  for	ebuild
	      writers.	 If  you  wish to pass more options to configure, just
	      pass the extra arguments to econf. Also note that econf automat‐
	      ically  calls die if the configure script fails.	Beginning with
	      EAPI 3, econf uses the ${EPREFIX} variable which is  disregarded
	      for prior EAPI values.  Beginning with EAPI 4, econf adds --dis‐
	      able-dependency-tracking to the arguments	 if  the  string  dis‐
	      able-dependency-tracking	occurs	in  the	 output	 of  configure
	      --help.  Beginning with EAPI 5, econf adds  disable-silent-rules
	      to  the  arguments  if the string disable-silent-rules occurs in
	      the output of configure --help.

       emake [make options]
	      This  is	used  as  a  replacement  for  make.   Performs	 'make
	      ${MAKEOPTS}  make	 options' (as set in make.globals), default is
	      MAKEOPTS="-j2".

	      ***WARNING***
	      if you are going to use emake, 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 'emake -j1' instead of 'make'.

   Install:
       einstall [make options]
	      This is used as a replacement for make install.  Performs:
	      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 \
				     ${EXTRA_EINSTALL} \
				     make options \
				     install
	      Please do not use this in place of 'emake install DESTDIR=${D}'.
	      That is the preferred way	 of  installing	 make-based  packages.
	      Also, do not utilize the EXTRA_EINSTALL variable since it is for
	      users.

       prepall
       prepalldocs
       prepallinfo
       prepallman
       prepallstrip
	      Useful for when a package installs into ${D} via	scripts	 (i.e.
	      makefiles).   If	you  want  to  be sure that libraries are exe‐
	      cutable, 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 func‐
	      tions.
	      prepall:
		     Runs    prepallman,   prepallinfo,	  prepallstrip,	  sets
		     libraries	+x,  and  then	checks	aclocal	  directories.
		     Please note this does *not* run prepalldocs.
	      prepalldocs:
		     Compresses all doc files in ${ED}/usr/share/doc.
	      prepallinfo:
		     Compresses all info files in ${ED}/usr/share/info.
	      prepallman:
		     Compresses all man files in ${ED}/usr/share/man.
	      prepallstrip:
		     Strips  all executable files of debugging symboles.  This
		     includes libraries.

       prepinfo [dir]
       prepman [dir]
       prepstrip [dir]
	      Similar to the prepall functions, these are subtle in their dif‐
	      ferences.
	      prepinfo:
		     If	 a dir is not specified, then prepinfo will assume the
		     dir usr. prepinfo will then compress  all	the  files  in
		     ${ED}/dir/info.
	      prepman:
		     If	 a  dir is not specified, then prepman will assume the
		     dir usr. prepman will then	 compress  all	the  files  in
		     ${ED}/dir/man/*/.
	      prepstrip:
		     All  the  files found in ${ED}/dir will be stripped.  You
		     may specify multiple directories.

       docompress [-x] <path> [list of more paths]
	      Beginning with EAPI 4, the docompress helper is used  to	manage
	      lists of files to be included or excluded from optional compres‐
	      sion.  If the first argument is -x, add each of  its  subsequent
	      arguments to the exclusion list. Otherwise, add each argument to
	      the inclusion  list.   The  inclusion  list  initially  contains
	      /usr/share/doc,  /usr/share/info, and /usr/share/man. The exclu‐
	      sion list initially contains /usr/share/doc/${PF}/html.

	      The optional compression shall be carried out after  src_install
	      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 D variable prepended, then:

		     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.

	      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
	      D variable prepended, then:

		     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.

       dosed "s:orig:change:g" <filename>
	      Beginning with EAPI  4,  the  dosed  helper  no  longer  exists.
	      Ebuilds  should  call sed(1) directly (and assume that it is GNU
	      sed).

	      Performs sed in place on filename inside ${ED}. If no expression
	      is  given	 then  "s:${D}::g"  is used as the default expression.
	      Note that this expression does NOT use the offset prefix.
	      'dosed "s:/usr/local:/usr:g" /usr/bin/some-script' runs  sed  on
	      ${ED}/usr/bin/some-script

       dodir <path> [more paths]
	      Creates directories inside of ${ED}.
	      'dodir /usr/lib/apache' creates ${ED}/usr/lib/apache.  Note that
	      the do* functions will run dodir for you.

       diropts [options for install(1)]
	      Can be used to define options for the install function  used  in
	      dodir.  The default is -m0755.

       into <path>
	      Sets the root (DESTTREE) for other functions like dobin, dosbin,
	      doman, doinfo, dolib.
	      The default root is /usr.

       keepdir <path> [more paths]
	      Tells portage to leave directories behind even if they're empty.
	      Functions the same as dodir.

       dobin <binary> [list of more binaries]
	      Installs a binary or a list of binaries into DESTTREE/bin.  Cre‐
	      ates all necessary dirs.

       dosbin <binary> [list of more binaries]
	      Installs a binary or a  list  of	binaries  into	DESTTREE/sbin.
	      Creates all necessary dirs.

       doinitd <init.d script> [list of more init.d scripts]
	      Install  Gentoo init.d scripts.  They will be installed into the
	      correct location for Gentoo init.d scripts (/etc/init.d/).  Cre‐
	      ates all necessary dirs.

       doconfd <conf.d file> [list of more conf.d file]
	      Install  Gentoo  conf.d  files.  They will be installed into the
	      correct location for Gentoo conf.d files	(/etc/conf.d/).	  Cre‐
	      ates all necessary dirs.

       doenvd <env.d entry> [list of more env.d entries]
	      Install  Gentoo  env.d entries.  They will be installed into the
	      correct location for Gentoo env.d entries	 (/etc/env.d/).	  Cre‐
	      ates all necessary dirs.

       dolib <library> [list of more libraries]
       dolib.a <library> [list of more libraries]
       dolib.so <library> [list of more libraries]
	      Installs	a  library  or	a list of libraries into DESTTREE/lib.
	      Creates all necessary dirs.

       libopts [options for install(1)]
	      Can be used to define options for the install function  used  in
	      the dolib functions.  The default is -m0644.

       doman [-i18n=<locale>] <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
	      -i18n  option.   Then  the  man-page  will  be  installed	  into
	      /usr/share/man/<locale>/man[0-9n].   Beginning  with  EAPI  2, a
	      locale-specific manpage which contains a locale in the file name
	      will be installed in /usr/share/man/<locale>/man[0-9n], with the
	      locale portion of the file name removed, and  the	 -i18n	option
	      has  no  effect.	For  example,  with  EAPI  2,  a manpage named
	      foo.<locale>.1	    will	be	  installed	    as
	      /usr/share/man/<locale>/man1/foo.1.  Beginning  with EAPI 4, the
	      -i18n option takes precedence over the locale suffix of the file
	      name.

       dohard <filename> <linkname>
	      Beginning	 with  EAPI  4,	 the  dohard  helper no longer exists.
	      Ebuilds should call ln(1) directly.
       dosym <filename> <linkname>
	      Performs the ln command to create a symlink.

       doheader [-r] <file> [list of more files]
	      Installs the given header files into /usr/include/,  by  default
	      with  file  mode	0644  (this can be overridden with the insopts
	      function). Setting -r sets recursive.  The  doheader  helper  is
	      available beginning with EAPI 5.

       dohtml	   [-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 -a limits
	      what  types of files will be included, -A appends to the default
	      list, setting -x sets which dirs to  exclude  (CVS  excluded  by
	      default), -p sets a document prefix, -r sets recursive.

       doinfo <info-file> [list of more info-files]
	      Installs	info-pages into DESTDIR/info.  Files are automatically
	      gzipped.	Creates all necessary dirs.

       domo <locale-file> [list of more locale-files]
	      Installs	 locale-files	into   DESTDIR/usr/share/locale/[LANG]
	      depending on local-file's ending.	 Creates all necessary dirs.

       fowners <permissions> <file> [files]
       fperms <permissions> <file> [files]
	      Performs chown (fowners) or chmod (fperms), applying permissions
	      to files.

       insinto [path]
	      Sets the destination path for the doins function.
	      The default path is /.

       insopts [options for install(1)]
	      Can be used to define options for the install function  used  in
	      doins.  The default is -m0644.

       doins [-r] <file> [list of more files]
	      Installs	files into the path controlled by insinto.  This func‐
	      tion uses install(1).  Creates all necessary dirs.   Setting  -r
	      sets  recursive.	Beginning  with	 EAPI 4, both doins and newins
	      preserve symlinks. In EAPI 3 and earlier, symlinks are  derefer‐
	      enced rather than preserved.

       exeinto [path]
	      Sets the destination path for the doexe function.
	      The default path is /.

       exeopts [options for install(1)]
	      Can  be  used to define options for the install function used in
	      doexe.  The default is -m0755.

       doexe <executable> [list of more executables]
	      Installs executables into the path controlled by exeinto.	  This
	      function uses install(1).	 Creates all necessary dirs.

       docinto [path]
	      Sets  the	 subdir	 used by dodoc and dohtml when installing into
	      the document tree (based in /usr/share/doc/${PF}/).  Default  is
	      no subdir, or just "".

       dodoc [-r] <document> [list of more documents]
	      Installs	  a   document	 or   a	  list	 of   documents	  into
	      /usr/share/doc/${PF}/<docinto path>.  Documents are  marked  for
	      compression.   Creates  all necessary dirs.  Beginning with EAPI
	      4, there is support for recursion, enabled by the new -r option.

       newbin <old file> <new filename>
       newsbin <old file> <new filename>
       newinitd <old file> <new filename>
       newconfd <old file> <new filename>
       newenvd <old file> <new filename>
       newlib.so <old file> <new filename>
       newlib.a <old file> <new filename>
       newman <old file> <new filename>
       newins <old file> <new filename>
       newexe <old file> <new filename>
       newdoc <old file> <new filename>
	      All these functions act like the do* functions,  but  they  only
	      work  with one file and the file is installed as [new filename].
	      Beginning with EAPI 5, standard input is	read  when  the	 first
	      parameter is - (a hyphen).

EXAMPLES
       # 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
       }

FILES
       The /usr/lib/portage/bin/ebuild.sh script.

       The helper apps in /usr/lib/portage/bin.

       /etc/portage/make.conf
	      Contains variables for the build-process and overwrites those in
	      make.defaults.

       /usr/share/portage/config/make.globals
	      Contains the default variables for the build-process, you should
	      edit /etc/portage/make.conf instead.

       /etc/portage/color.map
	      Contains variables customizing colors.

SEE ALSO
       ebuild(1), make.conf(5), color.map(5)

REPORTING BUGS
       Please report bugs via http://bugs.gentoo.org/

AUTHORS
       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@apache.org>
       Fabian Groffen <grobian@gentoo.org>

Portage 2.2.8-r1		   Jul 2013			     EBUILD(5)
[top]

List of man pages available for Gentoo

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net