diff options
Diffstat (limited to 'man/ebuild.5')
-rw-r--r-- | man/ebuild.5 | 837 |
1 files changed, 837 insertions, 0 deletions
diff --git a/man/ebuild.5 b/man/ebuild.5 new file mode 100644 index 000000000..349a2b81d --- /dev/null +++ b/man/ebuild.5 @@ -0,0 +1,837 @@ +.TH "EBUILD" "5" "Feb 2003" "Portage 2.0.51" "portage" +.SH "NAME" +ebuild \- the internal format, variables, and functions in an ebuild script +.SH "DESCRIPTION" +The +.BR ebuild (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. +.SH "EXAMPLES" +Here's a simple example ebuild: + +.DS +.nf +# Copyright 1999\-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: + +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/sed/${P}.tar.gz" + +LICENSE="GPL\-2" +SLOT="0" +KEYWORDS="~x86" +IUSE="" + +DEPEND="virtual/libc" +RDEPEND="virtual/libc" + +src_compile() { + econf || die "could not configure" + emake || die "emake failed" +} + +src_install() { + into /usr + doinfo doc/sed.info + doman doc/sed.1 + into / + dobin sed/sed || die "dobin sed failed" + dodir /usr/bin + dosym /bin/sed /usr/bin/sed + dodoc NEWS README* THANKS TODO AUTHORS BUGS ANNOUNCE +} +.fi +.SH "VARIABLES" +.TP +.B MISC USAGE NOTES +- PORTAGE* and PORTDIR* variables may be found in \fBmake.conf\fR(5). +.br +- When assigning values to variables in ebuilds, you \fBcannot have a space\fR +between the variable name and the equal sign. +.TP +.B P +This variable contains the package name without the ebuild revision. +This variable must NEVER be modified. +.br +\fBxfree-4.2.1-r2.ebuild\fR --> \fB$P\fR=='\fIxfree-4.2.1\fR' +.TP +.B PN +Contains the name of the script without the version number. +.br +\fBxfree-4.2.1-r2.ebuild\fR --> \fB$PN\fR=='\fIxfree\fR' +.TP +.B PV +Contains the version number without the revision. +.br +\fBxfree-4.2.1-r2.ebuild\fR --> \fB$PV\fR=='\fI4.2.1\fR' +.TP +.B PR +Contains the revision number or 'r0' if no revision number exists. +.br +\fBxfree-4.2.1-r2.ebuild\fR --> \fB$PR\fR=='\fIr2\fR' +.TP +.B PVR +Contains the version number with the revision. +.br +\fBxfree-4.2.1-r2.ebuild\fR --> \fB$PVR\fR=='\fI4.2.1-r2\fR' +.TP +.B PF +Contains the full package name \fI[PN]\-[PVR]\fR +.br +\fBxfree-4.2.1-r2.ebuild\fR --> \fB$PF\fR=='\fIxfree-4.2.1-r2\fR' +.TP +.B A +Contains all source files required for the package. This variable must +not be defined. It is autogenerated from the \fISRC_URI\fR variables. +.TP +\fBWORKDIR\fR = \fI"${PORTAGE_TMPDIR}/portage/${PF}/work"\fR +Contains the path to the package build root. Do not modify this variable. +.TP +\fBFILESDIR\fR = \fI"${PORTDIR}/${CATEGORY}/${PN}/files"\fR +Contains the path to the 'files' sub folder in the package specific +location in the portage tree. Do not modify this variable. +.TP +\fBS\fR = \fI"${WORKDIR}/${P}"\fR +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 +\fBT\fR = \fI"${PORTAGE_TMPDIR}/portage/${PF}/temp"\fR +Contains the path to a \fItemporary directory\fR. You may use this for +whatever you like. +.TP +\fBD\fR = \fI"${PORTAGE_TMPDIR}/portage/${PF}/image"\fR +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}. Do not modify this variable. This will not be +available inside of the pkg_* functions, see \fIIMAGE\fR below. +.TP +\fBIMAGE\fR = \fI"${PORTAGE_TMPDIR}/portage/${PF}/image"\fR +Contains the path to the temporary \fIimage directory\fR. When inside of the +\fIpkg_*\fR functions, you should access the \fIIMAGE\fR directory instead of +the \fID\fR directory. Do not modify this variable. +.TP +\fBDESCRIPTION\fR = \fI"A happy little package"\fR +Should contain a short description of the package. +.TP +\fBSRC_URI\fR = \fI"http://happy.com/little/${P}.tar.gz"\fR +Contains a list of URI's for the required source files. It can contain +multiple URI's for a single source file. The fastest location is chosen +if the file was not found at \fIGENTOO_MIRROR\fB\fR. +.TP +\fBHOMEPAGE\fR = \fI"http://happy.com/"\fR +Should contain a list of URL's for the sources main sites and other further +package dependent information. +.TP +\fBKEYWORDS\fR = \fI[-~][x86,ppc,sparc,mips,alpha,arm,hppa]\fR +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. +.TP +\fBSLOT\fR +This sets the SLOT for packages that may need to co\-exist. By default +you should set \fBSLOT\fR="0" unless you know what you are doing and need +to do otherwise. This value should \fINEVER\fR be left undefined. +.TP +\fBLICENSE\fR +This should be a space delimited list of licenses that the package falls +under. This \fB_must_\fR be set to a matching license in +/usr/portage/licenses/. If the license does not exist in portage yet you +must add it first. +.TP +\fBIUSE\fR +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). +.TP +\fBDEPEND\fR +This should contain a list of all packages that are required for the +program to compile. +.RS +.TP +.B DEPEND Atoms +A depend atom 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. +.RS +.TP +.B Atom Bases +The base atom is just a full category/packagename. Hence, these are base atoms: + +.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: + +.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 \fBnot\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. +.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: + +.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. Here are some common +examples you may find in the portage tree: + +.nf +\fI!\fRapp-text/dos2unix +=dev-libs/glib-2\fI*\fR +\fI!\fR=net-fs/samba-2\fI*\fR +\fI~\fRnet-libs/libnet-1.0.2a +.fi + +\fI!\fR means block packages from being installed at the same time. +.br +\fI*\fR means match any version of the package so long as the specified base +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... +.br +\fI~\fR means match any revision of the base version specified. So in the +above example, we would match versions '1.0.2a', '1.0.2a-r1', '1.0.2a-r2', +etc... +.RE +.TP +.B Dynamic DEPENDs +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? ( DEPEND Atom ) +To include the jpeg library when the user has jpeg in \fBUSE\fR, simply use the +following syntax: +.br +.B 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: +.br +.B !nophysfs? ( dev-games/physfs ) +.br +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: +.br +.B gtk2? ( =x11-libs/gtk+-2* ) !gtk2? ( =x11-libs/gtk+-1* ) +.br +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. +.nf +.B || ( +.B app-games/unreal-tournament +.B app-games/unreal-tournament-goty +.B ) +.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. +.br +Another good example is when a package can be built with multiple video +interfaces, but it can only ever have just one. +.nf +.B || ( +.B sdl? ( media-libs/libsdl ) +.B svga? ( media-libs/svgalib ) +.B opengl? ( virtual/opengl ) +.B ggi? ( media-libs/libggi ) +.B virtual/x11 +.B ) +.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. +.RE + +.RE +.TP +\fBRDEPEND\fR +This should contain a list of all packages that are required for this +program to run (aka runtime depend). If this is not set, then it +defaults to the value of \fBDEPEND\fR. +.br +You may use the same syntax to vary dependencies as seen above in \fBDEPEND\fR. +.TP +\fBPDEPEND\fR +This should contain a list of all packages that will have to be installed after +the program has been merged. +.br +You may use the same syntax to vary dependencies as seen above in \fBDEPEND\fR. +.TP +\fBRESTRICT\fR = \fI[fetch,mirror,nostrip,userpriv]\fR +This should be a space delimited list of portage features to restrict. +.PD 0 +.RS +.TP +.I fetch +like \fInomirror\fR but the files will not be fetched via \fBSRC_URI\fR either. +.TP +.I mirror +files in \fBSRC_URI\fR will not be downloaded from the \fBGENTOO_MIRRORS\fR. +.TP +.I primaryuri +fetch from URL's in \fBSRC_URI\fR before \fBGENTOO_MIRRORS\fR. +.TP +.I nostrip +final binaries/libraries will not be stripped of debug symbols. +.TP +.I userpriv +Disables userpriv for specific packages. +.RE +.PD 1 +.TP +\fBPROVIDE\fR = \fI"virtual/TARGET"\fR +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. +.SH "PORTAGE DECLARATIONS" +.TP +.B inherit +Inherit is portage's maintainance of extra classes of functions that +are external to ebuilds and provided as inheritable capabilities and +data. They define functions and set data types as drop-in replacements, +expanded, and simplified routines for extremely common tasks to streamline +the build process. Inherit may only be called once in an ebuild and it may +\fBnever be wrapped within any conditionals\fR of any kind. Specification of +the eclasses contains only their name and not the \fI.eclass\fR extention. +.SH "FUNCTIONS" +.TP +.B pkg_nofetch +If you turn on \fIfetch\fR in \fBRESTRICT\fR, then this function will be +run when the files in \fBSRC_URI\fR cannot be found. 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 of ${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 of $WORKDIR. +.TP +.B src_compile +All necessary steps for configuration and compilation should be done in here. +.br +Initial working directory of $S. +.TP +.B src_test +Run all package specific test cases. The default is to run 'make check' +followed 'make test'. +.br +Initial working directory of $S. +.TP +.B src_install +Should contain everything required to install the package in the temporary +\fIinstall directory\fR. +.br +Initial working directory of $S. +.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 of $PWD. +.TP +.B pkg_prerm pkg_postrm +Like the pkg_*inst functions but for unmerge. +.br +Initial working directory of $PWD. +.TP +.B pkg_config +This function should contain optional basic configuration steps. +.br +Initial working directory of $PWD. +.SH "HELPER FUNCTIONS: GENERAL" +.TP +\fBdie\fR \fI[reason]\fR +Causes the current emerge process to be aborted. The final display will +include \fIreason\fR. +.TP +\fBuse\fR \fI<USE item>\fR +If \fIUSE item\fR is in the \fBUSE\fR variable, \fIUSE item\fR will be +echoed and the function will return 0. If \fIUSE item\fR is not in the +\fBUSE\fR variable, the function will return 1. \fBuseq\fR is a non-echoing +version of \fBuse\fR. +.RS +.TP +.I Example: +.nf +if useq gnome ; then + guiconf="--enable-gui=gnome --with-x" +elif useq gtk ; then + guiconf="--enable-gui=gtk --with-x" +elif useq X ; then + guiconf="--enable-gui=athena --with-x" +else + # No gui version will be built + guiconf="" +fi +.fi +.RE +.TP +\fBuse_with\fR \fI<USE item>\fR \fI[configure option]\fR +Useful for creating custom options to pass to a configure script. If +\fIUSE item\fR is in the \fBUSE\fR variable, then the string +\fI--with-[configure option]\fR will be echoed. If \fIUSE item\fR is +not in the \fBUSE\fR variable, then the string +\fI--without-[configure option]\fR will be echoed. If +\fIconfigure option\fR is not specified, then \fIUSE item\fR will be +used in its place. +.RS +.TP +.I Example: +.nf +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="opengl" +myconf="$(use_with opengl") +(myconf now has the value "--with-opengl") +.fi +.RE +.TP +\fBuse_enable\fR \fI<USE item>\fR \fI[configure option]\fR +Useful for creating custom options to pass to a configure script. If +\fIUSE item\fR is in the \fBUSE\fR variable, then the string +\fI--enable-[configure option]\fR will be echoed. If \fIUSE item\fR is +not in the \fBUSE\fR variable, then the string +\fI--disable-[configure option]\fR will be echoed. If \fIconfigure option\fR +is not specified, then \fIUSE item\fR will be used in its place. +.br +See \fBuse_with\fR for an example. +.TP +\fBhas\fR \fI<item>\fR \fI<item list>\fR +If \fIitem\fR is in \fIitem list\fR, then \fIitem\fR is echoed and \fBhas\fR +returns 0. Otherwise, nothing is echoed and 1 is returned. As indicated with +use, there is a non-echoing version \fBhasq\fR. Please use \fBhasq\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 +\fBhas_version\fR \fI<category/package-version>\fR +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. +.TP +\fBbest_version\fR \fI<package name>\fR +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. The function returns 0 if there is a package that +matches \fIpackage name\fR. Otherwise, the function will return 1. +.RS +.TP +.I Example: +VERINS="$(best_version net-ftp/glftpd)" +.br +(VERINS now has the value "net-ftp/glftpd-1.27" if glftpd-1.27 is installed) +.RE +.SH "HELPER FUNCTIONS: OUTPUT" +.TP +\fBeinfo\fR \fI"informative message"\fR +If you need to display an message that you wish the user to read and take +notice of, then use \fBeinfo\fR. It works just like \fBecho\fR(1), but +adds a little more to the output so as to catch the user's eye. +.TP +\fBewarn\fR \fI"warning message"\fR +Same as \fBeinfo\fR, but should be used when showing a warning to the user. +.TP +\fBeerror\fR \fI"error message"\fR +Same as \fBeinfo\fR, but should be used when showing an error to the user. +.SH "HELPER FUNCTIONS: UNPACK" +.TP +\fBunpack\fR \fI<source>\fR \fI[list of more sources]\fR +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. +.SH "HELPER FUNCTIONS: COMPILE" +.TP +\fBeconf\fR \fI[configure options]\fR +This is used as a replacement for configure. Performs: +.nf +configure \\ + --prefix=/usr \\ + --host=${CHOST} \\ + --mandir=/usr/share/man \\ + --infodir=/usr/share/info \\ + --datadir=/usr/share \\ + --sysconfdir=/etc \\ + --localstatedir=/var/lib \\ + \fI${EXTRA_ECONF}\fR \\ + \fIconfigure options\fR +.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 arguements to \fBeconf\fR. +.TP +\fBemake\fR \fI[make options]\fR +This is used as a replacement for make. Performs 'make ${MAKEOPTS} +\fImake options\fR' (as set in /etc/make.globals), default is MAKEOPTS="\-j2". + +\fB***warning***\fR +.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. +.SH "HELPER FUNCTIONS: INSTALL" +.TP +\fBeinstall\fR \fI[make options]\fR +This is used as a replacement for make install. Performs: +.nf +make \\ + prefix=${D}/usr \\ + datadir=${D}/usr/share \\ + infodir=${D}/usr/share/info \\ + localstatedir=${D}/var/lib \\ + mandir=${D}/usr/share/man \\ + sysconfdir=${D}/etc \\ + \fI${EXTRA_EINSTALL}\fR \\ + \fImake options\fR \\ + install +.fi +Please do \fBnot\fR use this in place of 'make 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 ${D}/usr/share/doc. +.TP +.B prepallinfo: +Compresses all info files in ${D}/usr/share/info. +.TP +.B prepallman: +Compresses all man files in ${D}/usr/share/man. +.TP +.B prepallstrip: +Strips all executable files of debugging symboles. This includes libraries. +.RE + +.TP +\fBprepinfo\fR \fI[dir]\fR +.TP +\fBpreplib\fR \fI[dir]\fR +.TP +\fBpreplib.so\fR \fI[dir]\fR +.TP +\fBprepman\fR \fI[dir]\fR +.TP +\fBprepstrip\fR \fI[dir]\fR +.PD 1 +Similiar 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 +${D}/\fIdir\fR/info. +.TP +.B preplib: +If a \fIdir\fR is not specified, then \fBpreplib\fR will assume the dir +\fIusr\fR. \fBpreplib\fR will then run 'ldconfig -n -N' on ${D}/\fIdir\fR/lib. +.TP +.B preplib.so: +All the files with '.so' in their name and are found in ${D}/\fIdir\fR will +be stripped of their debug symbols. You may specify multiple directories. +.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 +${D}/\fIdir\fR/man/*/. +.TP +.B prepstrip: +All the files found in ${D}/\fIdir\fR will be stripped. You may specify +multiple directories. +.RE +.PD 1 +.TP +\fBdopython\fR \fI<commands>\fR +Performs \fIcommands\fR with python and returns the result. +.TP +\fBdosed\fR \fI"s:orig:change:g" <filename>\fR +Performs sed (including cp/mv \fIfilename\fR) on \fIfilename\fR. +.br +.BR 'dosed\ "s:/usr/local:/usr:g"\ /usr/bin/some-script' +runs sed on ${D}/usr/bin/some-script +.TP +\fBdodir\fR \fI<path>\fR +Creates a directory inside of ${D}. +.br +.BR 'dodir\ /usr/lib/apache' +creates ${D}/usr/lib/apache. Note that the do* functions will run +\fBdodir\fR for you. +.TP +\fBdiropts\fR \fI[options for install(1)]\fR +Can be used to define options for the install function used in +\fBdodir\fR. The default is \fI-m0755\fR. +.TP +\fBinto\fR \fI<path>\fR +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 +\fBkeepdir\fR \fI<path>\fR +Tells portage to leave a directory behind even if it is empty. Functions +the same as \fBdodir\fR. +.TP +\fBdobin\fR \fI<binary> [list of more binaries]\fR +Installs a \fIbinary\fR or a list of binaries into \fIDESTTREE\fR/bin. +Creates all necessary dirs. +.TP +\fBdosbin\fR \fI<binary> [list of more binaries]\fR +Installs a \fIbinary\fR or a list of binaries into \fIDESTTREE\fR/sbin. +Creates all necessary dirs. +.TP +\fBdoinitd\fR \fI<init.d script> [list of more init.d scripts]\fR +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 +\fBdoconfd\fR \fI<conf.d file> [list of more conf.d file]\fR +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 +\fBdoenvd\fR \fI<env.d entry> [list of more env.d entries]\fR +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 +\fBdolib\fR \fI<library>\fR \fI[list of more libraries]\fR +.TP +\fBdolib.a\fR \fI<library>\fR \fI[list of more libraries]\fR +.TP +\fBdolib.so\fR \fI<library>\fR \fI[list of more libraries]\fR +.PD 1 +Installs a library or a list of libraries into \fIDESTTREE\fR/lib. +Creates all necessary dirs. +.TP +\fBlibopts\fR \fI[options for install(1)]\fR +Can be used to define options for the install function used in +the \fBdolib\fR functions. The default is \fI-m0644\fR. +.TP +\fBdoman\fR \fI[\-i18n=<locale>]\fR \fI<man-page> [list of more man\-pages]\fR +Installs manual\-pages into /usr/share/man/man[0\-9n] depending on the +manual file ending. The files are gzipped 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]. +Creates all necessary dirs. + +.PD 0 +.TP +\fBdohard\fR \fI<filename> <linkname>\fR +.TP +\fBdosym\fR \fI<filename> <linkname>\fR +.PD 1 +Performs the ln command as either a hard link or symlink. +.TP +\fBdohtml\fR \fI [\-a filetypes] [\-r] [\-x list\-of\-dirs\-to\-ignore] [list\-of\-files\-and\-dirs]\fR +Installs the files in the list of files (space\-separated list) into +/usr/share/doc/${PF}/html provided the file ends in .html, .png, .js, .jpg, +or .css. 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\-r\fR sets recursive. +.TP +\fBdoinfo\fR \fI<info-file> [list of more info\-files]\fR +Installs info\-pages into \fIDESTDIR\fR/info. Files are automatically +gzipped. Creates all necessary dirs. +.TP +\fBdojar\fR \fI<jar file> [list of more jar files]\fR +Installs jar files into /usr/share/${PN}/lib and adds them to +/usr/share/${PN}/classpath.env. +.TP +\fBdomo\fR \fI<locale-file> [list of more locale\-files] \fR +Installs locale\-files into \fIDESTDIR\fR/usr/share/locale/[LANG] +depending on local\-file's ending. Creates all necessary dirs. + +.PD 0 +.TP +\fBfowners\fR \fI<permissions> <file> [files]\fR +.TP +\fBfperms\fR \fI<permissions> <file> [files]\fR +.PD 1 +Performs chown (\fBfowners\fR) or chmod (\fBfperms\fR), applying +\fIpermissions\fR to \fIfiles\fR. +.TP +\fBinsinto\fR \fI[path]\fR +Sets the root (\fIINSDESTTREE\fR) for the \fBdoins\fR function. +.br +The default root is /. +.TP +\fBinsopts\fR \fI[options for install(1)]\fR +Can be used to define options for the install function used in +\fBdoins\fR. The default is \fI\-m0644\fR. +.TP +\fBdoins\fR \fI<file> [list of more files]\fR +Installs files into \fIINSDESTTREE\fR. This function uses \fBinstall\fR(1). +Creates all necessary dirs. +.TP +\fBexeinto\fR \fI[path]\fR +Sets the root (\fIEXEDESTTREE\fR) for the \fBdoexe\fR function. +.br +The default root is /. +.TP +\fBexeopts\fR \fI[options for install(1)]\fR +Can be used to define options for the install function used in \fBdoexe\fR. +The default is \fI\-m0755\fR. +.TP +\fBdoexe\fR \fI<executable> [list of more executables]\fR +Installs a executable or a list of executable into \fIEXEDESTTREE\fR. +This function uses \fBinstall\fR(1). Creates all necessary dirs. +.TP +\fBdocinto\fR \fI[path]\fR +Sets the relative subdir (\fIDOCDESTTREE\fR) used by \fBdodoc\fR. +.TP +\fBdodoc\fR \fI<document> [list of more documents]\fR +Installs a document or a list of document into /usr/share/doc/${PF}/\fIDOCDESTTREE\fR. +Files are automatically gzipped. Creates all necessary dirs. + +.PD 0 +.TP +\fBnewbin\fR \fI<old file> <new filename>\fR +.TP +\fBnewsbin\fR \fI<old file> <new filename>\fR +.TP +\fBnewinitd\fR \fI<old file> <new filename>\fR +.TP +\fBnewconfd\fR \fI<old file> <new filename>\fR +.TP +\fBnewenvd\fR \fI<old file> <new filename>\fR +.TP +\fBnewlib\fR \fI<old file> <new filename>\fR +.TP +\fBnewlib.so\fR \fI<old file> <new filename>\fR +.TP +\fBnewlib.a\fR \fI<old file> <new filename>\fR +.TP +\fBnewman\fR \fI<old file> <new filename>\fR +.TP +\fBnewinfo\fR \fI<old file> <new filename>\fR +.TP +\fBnewins\fR \fI<old file> <new filename>\fR +.TP +\fBnewexe\fR \fI<old file> <new filename>\fR +.TP +\fBnewdoc\fR \fI<old file> <new filename>\fR +.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. +.SH "REPORTING BUGS" +Please report bugs via http://bugs.gentoo.org/ +.SH "SEE ALSO" +.BR ebuild (1), +.BR make.conf (5) +.TP +The \fI/usr/sbin/ebuild.sh\fR script. +.TP +The helper apps in \fI/usr/lib/portage/bin\fR. +.SH "FILES" +.TP +\fB/etc/make.conf\fR +Contains variables for the build\-process and overwrites those in make.defaults. +.TP +\fB/etc/make.globals\fR +Contains the default variables for the build\-process, you should edit +\fI/etc/make.conf\fR instead. +.SH "AUTHORS" +.nf +Achim Gottinger <achim@gentoo.org> +Mark Guertin <gerk@gentoo.org> +Nicholas Jones <carpaski@gentoo.org> +Mike Frysinger <vapier@gentoo.org> +.fi +.SH "CVS HEADER" +$Header: /var/cvsroot/gentoo-src/portage/man/ebuild.5,v 1.73.2.8 2005/05/22 09:56:55 vapier Exp $ |