从 openrc 到 systemd

将 gnome 升级到了 3.14

rca posted @ 2014年10月13日 09:43 in Gentoo || FreeBSD with tags gentoo gnome , 3622 阅读

主要是想体验一下传说中的可用的 wayland + gnome。

GENTOO Portage 中目前还没提供 gnome 3.14 ebuild。找了一下,thankjura fork 的半官方 gnome overlay 提供了 gnome 3.14 的大部分 ebuild,得到它们:

$ git clone https://github.com/thankjura/gentoo-gnome.git

然后修改一下 /etc/make.conf,增加以下的类似内容:

PORTDIR_OVERLAY="/home/xxxx/portage/gentoo-gnome $PORTDIR_OVERLAY"

如果想体验 wayland 后端的 gnome 3.14,建议在 /etc/make.conf 文件中开启全局的 wayland 旗标。

再在个人的 USE 定制文件中增加:

media-libs/cogl gles2 kms
media-libs/mesa gles2
x11-libs/libxcb xkb

注意,thankjura 提供的 cogl ebuild 中是没有 kms 旗标的,但是再编译 mutter 时,mutter 依赖 clutter 的 kms 方面的函数,而 clutter 的 kms 函数只是对 cogl 的 kms 函数的封装,所以必须在 cogl 这个源头就得支持 kms。之所以会出现这个问题,可能是 mutter 包目前未提供可以关掉 kms 的功能。我没搞清楚为啥非要 kms……总之,我们要修改 thankjura 提供的 cogl ebuild,否则 mutter 编译不过去。下面给出我修改的部分:

IUSE="examples gles2 gstreamer +introspection +opengl +pango test wayland kms"

src_configure() {
    # TODO: think about kms-egl, quartz, sdl, wayland
    # Prefer gl over gles2 if both are selected
    # Profiling needs uprof, which is not available in portage yet, bug #484750
    # FIXME: Doesn't provide prebuilt docs, but they can neither be rebuilt, bug #483332
    gnome2_src_configure \
            --disable-examples-install \
            --disable-maintainer-flags \
            --enable-cairo             \
            --enable-deprecated        \
            --enable-gdk-pixbuf        \
            --enable-glib              \
            $(use_enable opengl glx)   \
            $(use_enable opengl gl)    \
            $(use_enable gles2)        \
            $(use_enable gles2 cogl-gles2) \
            $(use_enable gles2 xlib-egl-platform) \
            $(usex gles2 --with-default-driver=$(usex opengl gl gles2)) \
            $(use_enable gstreamer cogl-gst)    \
            $(use_enable introspection) \
            $(use_enable pango cogl-pango) \
            $(use_enable test unit-tests) \
            $(use_enable kms kms_egl_platform) \
            $(use_enable wayland wayland-egl-platform) \
            $(use_enable wayland wayland-egl-server) \
            --disable-profile
#               $(use_enable profile)
}

除了 cogl 需要改,clutter 也需要改。mutter 需要 clutter 支持 evdev input 什么的……这意味着需要安装一个 libinput 的包,但是 thankjura 没有提供 libinput 的 ebuild,可以在自己的 overlay/dev-libs 分类中增加目录 libinput,然后在该目录内增加 libinput-0.6.ebuild,内容为:

# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
DESCRIPTION="Library to handle input devices in Wayland"
HOMEPAGE="http://www.freedesktop.org/wiki/Software/libinput/"
SRC_URI="http://www.freedesktop.org/software/${PN}/${P}.tar.xz"
LICENSE=""
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND="
dev-libs/libevdev"
RDEPEND="${DEPEND}"

再修改一下 thankjura 的 clutter ebuild,我修改的部分:

IUSE="debug doc gtk +introspection +egl test wayland +evdev" # evdev tslib
src_configure() {
# XXX: Conformance test suite (and clutter itself) does not work under Xvfb
# (GLX error blabla)
# XXX: Profiling, coverage disabled for now
# XXX: What about cex100/egl/osx/wayland/win32 backends?
# XXX: evdev/tslib input seem to be experimental?
gnome2_src_configure \
    --enable-xinput \
    --enable-x11-backend=yes \
    --disable-profile \
    --disable-maintainer-flags \
    --disable-gcov \
    --disable-cex100-backend \
    --disable-quartz-backend \
    --disable-win32-backend \
    --disable-tslib-input \
    $(use_enable evdev evdev-input) \
    $(usex debug --enable-debug=yes --enable-debug=minimum) \
    $(use_enable doc docs) \
    $(use_enable gtk gdk-backend) \
    $(use_enable introspection) \
    $(use_enable test gdk-pixbuf) \
    $(use_enable egl egl-backend) \
    $(use_enable wayland wayland-backend) \
    $(use_enable wayland wayland-compositor)
}

现在差不多可以省级系统了……不过,如果要体验 wayland,而你的显卡是 Nvidia,要记得把驱动换成 nouveau。貌似现在运行在 wayland 上面的 gnome 只是能看,不怎么好用。我用的 fcitx 版本还不支持 wayland,所以没法输入中文;其次就是鼠标对桌面的操控有些障碍,指针有时会乱跳,鼠标中键没法滚动屏幕……所以,我围观了一下传说中的 wayland,很快的又切换回了 X11。

 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter