LinuxSir.cn,穿越时空的Linuxsir!

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

aliedit-1.0.3.20.ebuild 大家帮忙测试下

[复制链接]
发表于 2010-12-23 22:23:18 | 显示全部楼层 |阅读模式
  1. # Copyright 1999-2008 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3. # $Header: $
  4. EAPI=2
  5. inherit nsplugins
  6. DESCRIPTION="Alipay Secure Edit Component"
  7. SRC_URI="https://download.alipay.com/alipaysc/linux/${PN}/${PV}/${PN}.tar.gz"
  8. HOMEPAGE="http://www.alipay.com/"
  9. IUSE=""
  10. SLOT="0"
  11. KEYWORDS="~amd64 ~x86"
  12. LICENSE="Alipay"
  13. RESTRICT="strip mirror"
  14. RDEPEND="media-libs/libpng
  15.         x11-libs/gtk+:2"
  16. src_compile() {
  17.         ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' ./aliedit.sh`
  18.         tail -n+$ARCHIVE aliedit.sh | tar xzvm -C ./
  19. }
  20. src_install() {
  21.         pushd "${S}"
  22.         exeinto /opt/netscape/plugins
  23.         if use amd64; then
  24.                 addwrite "/usr/lib"
  25.                 ln -sf /usr/lib/libpng.so /usr/lib/libpng12.so.0
  26.                 doexe lib/libaliedit64.so
  27.                 inst_plugin /opt/netscape/plugins/libaliedit64.so
  28.         else
  29.                 doexe lib/libaliedit32.so
  30.                 inst_plugin /opt/netscape/plugins/libaliedit32.so
  31.         fi
  32.         popd
  33. }
  34. pkg_postinst() {
  35.         echo
  36.         elog "It comes from http://blog.alipay.com/2192.html"
  37.         echo
  38. }
  39. pkg_prerm() {
  40.         # clean up temp files
  41.         if use amd64; then
  42.         [[ -h "${ROOT}/usr/lib/libpng12.so.0" ]] && rm -rf "${ROOT}/usr/lib/libpng12.so.0"
  43.         fi
  44. }
复制代码
https://github.com/Havanna/overl ... dit-1.0.3.20.ebuild
 楼主| 发表于 2010-12-24 00:52:14 | 显示全部楼层
搞定
        addwrite "/usr/lib"
        if use amd64; then
                ln -sf /usr/lib/libpng.so /usr/lib/libpng12.so.0
        fi

新问题,卸载时的外部软链接
pkg_postrm() {
    [[ -d "${ROOT}/usr/lib/libpng12.so.0" ]] && rm -rf "${ROOT}/usr/lib/libpng12.so.0"
}
这个为啥不起作用?
回复 支持 反对

使用道具 举报

发表于 2010-12-24 09:03:19 | 显示全部楼层
Post by Havanna;2123928
搞定
        addwrite "/usr/lib"
        if use amd64; then
                ln -sf /usr/lib/libpng.so /usr/lib/libpng12.so.0
        fi

新问题,卸载时的外部软链接
pkg_postrm() {
    [[ -d "${ROOT}/usr/lib/libpng12.so.0" ]] && rm -rf "${ROOT}/usr/lib/libpng12.so.0"
}
这个为啥不起作用?


-d 是判断文件夹存在已否的吧? 判断软连接用-h /-L ?
man test一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-24 09:42:11 | 显示全部楼层
汗,这个....
直接从Development Guide上复制过来...都没怎么仔细看

已经完成了
回复 支持 反对

使用道具 举报

发表于 2010-12-24 15:27:40 | 显示全部楼层
为啥不直接用media-libs/libpng:1.2?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-24 16:26:41 | 显示全部楼层
Post by qiaomuf;2123972
为啥不直接用media-libs/libpng:1.2?


