LinuxSir.cn,穿越时空的Linuxsir!

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

飞鸽传书 g2ipmsg-0.9.5.ebuild 基于GTK+,本人初学ebuild第一个练手作品 发贴庆祝一

[复制链接]
发表于 2008-2-27 22:02:18 | 显示全部楼层 |阅读模式
练手作品,一看框架就知道是参考wiki上的文档来的,反正最近学了一下ebuild,正常可以拿这个来练手,目前只是在本机测试成功了,没有优化,比如DEPEND= 还有USE方面还未处理好,将就能用,这个鸟东东可以跟windows下的飞鸽传书通讯,比较方便,觉得有用所以就贴出来了,若有朋友更新请别忘了通知一声,联系方式ebuild中有

欢迎加入 [Arch & Gentoo] 群  24406485

#g2ipmsg 是基于GTK+的局域网聊天工具 可以跟Windows版的飞鸽传书一起使用
#可聊天及传输文件等
#http://www.lanqq.com/soft/lanqq/setup.rar 发布正式版懒QQ(LanQQ) V3.1版本  基于WINDOWS的飞鸽传书


DEPEND="gnome-base/libgnomeui \
                dev-libs/glib  \
                ssl? (dev-libs/openssl) \
                >=x11-libs/gtk+-2.10.14 "

偶素 #gentoo-cn 的 GunsNRose

这一版本修改了 configure --with-ext-charcode=CP936 后的Makefile还是 CP932字符集的问题,主要修改了configure, configure.in    将所有的  sed -i  's/CP932/CP936/g'  , 虽然方法有点"过分"不过总比乱码好多了,有什么好的建议请联系我
#====================================================================
  1. # Copyright 1999-2008 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3. # $Header: $
  4. inherit eutils
  5. #g2ipmsg 是基于GTK+的局域网聊天工具 可以跟Windows版的飞鸽传书一起使用
  6. #可聊天及传输文件等
  7. #http://www.lanqq.com/soft/lanqq/setup.rar 发布正式版懒QQ(LanQQ) V3.1版本
  8. #(飞鸽传书的升级版本 for windows)
  9. #http://www.azhi.net/IPMsg/ 飞鸽传书windows版最新版下载地址
  10. DESCRIPTION="This is a pop up style LAN Messenger for multi platforms." # 这是对你的软件包进行的简短说明
  11. HOMEPAGE="http://www.ipmsg.org/index.html.en"       # 这个就没什么好说的了,如果你在某个站点发布你的软件,那在这里加上网站的链接就是了
  12. SRC_URI="http://www.ipmsg.org/archive/${P}.tar.gz"        # 这个地址应该指向该软件包可以下载的链接,由于我们把它放入树中了,这里就留空
  13. #http://www.ipmsg.org/archive/g2ipmsg-0.9.5.tar.gz
  14. SLOT="0"         # 通常这里写成0就可以了,这主要用于GCC,emacs这类可以多版本共存的软件包
  15. #IUSE="ext-charcode ssl applet systray doc"        # 这里设置USE标记,较为复杂,这里就只加一个doc作例子了
  16. IUSE="linguas_zh_CN ssl applet systray doc"        # 这里设置USE标记,较为复杂,这里就只加一个doc作例子了
  17. LICENSE="GPL-2" # 我们痛恨但又不可避免的软件许可
  18. KEYWORDS="x86 amd64" #这只是个简单的脚本,所以在各种架构上都应该是可以正常运行的,不过,我们只想在x86上测试它
  19. #并且所有起始的ebuild都应该先进行测试,所以只写上~x86
  20. DEPEND="gnome-base/libgnomeui \
  21.                 dev-libs/glib  \
  22.                 ssl? ( dev-libs/openssl ) \
  23.                 applet? ( >=gnome-base/gnome-panel-2 ) \
  24.                 dev-util/pkgconfig \
  25.                    >=dev-util/intltool-0.33 \
  26.                 >=x11-libs/gtk+-2.10.14"
  27. #RDEPEND=""
  28. RESTRICT="mirror"  #for local overlay
  29. src_unpack() # 这个函数用于解压源代码
  30. {
  31.         #当前ebuild可以不用声明此函数 但为了学习而显示一些变量而用的
  32.         # ${S}是src_unpack函数起始执行的地方,由emerge系统自动创建
  33.         #cp ${FILESDIR}/unmask.gz ${S}
  34.         #FILESDIR这个变量指明了我们存放该包的路径也就是
  35.         #/usr/portage/local/myebuilds/app-portage/unmask/files
  36.         #gzip -d ${S}/unmask.gz
  37.         einfo "Start src_unpack()"
  38.         einfo "${P}"
  39.         einfo "\$\{S\}=${S}"
  40.         einfo "\$\{D\}=${D}"
  41.         einfo "\$\{FILESDIR\}=${FILESDIR}"
  42.         unpack ${A}
  43.         cd "${S}"
  44.         #epatch "${FILESDIR}/${P}.diff"  #暂时不用留着吧
  45.         #以下几行主要应对0.9.5版本 configure --with-ext-charcode=CP936无效的问题
  46.         sed -i 's/CP932/CP936/g' configure.in
  47.         sed -i 's/CP932/CP936/g' configure
  48.         #sed -i 's/CP932/CP936/g' config.h   #多此一举 这个文件是configure生成的
  49.         #反正不考虑其他字符集所以全改为CP936
  50. }
  51. #show_econf_err()
  52. #{
  53. #        einfo "econf faile by show_econf_err()"
  54. #        if use applet; then
  55. #                einfo "try to use USE="-applet" emerge foo"
  56. #        fi
  57. #}
  58. #
  59. src_compile()
  60. {
  61.         #if !use systray; then
  62.         #        econf --disable-systray || die "econf failed"
  63.         #else
  64.         #        econf --enable-systray  || die "econf failed"
  65.         #fi
  66. #econf $(use_enable systray) \
  67. #          $(use_enable applet) \
  68. #          $(use_with   ext-charcode) \
  69. #      $(use_with   ssl)   || die "econf failed"
  70.         local myconf
  71.         myconf="`use_enable systray` \
  72.                         `use_enable applet` \
  73.                         `use_with   ssl`"
  74.         if use linguas_zh_CN ; then
  75.                 myconf="$myconf --with-ext-charcode=CP936"
  76.         fi
  77.         einfo " myconf = ${myconf}"
  78.         econf ${myconf} || die "=================econf failed============="
  79.         emake || die "emake failed"
  80.         #  --with-ext-charcode     External character code setting(CP936(Simplified
  81. }
  82. # src_compile() { } #如果你需要编译什么东西,就在这个函数中完成.
  83. src_install()
  84. {
  85.         einfo "Start src_install()"
  86.         #dosbin unmask
  87.         # 使用dosbin将目标程序安装到/usr/sbin/目录,相应的,如果要安装到/usr/bin,可以使用dobin,这是ebuild本身提供的几个简单的安装函数,可以在man 5 ebuild中查到它们
  88.         if use doc; then
  89.                 einfo "the USE="doc""
  90.                 einfo "cp `ls ${FILESDIR}` to ${D}"
  91.                 #如果使用doc这个USE标记,我们就把readme也复制进去.
  92.                 #dodoc ${FILESDIR}/readme.gz
  93.                 # dodoc也是ebuild脚本所提供的一个安装文档的函数,它会自动创建/usr/share/doc/${PF}并且将文档安装进去
  94.         else
  95.                 einfo "the USE="-doc""
  96.                 einfo "show files === `ls ${FILESDIR}` ===="
  97.         fi
  98.         GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 emake DESTDIR="${D}" install || die "emake install failed" #
  99.         #推荐使用 make DESTDIR="${D}" install 方式
  100.         #GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1  #解决sandbox出错的题,之前要FEATURES=-sandbox emerge g2ipmsg的问题
  101.         #GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 einstall || die "einstall failed"
  102.         #einstall用于对付不正常Makefile
  103. }
  104. #------------------ 一个使用第三方ebuild的示例---------------------------
  105. #sudo mkdir /usr/local/myportage/net-misc/g2ipmsg/files -p
  106. #cd /usr/local/myportage/net-misc/g2ipmsg/files
  107. #--------------------
  108. #add PORTDIR_OVERLAY to /etc/make.conf
  109. #PORTDIR_OVERLAY="/usr/local/myportage"
  110. #PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/portage/local/layman/gentoo-china"
  111. #sudo sh -c "echo net-misc/g2ipmsg >> /etc/portage/package.keywords"
  112. #sudo sh -c 'echo "net-misc/g2ipmsg ssl applet doc systray >> /etc/portage/package.use'
  113. #不用这一步
  114. #sudo ebuild ./g2ipmsg-0.9.5.ebuild digest
  115. #sudo sh -c "USE=doc emerge g2ipmsg"
  116. #cat /var/lib/portage/world | grep g2ipmsg
  117. #---------------------------------------------
  118. #test for ebuild
  119. #repoman scan
  120. #repoman full
  121. #---------------------------------------------
  122. #==========联系方式==========
  123. # mailto: 3444542@163.com
  124. # QQ: 3444542
  125. # gmail: zlbgps@gmail.com
  126. # irc: irc.freenode.org/#gentoo-cn   GunsNRose
  127. # blog: http://hi.baidu.com/3444542/blog
  128. #============================
  129. #--------------------------------------------------------------------------------
  130. #========== g2ipmsg configure --help的一些参数==================
  131. #Optional Features:
  132. #  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  133. #  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  134. #  --enable-maintainer-mode  enable make rules and dependencies not useful
  135. #                          (and sometimes confusing) to the casual installer
  136. #  --disable-dependency-tracking  speeds up one-time build
  137. #  --enable-dependency-tracking   do not reject slow dependency extractors
  138. #  --enable-systray  build g2ipmsg application as systray support [default yes]
  139. #  --disable-schemas-install        Disable the schemas installation
  140. #  --enable-applet          trun on building applet version [default yes]
  141. #
  142. #Optional Packages:
  143. #  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  144. #  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  145. #  --with-ssl=PATH         where to look for OpenSSL, PATH points to the
  146. #                                                  OpenSSL installation (default: /usr/local/ssl)
  147. #  --without-ssl           disable OpenSSL
  148. #  --with-ext-charcode     External character code setting(CP936(Simplified
  149. #                                                  Chinese), CP932(Japanese Windows ShiftJIS))
  150. #                                                  [default=CP932]
  151. #  --with-gconf-source=sourceaddress      Config database for installing schema files.
  152. #  --with-gconf-schema-file-dir=dir        Directory for installing schema files.
  153. #--------------------------------------------------------------------------------
