+ -
当前位置:首页 → 问答吧 → [分享] 第六个练手作品 xfmpc 一个xfce4库支持下的mpc前端 by [**与玫瑰]

[分享] 第六个练手作品 xfmpc 一个xfce4库支持下的mpc前端 by [**与玫瑰]

时间:2008-03-31

来源:互联网

代码:
我blog里存放的位置
http://hi.baidu.com/3444542/blog/item/1c909555a70f06c0b745aed9.html
刚在linuxtoy上看到 xfmpc这玩意,虽说现在用的是sonata,但发现这玩意也不错,就顺便又拿下来练手,觉得这个mpc前端可能对兄弟位有用就分享一下了, 之前用传统eutils方式写的,写好后发现网上有人写了,不过是svn的,参考了一下使用 inherit xfce44方式更简单,因为我机子上本来就安有xfce4,因此不知道是否安装时会把xfce4安上,如果有洁P只想用xfce4-libs方式的话可以改成eutils方式来进行,如果有兴趣的朋友测试完后可回贴一下,继续练手+分享中...

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

inherit xfce44

DESCRIPTION="A graphical GTK+ MPD client focusing on low footprint" # 这是对你的软件包进行的简短说明
HOMEPAGE="http://goodies.xfce.org/projects/applications/xfmpc" # 这个就没什么好说的了,如果你在某个站点发布你的软件,那在这里加上网站的链接就是了
#SRC_URI="http://goodies.xfce.org/releases/xfmpc/xfmpc-0.0.4.tar.bz2"
SRC_URI="http://goodies.xfce.org/releases/xfmpc/${P}.tar.bz2"
SLOT="0" # 通常这里写成0就可以了,这主要用于GCC,emacs这类可以多版本共存的软件包
#IUSE="linguas_zh_CN ssl applet systray doc" # 这里设置USE标记,较为复杂,这里就只加一个doc作例子了
IUSE=""
RESTRICT="mirror" #for local overlay
LICENSE="GPL-2" # 我们痛恨但又不可避免的软件许可
KEYWORDS="x86 amd64" #这只是个简单的脚本,所以在各种架构上都应该是可以正常运行的,不过,我们只想在x86上测试它
#并且所有起始的ebuild都应该先进行测试,所以只写上~x86

#写完后发现原来有人家写好的了 不过用的是svn版
#http://gentoo-overlays.zugaina.org/xfce/portage/xfce-extra/xfmpc/xfmpc-9999.ebuild
RDEPEND=">=x11-libs/gtk+-2.12 \
 >=xfce-base/libxfcegui4-4.4.0 \
 >=xfce-base/libxfce4util-4.4.0 \
 >=media-libs/libmpd-0.15.0 "

DEPEND="${RDEPEND} \
 dev-util/intltool"

#RDEPEND=">=media-libs/libmpd-0.15.0 \
# >=dev-libs/glib-2.14:2 \
# >=x11-libs/gtk+-2.12:2 \
# ~xfce-base/libxfcegui4-${PV} \
# ~xfce-base/libxfce4util-${PV}"

#=========xfce44.eclass====
#XFCE_CONFIG="${XFCE_CONFIG} $(use_enable dbus)"
#DOCS="AUTHORS ChangeLog NEWS TODO README README.plugins README.remote"
#==============================================

#S="${WORKDIR}/${PN}${PV}"

#------------------ 一个使用第三方ebuild的示例---------------------------
#sudo mkdir /usr/local/myportage/net-misc/g2ipmsg/files -p
#cd /usr/local/myportage/net-misc/g2ipmsg/files
#--------------------
#add PORTDIR_OVERLAY to /etc/make.conf
#PORTDIR_OVERLAY="/usr/local/myportage" 
#PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/portage/local/layman/gentoo-china"
#sudo sh -c "echo net-misc/g2ipmsg >> /etc/portage/package.keywords"
#sudo sh -c 'echo "net-misc/g2ipmsg ssl applet doc systray >> /etc/portage/package.use'
#不用这一步
#sudo ebuild ./g2ipmsg-0.9.5.ebuild digest
#sudo sh -c "USE=doc emerge g2ipmsg"
#cat /var/lib/portage/world | grep g2ipmsg
#---------------------------------------------
#test for ebuild
#repoman scan
#repoman full
#---------------------------------------------
#==========联系方式==========
# mailto: [email protected]
# QQ: 3444542
# gmail: [email protected]
# irc: irc.freenode.org/#gentoo-cn GunsNRose
# blog: http://hi.baidu.com/3444542/blog
#============================
还是把传统的 eutils 方式也放上吧, 忘补充了,文件名是 xfmpc-0.0.4.ebuild

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

inherit eutils xfce44

DESCRIPTION="A graphical GTK+ MPD client focusing on low footprint" # 这是对你的软件包进行的简短说明
HOMEPAGE="http://goodies.xfce.org/projects/applications/xfmpc" # 这个就没什么好说的了,如果你在某个站点发布你的软件,那在这里加上网站的链接就是了
#SRC_URI="http://goodies.xfce.org/releases/xfmpc/xfmpc-0.0.4.tar.bz2"
SRC_URI="http://goodies.xfce.org/releases/xfmpc/${P}.tar.bz2"
SLOT="0" # 通常这里写成0就可以了,这主要用于GCC,emacs这类可以多版本共存的软件包
IUSE=""
RESTRICT="mirror" #for local overlay
LICENSE="GPL-2" # 我们痛恨但又不可避免的软件许可
KEYWORDS="x86 amd64" #这只是个简单的脚本,所以在各种架构上都应该是可以正常运行的,不过,我们只想在x86上测试它
#并且所有起始的ebuild都应该先进行测试,所以只写上~x86

#写完后发现原来有人家写好的了
#http://gentoo-overlays.zugaina.org/xfce/portage/xfce-extra/xfmpc/xfmpc-9999.ebuild
RDEPEND=">=x11-libs/gtk+-2.12 \
 >=xfce-base/libxfcegui4-4.4.0 \
 >=xfce-base/libxfce4util-4.4.0 \
 >=media-libs/libmpd-0.15.0"

DEPEND="${RDEPEND} \
 dev-util/intltool"

#RDEPEND=">=media-libs/libmpd-0.15.0 \
# >=dev-libs/glib-2.14:2 \
# >=x11-libs/gtk+-2.12:2 \
# ~xfce-base/libxfcegui4-${PV} \
# ~xfce-base/libxfce4util-${PV}"


#=========xfce44.eclass====
#XFCE_CONFIG="${XFCE_CONFIG} $(use_enable dbus)"
#DOCS="AUTHORS ChangeLog NEWS TODO README README.plugins README.remote"
#==============================================
#S="${WORKDIR}/${PN}${PV}"

# src_unpack() # 这个函数用于解压源代码 
# {
# #当前ebuild可以不用声明此函数 但为了学习而显示一些变量而用的
# # ${S}是src_unpack函数起始执行的地方,由emerge系统自动创建
# #cp ${FILESDIR}/unmask.gz ${S}
# #FILESDIR这个变量指明了我们存放该包的路径也就是
# #/usr/portage/local/myebuilds/app-portage/unmask/files
# #gzip -d ${S}/unmask.gz
# einfo "Start src_unpack()"
# einfo "${P}"
# einfo "\$\{S\}=${S}"
# einfo "\$\{D\}=${D}"
# einfo "\$\{FILESDIR\}=${FILESDIR}"
# unpack ${A}
# einfo "A = ${A}"
# einfo "org S = ${S}"
# einfo "WORKDIR = ${WORKDIR}"
# cd "${S}"
# einfo "after S = ${S}"
# einfo "D = ${D}"
# einfo "FEATURES=${FEATURES}"
# }

src_compile()
{
        econf || die "=================econf failed============="
        emake || die "emake failed"
}

# src_compile() { } #如果你需要编译什么东西,就在这个函数中完成.
src_install()
{
        einfo "Start src_install()"
        emake DESTDIR="${D}" install || die "emake install failed" #
        #dobin ${PN}
        #dodoc README CHANGELOG
        #推荐使用 make DESTDIR="${D}" install 方式
        #einstall用于对付不正常Makefile
}
#------------------ 一个使用第三方ebuild的示例---------------------------
#sudo mkdir /usr/local/myportage/net-misc/g2ipmsg/files -p
#cd /usr/local/myportage/net-misc/g2ipmsg/files
#--------------------
#add PORTDIR_OVERLAY to /etc/make.conf
#PORTDIR_OVERLAY="/usr/local/myportage" 
#PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/portage/local/layman/gentoo-china"
#sudo sh -c "echo net-misc/g2ipmsg >> /etc/portage/package.keywords"
#sudo sh -c 'echo "net-misc/g2ipmsg ssl applet doc systray >> /etc/portage/package.use'
#不用这一步
#sudo ebuild ./g2ipmsg-0.9.5.ebuild digest
#sudo sh -c "USE=doc emerge g2ipmsg"
#cat /var/lib/portage/world | grep g2ipmsg
#---------------------------------------------
#test for ebuild
#repoman scan
#repoman full
#---------------------------------------------
#==========联系方式==========
# mailto: [email protected]
# QQ: 3444542
# gmail: [email protected]
# irc: irc.freenode.org/#gentoo-cn GunsNRose
# blog: http://hi.baidu.com/3444542/blog
#============================
修正记录:
v1 : RDEPEND=">=x11-libs/gtk+-2.12 \ 写成了 DEPEND=">=x11-libs/gtk+-2.12 \ 导致无法找到依赖关系

学习记录:
v1 : 使用xfce44.eclass的话可以省去很多麻烦,在portage中有非常多类似的例子,如 gentoo-china的eva, 还有kde的例子
v2 : >=dev-libs/glib-2.14:2 :2 代表 SLOT=2 而非 EAPI="2" 好像理解有误,晚点再去学,干正事先
http://gentoo-wiki.com/EAPI
http://bugs.gentoo.org/show_bug.cgi?id=150368 这个里面有讲到,比较详细
http://zhllg.spaces.live.com/blog/cn...?wa=wsignin1.0

作者: axlrose   发布时间: 2008-03-31

我没用xface阿。没啥说的支持一下。

作者: cbkid   发布时间: 2008-03-31

你的这些ebuild有放到哪个overlay去吗?
还是一直就这么散装?

作者: druggo   发布时间: 2008-03-31

引用:
作者: druggo
你的这些ebuild有放到哪个overlay去吗?
还是一直就这么散装?
我一般都放在我的 /usr/local/myportage/里面的
我自己的overlay
你的意思是说网上的overlay?

作者: axlrose   发布时间: 2008-03-31

引用:
作者: axlrose
我一般都放在我的 /usr/local/myportage/里面的
我自己的overlay
你的意思是说网上的overlay?
你可以和老大联系一下,放到gentoo-china的overlay里,方便大家

作者: 食古不化   发布时间: 2008-03-31

引用:
作者: 食古不化
你可以和老大联系一下,放到gentoo-china的overlay里,方便大家
上回本来想联系的,当时想着上班时间还是算了,毕竟老大很忙,还是下班后弄这些事好些,结果就搞忘了,呵呵, 不过上回说传到gentoo-bugs上比较好
其实这个xfmpc可能过段时间就会在portage或者有的overlays上看到了

作者: axlrose   发布时间: 2008-03-31

是啊。
应该先去gentoo-bugs提交。

我觉得放到gentoo-china的overlay就比较好。

作者: somebody   发布时间: 2008-03-31

不会用,也要支持。楼主强!

作者: tlze   发布时间: 2008-04-01

我提交了三个ebuild, 那个prozilla太老了,之前就从portage移走了,所以没加进去,现在添加的三个包分别为 cutecom-0.20.0.ebuild g2ipmsg-0.9.5.ebuild xfmpc-0.0.4.ebuild
因为我的英文实在太烂了,所以只有把里面所有的注释全部删除,目前我本机上备份两套ebuild,一份是带有中文注释版本的,另一份是提交gentoo-china的清洁版,大家有什么建议,或者有什么新的有用的简单的包还未发现有ebuild的,请与我联系,我空闲时间尽量搞定它,最近 update-eix-remote update在我的机子上不灵了,不晓得咋回事
对了,重要的一件事忘了,ebuild高手们冒个泡,空闲时间想请教一些关于ebuild的东西,zhllg上班时又不好意思打扰

[i] net-misc/prozilla [1]
Available versions: 2.0.4!m
Installed versions: 2.0.4!m(18时14分45秒 2008年02月29日)
Homepage: http://prozilla.genesys.ro/
Description: A multi-threaded download accelerator

作者: axlrose   发布时间: 2008-04-01

xfmpc在portage中已经有了,还是从china-overlay里撤下吧。
另外,软件的分类也和portage里的不一样,不知ebuild开发文档中有没有关于分类的相关规则。

作者: zhou3345   发布时间: 2008-04-01

axlrose,分类不一样可不行啊
如果现在的portage里有,就沿用portage的分类
如果没有,和大家商量一下

作者: zhllg   发布时间: 2008-04-01

关于xfmpc在portage的问题,怪了,我今天同步了一下还是只找到我本地overlay里面的,最新update-eix-remote用不了也受到点影响, portage里有的肯定要撤下来的.
分类问题实在是大意了

http://gentoo-overlays.zugaina.org/x...-extra.html.en 这里找到
* xfce-extra/xfmpc/xfmpc-9999

到时提前先还是让老大先检查一下吧
今天 sssslang 说要用 kipmsg 就试着写了一下,如果有多些 gentooer要的话也放进去吧

作者: axlrose   发布时间: 2008-04-01

我想问一下axlrose兄是如何知道一个软件编译和运行时依赖哪些库,有如何查到这些库对应的USE,谢谢。

作者: alaxie   发布时间: 2008-04-01

./configure的时候会检查的
连接时需要什么库,运行时就需要什么库
./configure选项 --with-foo, --enable-bar, 这里foo bar就可以作为USE flag
如果目前没有这个foo USE你也可以自己加上,如果是自己的overlay,你可以随便加,叫什么名字都行。
如果要收入portage tree,你需要先发个RFC到gentoo-dev,征求大家意见。还需要改一个profile里的文件,取决于你的USE是global还是local。

作者: zhllg   发布时间: 2008-04-01

多谢版主,回答的很详细。

作者: alaxie   发布时间: 2008-04-01

引用:
作者: alaxie
我想问一下axlrose兄是如何知道一个软件编译和运行时依赖哪些库,有如何查到这些库对应的USE,谢谢。
兄台一起学ebuild吧,参考以下网址
http://devmanual.gentoo.org/
繁体版http://man.ddvip.com/linux/gentoo/ge...rt2_chap1.html

我的笔记http://hi.baidu.com/3444542/blog/ite...c7af48063.html

你的问题老大回答了,其实我在哪个网页上看到过的,看来要慢慢到我的BLOG上翻了,东西很乱

我的英文实在烂得不行了,有些ebuild的东西光靠stardict还不行,
今天回复了 gentoo bugs
http://bugs.gentoo.org/show_bug.cgi?id=215514
按理说老外看到我的回复就知道我英文有多烂了,gentoo文档我是没办法翻译了,只能靠学一下 ebuild来分享一下,能力有限,需要大家的共同努力

今天晚上回来同步了一下portage才发现xfmpc进了portage里面,已从gentoo-china中删除,添加了 kipmsg 这个东东是基于kde的,我在机子上试了,很棒

作者: axlrose   发布时间: 2008-04-02

引用:
作者: axlrose
兄台一起学ebuild吧,参考以下网址
http://devmanual.gentoo.org/
繁体版http://man.ddvip.com/linux/gentoo/ge...rt2_chap1.html

我的笔记http://hi.baidu.com/3444542/blog/ite...c7af48063.html

你的问题老大回答了,其实我在哪个网页上看到过的,看来要慢慢到我的BLOG上翻了,东西很乱

我的英文实在烂得不行了,有些ebuild的东西光靠stardict还不行,
今天回复了 gentoo bugs
http://bugs.gentoo.org/show_bug.cgi?id=215514
按理说老外看到我的回复就知道我英文有多烂了,gentoo文档我是没办法翻译了,只能靠学一下 ebuild来分享一下,能力有限,需要大家的共同努力

今天晚上回来同步了一下portage才发现xfmpc进了portage里面,已从gentoo-china中删除,添加了 kipmsg 这个东东是基于kde的,我在机子上试了,很棒
我才刚接触gentoo,以前都是在用debian的,对ebuild很感兴趣,不过
目前水平很菜,只能追随老兄你学点东西好了,呵呵

作者: alaxie   发布时间: 2008-04-02

引用:
作者: alaxie
我才刚接触gentoo,以前都是在用debian的,对ebuild很感兴趣,不过
目前水平很菜,只能追随老兄你学点东西好了,呵呵
我以前是用ubuntu-->debian的
后来转到gentoo, 放心吧,
多上irc.freenode.org #gentoo-cn
deb太复杂了,老学不会,还是ebuild相对容易学一些
到#gentoo-cn来吧,我在那里的ID是GunsNRose
到时把我学习ebuild的心得拿来分享一些,不过现在水平很菜 :(

作者: axlrose   发布时间: 2008-04-02

引用:
作者: axlrose
我以前是用ubuntu-->debian的
后来转到gentoo, 放心吧,
多上irc.freenode.org #gentoo-cn
deb太复杂了,老学不会,还是ebuild相对容易学一些
到#gentoo-cn来吧,我在那里的ID是GunsNRose
到时把我学习ebuild的心得拿来分享一些,不过现在水平很菜 :(
axlrose兄真热情,希望能得到你的帮助,把gentoo更深入一步。

作者: alaxie   发布时间: 2008-04-02

热门下载

更多