LinuxSir.cn,穿越时空的Linuxsir!

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

gentoo怎样处理非最新版本软件包里的bug?

[复制链接]
发表于 2010-4-7 09:54:20 | 显示全部楼层 |阅读模式
gentoo的portage系统里同一个软件包有好几个版本的ebuild
emerge --sync后,在不更改USE的情况下,emerge -avuDN world只在出现了新版本ebuild时才会升级
所以,我有个困惑,如果某个软件包的非最新版本有bug,这个bug只有在更新版本里的ebuild里才会得到修正吗?

比如我现在ACCEPT_KEYWORDS=x86,发现了好几个bug,其中之一如下:
  1. miqiur@miahiu ~/tmp $ eix '^gnome-vfs$'
  2. [i] gnome-base/gnome-vfs
  3.      Available versions:  (2) 2.24.1 2.24.2 ~2.24.2-r1 ~2.24.3
  4.         {acl avahi debug doc fam gnutls hal ipv6 kerberos samba ssl}
  5.      Installed versions:  2.24.2(2)(01时54分37秒 2010年04月06日)(acl gnutls hal ipv6 kerberos ssl -avahi -debug -doc -fam -samba)
  6.      Homepage:            http://www.gnome.org/
  7.      Description:         Gnome Virtual Filesystem
复制代码
我安装的是gnome-base/gnome-vfs-2.24.2,就我所知(自己发现的),这个版本的gnome-vfs有bug,在使用gnutls的USE时,无法开启ssl支持。
  1. miqiur@miahiu ~/tmp $ emerge -pv gnome-vfs
  2. These are the packages that would be merged, in order:
  3. Calculating dependencies... done!
  4. [ebuild   R   ] gnome-base/gnome-vfs-2.24.2  USE="acl gnutls hal ipv6 kerberos ssl -avahi -debug -doc -fam -samba" 0 kB
  5. Total: 1 package (1 reinstall), Size of downloads: 0 kB
复制代码
摘录我emerge时的部分输出
  1. gnome-vfs ./configure: line 26941: have_ssl: command not found
复制代码
  1. Gnome VFS configuration summary:
  2.         IPv6 support:                yes
  3.         SSL support:                 no
  4.         Avahi support:               no
  5.         Howl support:                no
  6.         HAL  support:                yes
  7.         Enable gnome-vfs-daemon:     yes
  8.         SELinux  support:            no
  9.         File ACL backends:           posix
  10.         Gtk Doc:                     no
  11.         FS monitor backends:         inotify
  12.         Samba method:                no
  13.         CDDA method:                 no
  14.         Enable profiler:             no
复制代码
那么,如果我不升级到现在处于~x86状态的2.25.2-r1版本,是不是即使等到地球毁灭gentoo官方也不会修正这个版本的bug?
事实上,我已经找到了这个bug的根源,是一个patch带来的shell语法错误:
  1. miqiur@miahiu /usr/portage/gnome-base/gnome-vfs/files $ cat gnome-vfs-2.24.0-gnutls27.patch
  2. # Allow gnome-vfs-2.24 to build with gnutls >= 2.7.0
  3. # Use pkg-config in place of gnutls own macro since it's not present anymore.
  4. --- a/configure.in        2009-03-07 19:59:53.805507753 +0100
  5. +++ b/configure.in        2009-03-07 18:34:36.928169018 +0100
  6. @@ -686,14 +686,14 @@
  7.      AC_MSG_ERROR([*** Can't use both openssl and gnutls at the same time. Please pick one only. ***])
  8.    else
  9.      AC_CHECK_HEADER(gcrypt.h,, AC_MSG_ERROR([*** Need gcrypt.h to compile with GnuTLS support ***]))
  10. -    AM_PATH_LIBGNUTLS(1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
  11. -                              have_ssl=true])
  12. +    PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
  13. +                                                          have_ssl = true])
  14.      if test "x${LIBGNUTLS_LIBS}" = "x"; then
  15. -      AM_PATH_LIBGNUTLS(0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
  16. -                                 AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME])
  17. -                                 have_ssl=true],
  18. -                                 AC_MSG_ERROR([Unable to find GNUTLS]))
  19. +      PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
  20. +                                                                  AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME])
  21. +                                                    have_ssl=true],
  22. +                                                    AC_MSG_ERROR([Unable to find GNUTLS]))
  23.      fi
  24.    fi
  25. fi
复制代码
错误在这一行
  1. +                                                          have_ssl = true])
复制代码
等于号两边不能有空格。

这么容易就能发现的错误,非要我自己修正吗?如果我提交bug report到gentoo官方,新的patch会进入这个版本吗?还是gentoo把对这类bug的修正放在某个overlay里了?
 楼主| 发表于 2010-4-7 10:35:19 | 显示全部楼层
刚发完贴搜索到bug report,4月3号报告的bug

http://bugs.gentoo.org/show_bug.cgi?id=312909

这个bug在目前的portage里每个版本的gnome-vfs都有
我想知道的是针对这个bug的patch,gentoo会怎么处理?
能对每个版本都提供patch而不需要我升级到新的版本吗?
回复 支持 反对

使用道具 举报

发表于 2010-4-7 10:42:17 | 显示全部楼层
Post by zeyata;2081212
刚发完贴搜索到bug report,4月3号报告的bug

http://bugs.gentoo.org/show_bug.cgi?id=312909

这个bug在目前的portage里每个版本的gnome-vfs都有
我想知道的是针对这个bug的patch,gentoo会怎么处理?
能对每个版本都提供patch而不需要我升级到新的版本吗?


据我所知,一般都是-r1、-r2这样提供的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-7 10:44:54 | 显示全部楼层
-r1的ebuild已经有了,但也有这个bug,而且还是~x86的,如果出-r2,那得什么时候才能进x86?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-7 10:54:06 | 显示全部楼层
再说了,每个版本都有这个bug,难道针对每个版本都提供一个相应的修正后版本?
现在是2.24.1 2.24.2 ~2.24.2-r1 ~2.24.3
修正后变为2.24.1 2.24.1-r1 2.24.2 ~2.24.2-r1 2.24.2-r2 ~2.24.2-r3 ~2.24.3 ~2.24.3-r1
回复 支持 反对

使用道具 举报

发表于 2010-4-7 10:56:20 | 显示全部楼层
开发人员认为稳定的时候,呵呵。如果被patch的文件片段在两个版本中没有变化(也就是说假如~x86的patch可以patch到x86版本上),你也可以拿当前x86的ebuild改一个出来扔自己建立的local overlay里。
-------------------------------------------------------------------------
是每个版本都-rx,还是只针对最高版本-rx,要看开发人员喜欢了,恐怕出了r2就会把r1删掉,或者会清理掉一些旧版本,都不一定。反正portage tree里的决定权在那个项目的开发人员手上,你可以在你自己的overlay里操作。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-7 11:04:57 | 显示全部楼层
Post by leisudong;2081226
开发人员认为稳定的时候,呵呵。如果被patch的文件片段在两个版本中没有变化(也就是说假如~x86的patch可以patch到x86版本上),你也可以拿当前x86的ebuild改一个出来扔自己建立的local overlay里。

自己搞个overlay很简单,我现在就能把这个bug修正了
但如果gentoo这样处理的话,我每次emerge的时候都得仔细看一大堆输出,看有没有bug。

如果gentoo真这样处理bug的话,gentoo的可靠性实在不咋的。
回复 支持 反对

使用道具 举报

发表于 2010-4-7 11:09:53 | 显示全部楼层
这个包很基础啊,怎么你那里会出错呢?我这里很正常。

如果我是开发人员,我不会偷偷把错误改掉后不更新版本号。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-7 11:10:52 | 显示全部楼层
你可能没有用USE=gnutls
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-7 11:30:16 | 显示全部楼层
Post by jsun;2081235
这个包很基础啊,怎么你那里会出错呢?我这里很正常。

如果我是开发人员,我不会偷偷把错误改掉后不更新版本号。


其实,还有一个更基础的包的configure文件有问题,参见http://www.linuxsir.cn/bbs/thread365847.html

我发完那个贴后研究了半小时,发现写这个configure脚本的人虽然shell语法不规范导致执行./configure脚本时报错,但是,实际效果却和预期一样,也就是说,没影响。

但是......
sudo源码包的configure脚本里大量存在着类似语法不规范的地方,很可能在其它地方同样存在隐蔽的臭虫
提醒你们在emerge sudo的时候仔细看看configure的输出。
回复 支持 反对

使用道具 举报

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

本版积分规则

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