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