Ebuild

From Wikipedia, the free encyclopedia

The correct title of this article is ebuild. The initial letter is shown capitalized due to technical restrictions.

An ebuild is a specialized bash script format created by the Gentoo Linux project for use in its Portage software management system. An ebuild is an automated way to perform the compilation and installation procedures for software.

Each version of each application or package in the Portage repository has a specific ebuild script written for it.

The ebuild script is used by the emerge tool, also created by the Gentoo Linux project. The emerge tool uses the ebuild to perform its job: calculate any dependencies of the desired software installation, download the required files (and patch them, if necessary), configure the package (based on USE flag settings), compile, and perform a sandboxed installation (in /var/tmp/portage/[ebuild name]/image/ by default). Upon successful completion of these steps the installed files are merged into the live system, outside the sandbox.

Although most ebuilds found in the Gentoo Portage repository are used to compile programs from source code, there are also ebuilds to install binary packages, ebuilds that install only documentation or data such as fonts, and basic ebuilds called "metabuilds" which solely trigger the installation of other ebuilds (such as the GNOME or KDE metabuilds).

[edit] Example

Here is an example ebuild for version 1.2.2 of the Beep software:

# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-misc/beep/beep-1.2.2-r1.ebuild,v 1.3 2006/08/19 11:00:37 kloeri Exp $

inherit eutils base

DESCRIPTION="the advanced PC speaker beeper"
HOMEPAGE="http://www.johnath.com/beep/"
SRC_URI="http://www.johnath.com/beep/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 ~ppc ~ppc64 ~sparc ~x86"
IUSE=""

PATCHES="${FILESDIR}/${P}-nosuid.patch"

src_compile() {
        emake FLAGS="${CFLAGS}" || die "compile problem"
}

src_install() {
        dobin beep
        fperms 0711 /usr/bin/beep
        doman beep.1.gz
        dodoc CHANGELOG CREDITS README
}

[edit] See also

[edit] External links