LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1549|回复: 18

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

[复制链接]
发表于 2008-3-31 11:08:15 | 显示全部楼层 |阅读模式
  1. 我blog里存放的位置
  2. http://hi.baidu.com/3444542/blog/item/1c909555a70f06c0b745aed9.html
复制代码
刚在linuxtoy上看到 xfmpc这玩意,虽说现在用的是sonata,但发现这玩意也不错,就顺便又拿下来练手,觉得这个mpc前端可能对兄弟位有用就分享一下了, 之前用传统eutils方式写的,写好后发现网上有人写了,不过是svn的,参考了一下使用 inherit xfce44方式更简单,因为我机子上本来就安有xfce4,因此不知道是否安装时会把xfce4安上,如果有洁P只想用xfce4-libs方式的话可以改成eutils方式来进行,如果有兴趣的朋友测试完后可回贴一下,继续练手+分享中...
  1. # Copyright 1999-2008 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3. # $Header: $
  4. inherit xfce44
  5. DESCRIPTION="A graphical GTK+ MPD client focusing on low footprint" # 这是对你的软件包进行的简短说明
  6. HOMEPAGE="http://goodies.xfce.org/projects/applications/xfmpc"       # 这个就没什么好说的了,如果你在某个站点发布你的软件,那在这里加上网站的链接就是了
  7. #SRC_URI="http://goodies.xfce.org/releases/xfmpc/xfmpc-0.0.4.tar.bz2"
  8. SRC_URI="http://goodies.xfce.org/releases/xfmpc/${P}.tar.bz2"
  9. SLOT="0"         # 通常这里写成0就可以了,这主要用于GCC,emacs这类可以多版本共存的软件包
  10. #IUSE="linguas_zh_CN ssl applet systray doc"        # 这里设置USE标记,较为复杂,这里就只加一个doc作例子了
  11. IUSE=""
  12. RESTRICT="mirror"  #for local overlay
  13. LICENSE="GPL-2" # 我们痛恨但又不可避免的软件许可
  14. KEYWORDS="x86 amd64" #这只是个简单的脚本,所以在各种架构上都应该是可以正常运行的,不过,我们只想在x86上测试它
  15. #并且所有起始的ebuild都应该先进行测试,所以只写上~x86
  16. #写完后发现原来有人家写好的了 不过用的是svn版
  17. #http://gentoo-overlays.zugaina.org/xfce/portage/xfce-extra/xfmpc/xfmpc-9999.ebuild
  18. RDEPEND=">=x11-libs/gtk+-2.12 \
  19.           >=xfce-base/libxfcegui4-4.4.0 \
  20.      >=xfce-base/libxfce4util-4.4.0 \
  21.           >=media-libs/libmpd-0.15.0 "
  22. DEPEND="${RDEPEND} \
  23.   dev-util/intltool"
  24. #RDEPEND=">=media-libs/libmpd-0.15.0 \
  25. #  >=dev-libs/glib-2.14:2 \
  26. #  >=x11-libs/gtk+-2.12:2 \
  27. #  ~xfce-base/libxfcegui4-${PV} \
  28. #  ~xfce-base/libxfce4util-${PV}"
  29. #=========xfce44.eclass====
  30. #XFCE_CONFIG="${XFCE_CONFIG} $(use_enable dbus)"
  31. #DOCS="AUTHORS ChangeLog NEWS TODO README README.plugins README.remote"
  32. #==============================================
  33. #S="${WORKDIR}/${PN}${PV}"
  34. #------------------ 一个使用第三方ebuild的示例---------------------------
  35. #sudo mkdir /usr/local/myportage/net-misc/g2ipmsg/files -p
  36. #cd /usr/local/myportage/net-misc/g2ipmsg/files
  37. #--------------------
  38. #add PORTDIR_OVERLAY to /etc/make.conf
  39. #PORTDIR_OVERLAY="/usr/local/myportage"
  40. #PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/portage/local/layman/gentoo-china"
  41. #sudo sh -c "echo net-misc/g2ipmsg >> /etc/portage/package.keywords"
  42. #sudo sh -c 'echo "net-misc/g2ipmsg ssl applet doc systray >> /etc/portage/package.use'
  43. #不用这一步
  44. #sudo ebuild ./g2ipmsg-0.9.5.ebuild digest
  45. #sudo sh -c "USE=doc emerge g2ipmsg"
  46. #cat /var/lib/portage/world | grep g2ipmsg
  47. #---------------------------------------------
  48. #test for ebuild
  49. #repoman scan
  50. #repoman full
  51. #---------------------------------------------
  52. #==========联系方式==========
  53. # mailto: 3444542@163.com
  54. # QQ: 3444542
  55. # gmail: zlbgps@gmail.com
  56. # irc: irc.freenode.org/#gentoo-cn   GunsNRose
  57. # blog: http://hi.baidu.com/3444542/blog
  58. #============================
