2013-02-21 136 views
0

任何人都可以帮助创建ebuild为GBS?这是我的工件的ebuild(OSC为修改的ebuild):如何正确编写Gentoo的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

您还没有定义SRC_URI。这就是它用来下载tarball的原因。您不会将其包含在ebuild的目录中。即使你确实已经预先下载了它,你仍然在/ usr/portage/distfiles中。另外,你的所有函数(除了可能的pkg_setup,不知道)都是多余的。默认功能将正常工作,请删除它们。