这样子?偶有洁癖呐

  1. EAPI=2
  2. inherit nsplugins

  3. DESCRIPTION="Alipay Secure Edit Component"
  4. SRC_URI="https://download.alipay.com/alipaysc/linux/${PN}/${PV}/${PN}.tar.gz"
  5. HOMEPAGE="http://www.alipay.com/"
  6. IUSE=""
  7. SLOT="0"

  8. KEYWORDS="~amd64 ~x86"
  9. LICENSE="Alipay"
  10. RESTRICT="strip mirror"

  11. RDEPEND="amd64? ( media-libs/libpng:1.2 )
  12.         x11-libs/gtk+:2"

  13. src_compile() {
  14.         ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' ./aliedit.sh`
  15.         tail -n+$ARCHIVE aliedit.sh | tar xzvm -C ./
  16. }

  17. src_install() {
  18.         pushd "${WORKDIR}"
  19.         exeinto /opt/netscape/plugins
  20.         if use amd64; then
  21.                 doexe "${WORKDIR}"/lib/libaliedit64.so
  22.                 inst_plugin /opt/netscape/plugins/libaliedit64.so
  23.         else
  24.                 doexe "${WORKDIR}"/lib/libaliedit32.so
  25.                 inst_plugin /opt/netscape/plugins/libaliedit32.so
  26.         fi
  27.         popd
  28. }

  29. pkg_postinst() {
  30.         echo
  31.         elog "It comes from http://blog.alipay.com/2192.html"
  32.         echo
  33. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2010-12-24 18:11:49 | 显示全部楼层
Post by Havanna;2123977
这样子?偶有洁癖呐
  1. EAPI=2
  2. inherit nsplugins
  3. DESCRIPTION="Alipay Secure Edit Component"
  4. SRC_URI="https://download.alipay.com/alipaysc/linux/${PN}/${PV}/${PN}.tar.gz"
  5. HOMEPAGE="http://www.alipay.com/"
  6. IUSE=""
  7. SLOT="0"
  8. KEYWORDS="~amd64 ~x86"
  9. LICENSE="Alipay"
  10. RESTRICT="strip mirror"
  11. RDEPEND="amd64? ( media-libs/libpng:1.2 )
  12.         x11-libs/gtk+:2"
  13. src_compile() {
  14.         ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' ./aliedit.sh`
  15.         tail -n+$ARCHIVE aliedit.sh | tar xzvm -C ./
  16. }
  17. src_install() {
  18.         pushd "${WORKDIR}"
  19.         exeinto /opt/netscape/plugins
  20.         if use amd64; then
  21.                 doexe "${WORKDIR}"/lib/libaliedit64.so
  22.                 inst_plugin /opt/netscape/plugins/libaliedit64.so
  23.         else
  24.                 doexe "${WORKDIR}"/lib/libaliedit32.so
  25.                 inst_plugin /opt/netscape/plugins/libaliedit32.so
  26.         fi
  27.         popd
  28. }
  29. pkg_postinst() {
  30.         echo
  31.         elog "It comes from http://blog.alipay.com/2192.html"
  32.         echo
  33. }
复制代码
就这个ebuild,给楼主一点小小的建议,有些虽然感觉不太重要,但是Gentoo通常要求比较严格。相信楼主会越写越好:)
1 RDEPEND是否没有考虑x86(估计是我上一个回复影响的)
2 像awk这样的外部命令,如果失败的话需要调用die
3 tail...|tar... 这样的管道操作,也需要检查状态,调用portage的assert就可以了(http://devmanual.gentoo.org/ebui ... ng/index.html)。
4 不太明白这里的pushd和popd有什么作用,如果我错了请指出
5 我觉得这里用insinto和doins会更好一些(http://devmanual.gentoo.org/function-reference/install-functions/index.html),当然还要用||die 检查状态
6 最后的postinst建议去掉,这里应该打印出对用户较为重要的信息
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-24 18:28:28 | 显示全部楼层
没招到Alipay的license
我是拿原来坛子上的一个旧版的aliedit改的...囧
我这里没有x86的系统,没法测试,不过网上看了一遍,似乎64位系统才要求libpng:1.2 ?
thanks,提供的几个页面,我都是临时想写ebuild的时候才翻阅http://devmanual.gentoo.org的.. ... 最好用die,嗯
放这里也主要就是想大家一起完善..
回复 支持 反对

使用道具 举报

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

本版积分规则

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