复制代码

还是把传统的 eutils 方式也放上吧, 忘补充了,文件名是  xfmpc-0.0.4.ebuild
  1. # Copyright 1999-2008 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3. # $Header: $
  4. inherit eutils xfce44
  5. DESCRIPTION="A graphical GTK+ MPD client focusing on low footprint" # 这是对你的软件包进行的简短说明
  6. HOMEPAGE="http://goodies.xfce.org/projects/applications/xfmpc"       # 这个就没什么好说的了,如果你在某个站点发布你的软件,那在这里加上网站的链接就是了
  7. #SRC_URI="http://goodies.xfce.org/releases/xfmpc/xfmpc-0.0.4.tar.bz2"
  8. SRC_URI="http://goodies.xfce.org/releases/xfmpc/${P}.tar.bz2"
  9. SLOT="0"         # 通常这里写成0就可以了,这主要用于GCC,emacs这类可以多版本共存的软件包
  10. IUSE=""
  11. RESTRICT="mirror"  #for local overlay
  12. LICENSE="GPL-2" # 我们痛恨但又不可避免的软件许可
  13. KEYWORDS="x86 amd64" #这只是个简单的脚本,所以在各种架构上都应该是可以正常运行的,不过,我们只想在x86上测试它
  14. #并且所有起始的ebuild都应该先进行测试,所以只写上~x86
  15. #写完后发现原来有人家写好的了
  16. #http://gentoo-overlays.zugaina.org/xfce/portage/xfce-extra/xfmpc/xfmpc-9999.ebuild
  17. RDEPEND=">=x11-libs/gtk+-2.12 \
  18.         >=xfce-base/libxfcegui4-4.4.0 \
  19.         >=xfce-base/libxfce4util-4.4.0 \
  20.         >=media-libs/libmpd-0.15.0"
  21. DEPEND="${RDEPEND} \
  22.         dev-util/intltool"
  23. #RDEPEND=">=media-libs/libmpd-0.15.0 \
  24. #                >=dev-libs/glib-2.14:2 \
  25. #                >=x11-libs/gtk+-2.12:2 \
  26. #                ~xfce-base/libxfcegui4-${PV} \
  27. #                ~xfce-base/libxfce4util-${PV}"
  28. #=========xfce44.eclass====
  29. #XFCE_CONFIG="${XFCE_CONFIG} $(use_enable dbus)"
  30. #DOCS="AUTHORS ChangeLog NEWS TODO README README.plugins README.remote"
  31. #==============================================
  32. #S="${WORKDIR}/${PN}${PV}"
  33. #   src_unpack() # 这个函数用于解压源代码
  34. #   {
  35. #       #当前ebuild可以不用声明此函数 但为了学习而显示一些变量而用的
  36. #       # ${S}是src_unpack函数起始执行的地方,由emerge系统自动创建
  37. #       #cp ${FILESDIR}/unmask.gz ${S}
  38. #       #FILESDIR这个变量指明了我们存放该包的路径也就是
  39. #       #/usr/portage/local/myebuilds/app-portage/unmask/files
  40. #       #gzip -d ${S}/unmask.gz
  41. #       einfo "Start src_unpack()"
  42. #       einfo "${P}"
  43. #       einfo "\$\{S\}=${S}"
  44. #       einfo "\$\{D\}=${D}"
  45. #       einfo "\$\{FILESDIR\}=${FILESDIR}"
  46. #       unpack ${A}
  47. #       einfo "A = ${A}"
  48. #       einfo "org S = ${S}"
  49. #       einfo "WORKDIR = ${WORKDIR}"
  50. #       cd "${S}"
  51. #       einfo "after S = ${S}"
  52. #       einfo "D = ${D}"
  53. #       einfo "FEATURES=${FEATURES}"
  54. #   }
  55. src_compile()
  56. {
  57.         econf || die "=================econf failed============="
  58.         emake || die "emake failed"
  59. }
  60. # src_compile() { } #如果你需要编译什么东西,就在这个函数中完成.
  61. src_install()
  62. {
  63.         einfo "Start src_install()"
  64.         emake DESTDIR="${D}" install || die "emake install failed" #
  65.         #dobin ${PN}
  66.         #dodoc README CHANGELOG
  67.         #推荐使用 make DESTDIR="${D}" install 方式
  68.         #einstall用于对付不正常Makefile
  69. }
  70. #------------------ 一个使用第三方ebuild的示例---------------------------
  71. #sudo mkdir /usr/local/myportage/net-misc/g2ipmsg/files -p
  72. #cd /usr/local/myportage/net-misc/g2ipmsg/files
  73. #--------------------
  74. #add PORTDIR_OVERLAY to /etc/make.conf
  75. #PORTDIR_OVERLAY="/usr/local/myportage"
  76. #PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/portage/local/layman/gentoo-china"
  77. #sudo sh -c "echo net-misc/g2ipmsg >> /etc/portage/package.keywords"
  78. #sudo sh -c 'echo "net-misc/g2ipmsg ssl applet doc systray >> /etc/portage/package.use'
  79. #不用这一步
  80. #sudo ebuild ./g2ipmsg-0.9.5.ebuild digest
  81. #sudo sh -c "USE=doc emerge g2ipmsg"
  82. #cat /var/lib/portage/world | grep g2ipmsg
  83. #---------------------------------------------
  84. #test for ebuild
  85. #repoman scan
  86. #repoman full
  87. #---------------------------------------------
  88. #==========联系方式==========
  89. # mailto: 3444542@163.com
  90. # QQ: 3444542
  91. # gmail: zlbgps@gmail.com
  92. # irc: irc.freenode.org/#gentoo-cn   GunsNRose
  93. # blog: http://hi.baidu.com/3444542/blog
  94. #============================
