繁体   English   中英

如何正确为Gentoo编写ebuild

[英]How to write ebuild for Gentoo correctly

有人可以帮忙为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'

您尚未定义SRC_URI。 这就是下载tarball的方式。 您不将其包括在ebuild的目录中。 即使您确实已经事先下载了它,您也可以将它保存在/ usr / portage / distfiles中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM