如何正确编写Gentoo的ebuild

时间:2013-02-21 14:18:16

标签: linux package gentoo

任何人都可以帮助创建GBS的ebuild吗?这是我的工件 ebuild (为osc修改了ebuild):

# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5

PYTHON_DEPEND="2:2.7:2.7"

inherit distutils

DESCRIPTION="Command line tool for building packages for Tizen platform"
HOMEPAGE="https://source.tizen.org/documentation/reference/git-build-system"

LICENSE="GPL-2"
SLOT="0"
IUSE=""
KEYWORDS="amd64 x86"

DEPEND="
    >=dev-util/osc-0.131
    dev-vcs/git
    app-arch/rpm
    dev-util/suse-build
"

RDEPEND="${DEPEND}
    app-admin/sudo
    dev-util/obs-service-meta
"

pkg_setup() {
    python_set_active_version 2
    python_pkg_setup
}

src_unpack() {
    unpack ${PF}.tar.gz
}

src_compile() {
    distutils_src_compile
}

src_install() {
    distutils_src_install

    ### Commented from original ebuild #
    #dosym osc-wrapper.py /usr/bin/osc
    #keepdir /usr/lib/osc/source_validators
    #cd "${ED}"/usr/
    #find . -type f -exec sed -i 's|/usr/bin/build|/usr/bin/suse-build|g'   {} +
    #find . -type f -exec sed -i 's|/usr/lib/build|/usr/share/suse-build|g' {} +
    #rm -f "${ED}"/usr/share/doc/${PN}*/TODO*
}

叠加信息

ls /usr/local/portage/dev-util/gbs/
Manifest  gbs-0.13.tar.gz  gbs-0.13_alpha.ebuild  gbs-0.13_alpha.tar.gz

cat /etc/portage/make.conf | grep DISTDIR
DISTDIR="/usr/local/portage/distfiles"

emerge -s "%@dev-util/gbs"
*  dev-util/gbs
      Latest version available: 0.13_alpha
      Latest version installed: [ Not Installed ]
      Size of files: 0 kB
      Homepage:      https://source.tizen.org/documentation/reference/git-build-system
      Description:   Command line tool for building packages for Tizen platform
      License:       GPL-2

当我尝试编译此ebuild(至少解压缩)时,我收到以下错误。 解包源代码的输出:

ebuild   /usr/local/portage/dev-util/gbs/gbs-0.13_alpha.ebuild unpack
>>> Existing ${T}/environment for 'gbs-0.13_alpha' will be sourced. Run
>>> 'clean' to start with a fresh environment.
>>> Not marked as unpacked; recreating WORKDIR...
 * checking ebuild checksums ;-) ...                                                                                        [ ok ]
 * checking miscfile checksums ;-) ...                                                                                      [ ok ]
>>> Unpacking source...
>>> Unpacking gbs-0.13_alpha.tar.gz to /var/tmp/portage/dev-util/gbs-0.13_alpha/work
 * ERROR: dev-util/gbs-0.13_alpha failed (unpack phase):
 *   gbs-0.13_alpha.tar.gz does not exist
 * 
 * Call stack:
 *          ebuild.sh, line   93:  Called src_unpack
 *        environment, line 3719:  Called unpack 'gbs-0.13_alpha.tar.gz'
 *   phase-helpers.sh, line  297:  Called die
 * The specific snippet of code:
 *              [[ ! -s ${srcdir}${x} ]] && die "${x} does not exist"
 * 
 * If you need support, post the output of `emerge --info '=dev-util/gbs-0.13_alpha'`,
 * the complete build log and the output of `emerge -pqv '=dev-util/gbs-0.13_alpha'`.
 * This ebuild is from an overlay named 'x-portage': '/usr/local/portage/'
 * The complete build log is located at '/var/tmp/portage/dev-util/gbs-0.13_alpha/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/gbs-0.13_alpha/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-util/gbs-0.13_alpha/work'
 * S: '/var/tmp/portage/dev-util/gbs-0.13_alpha/work/gbs-0.13_alpha'

1 个答案:

答案 0 :(得分:1)

您尚未定义SRC_URI。这就是它用来下载tarball的方法。您不会将其包含在ebuild的目录中。即使你确实已经预先下载了它,你仍然坚持使用/ usr / portage / distfiles。

此外,您的所有功能(除了pkg_setup,不确定)都是多余的。默认功能可以正常工作,请删除它们。