| .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 |
| # $Id: |
| |
| 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, 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 |
| \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" |
| $Id: /var/cvsroot/gentoo-src/portage/man/ebuild.5,v 1.73.2.8 2005/05/22 09:56:55 vapier Exp $ |