复制代码

修正记录:
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/blo ... entry?wa=wsignin1.0
发表于 2008-3-31 11:18:25 | 显示全部楼层
我没用xface阿。没啥说的支持一下。
回复 支持 反对

使用道具 举报

发表于 2008-3-31 11:30:22 | 显示全部楼层
你的这些ebuild有放到哪个overlay去吗?
还是一直就这么散装?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 12:37:17 | 显示全部楼层
Post by druggo;1833115
你的这些ebuild有放到哪个overlay去吗?
还是一直就这么散装?


我一般都放在我的 /usr/local/myportage/里面的
我自己的overlay
你的意思是说网上的overlay?
回复 支持 反对

使用道具 举报

发表于 2008-3-31 15:57:24 | 显示全部楼层
Post by axlrose;1833129
我一般都放在我的 /usr/local/myportage/里面的
我自己的overlay
你的意思是说网上的overlay?

你可以和老大联系一下,放到gentoo-china的overlay里,方便大家:thank
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 16:58:41 | 显示全部楼层
Post by 食古不化;1833199
你可以和老大联系一下,放到gentoo-china的overlay里,方便大家:thank

上回本来想联系的,当时想着上班时间还是算了,毕竟老大很忙,还是下班后弄这些事好些,结果就搞忘了,呵呵, 不过上回说传到gentoo-bugs上比较好
其实这个xfmpc可能过段时间就会在portage或者有的overlays上看到了
回复 支持 反对

使用道具 举报

发表于 2008-3-31 18:04:04 | 显示全部楼层
是啊。
应该先去gentoo-bugs提交。

我觉得放到gentoo-china的overlay就比较好。
回复 支持 反对

使用道具 举报

发表于 2008-3-31 20:40:34 | 显示全部楼层
不会用,也要支持。楼主强!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-31 21:11:10 | 显示全部楼层
我提交了三个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上班时又不好意思打扰

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
回复 支持 反对

使用道具 举报

发表于 2008-4-1 13:30:35 | 显示全部楼层
xfmpc在portage中已经有了,还是从china-overlay里撤下吧。
另外,软件的分类也和portage里的不一样,不知ebuild开发文档中有没有关于分类的相关规则。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表