复制代码
发表于 2008-2-27 22:14:05 | 显示全部楼层
我去装了试试
回复 支持 反对

使用道具 举报

发表于 2008-2-27 23:19:33 | 显示全部楼层
支持一下。谢谢分享
回复 支持 反对

使用道具 举报

发表于 2008-2-28 10:34:20 | 显示全部楼层
支持一下。比较有用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 21:49:31 | 显示全部楼层
默认使用 USE="ssl applet systray doc" emerge -av g2ipmsg 测试OK
目前以--with-ext-charcode=CP936  ==>> econf方式不知如何写
再看看文档及portage里的例子再修改一下
  1. #  --with-ext-charcode     External character code setting(CP936(Simplified
  2. #                                                  Chinese), CP932(Japanese Windows ShiftJIS))
  3. #                                                  [default=CP932]
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 22:28:14 | 显示全部楼层
<r0bertz|work> GNUdog, http://devmanual.gentoo.org/ebui ... figuring/index.html

<r0bertz|work> first define a USE flag
<r0bertz|work> add to IUSE variable
<r0bertz|work> ext-charcode
<r0bertz|work> then $(use_with ext-charcode)
说了几种查找的方式
<r0bertz|work> if use linguas_zh_CN ; then $ECONF="$ECONF --with-ext-charcode=...."
<r0bertz|work> econf $ECONF
<r0bertz|work> something like that
<r0bertz|work> first define a $ECONF
<r0bertz|work> then add extend this variable gradually
<r0bertz|work> http://devmanual.gentoo.org/func ... unctions/index.html
<r0bertz|work> 不过似乎portage tree里的管理是 app-backup/amanda/amanda-2.5.2_p1.ebuild: econf ${myconf} || die "econf failed!"
<r0bertz|work> 用$myconf变量
<r0bertz|work> 另外你可以用repoman检查一下你的ebuild
<r0bertz|work> repoman会报告一些常见问题

最新版在第一楼,每次更新都只是修改原来的code位置中内容
回复 支持 反对

使用道具 举报

发表于 2008-3-1 01:51:15 | 显示全部楼层
现在支持文件夹了么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-2 11:33:26 | 显示全部楼层
Post by jarryson;1821669
现在支持文件夹了么?


刚才测试了一下跟WIN互传文件夹里面还有内容,从WIN传过来的中文文件名存下来后变成日文,整个目录传输没问题
递归级
回复 支持 反对

使用道具 举报

发表于 2008-3-13 23:33:30 | 显示全部楼层
我也装了。不过是自己编译安装的。
g2ipmsg很早就支持文件夹了吧。至少我用过的0.9.3版本就有了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-24 11:29:02 | 显示全部楼层
貌似还是会出现些乱码现像,也可能是我的环境个别现像的问题吧,偶用了 打开 cp936的功能
有哪位兄弟有最终解决方案的请指点
偶再继续修改这个ebuild
回复 支持 反对

使用道具 举报

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

本版积分规则

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