日記ブログ、または雑多なメモ
2011年4月18日

GNOME3 ビルド再掲





../../diary/pic/pic11041401.jpg
GNOME3子ちゃん

 ステータスエリアになぜかBluetoothアイコンが出てこないので、もう一回クリーンインストールしてみよう、ということで全パッケージを一旦除、再ビルドさせてみたらぼちぼちとdependencyに問題があったので修正して再掲。
(再度修正4/20・再々修正4/21・リスト再再再修正4/21・リスト再々再修正4/22ほぼ完成か・4/23リスト追記)


 Bluetoothアイコンがステータスエリアに出ない原因、全然関係ないところで判明。 /dev/rfkillのパーミッションによるものだった。 slackwareではudevにおいてnetdevグループにアクセス権を持たせる設定にしてあるところ、うちの環境ではnetdev グループを作っていなかったので弾かれたようである。 よってnetdevを作ってユーザを参加させて解消。

 もうひとつ、NetworkManagerのアイコンも出ないのだがこれはどうも色々とややこしそうである。 要調査。 wicdがあるので要らないっちゃ要らないけど。


 まず下準備。
・基本的にdepsリストに乗っている同名パッケージ/下位バージョンパッケージは事前に削除
・gnome、bonobo、metacityの名が付くパッケージ(gnome2環境系)を全削除
・js-1.xがインストールされている場合は削除
・girの名が付くintrospection関係のパッケージをインストールしている場合は削除
・念のためにgiib2を削除しておいてからgettextをSlackwareのソースパッケージからリビルド
・動画環境のためにffmpeg、faac(faadはたぶんいらない)、x264等を最新にしておく
・slackwareではintrospectionがdisableにされてるので、gtk+-2関連とgtk+-3関連においてintrospectionをenableにしてリビルド。
・gtk+-3.1はバグ持ちみたいなのでgtk+-3.0を入れること

 以下、dependencyリスト。
前半GConf-2辺りまでは上記↑の手動インストールなどが絡むので若干適当。
libxml2-2
libxslt
libffi
glib2-2
gobject-introspection
atk-2
dbus-glib
ORBit
gtk+-3
GConf-2
libnotify
libunique-3
gucharmap
icon-naming-utils
gnome-icon-theme-3
gnome-icon-theme-extras-3
glib-networking
libgnome-keyring-3
polkit-0
NetworkManager-0
NetworkManager-openvpn
NetworkManager-pptp
NetworkManager-vpnc
libsoup
gjs
json-glib
libcroco
librsvg
libwnck-3
gstreamer
libgee
telepathy-glib
telepathy-logger
folks
libnice
gst-plugins-base
libglade-2
pycairo
pygobject
pygtk
gst-python
farsight2
gst-plugins-good
gst-plugins-ugly
gst-ffmpeg
clutter-1
clutter-gtk
clutter-gst
gnome-doc-utils
mutter
libchamplain
lcms-1
gsettings-desktop-schemas
system-tools-backends-2
gnome-desktop-3
shared-mime-info
dbus-python
avahi
gmime
nautilus-3
gnome-menus-3
gtksourceview-3
exempi
libgnome-media-profiles
gvfs
libcanberra
metacity
accountsservice
telepathy-farsight
telepathy-mission-control
telepathy-butterfly
telepathy-salut
telepathy-python
papyon
polkit-gnome
liboobs-3
upower
gnome-session-3
libgtop
nautilus-python-1
nautilus-actions-3
gnome-system-tools-3
libgdata
libgweather
evolution-data-server
dconf
libxklavier
libgnomekbd
gnome-settings-daemon
gnome-control-center
gtk-engines-2.2
gtk-engines-2.9
gtk-theme-engine-clearlooks
gnome-icon-theme-symbolic-3
gnome-themes-3
gnome-themes-standard
udisk
libsigc++
glibmm
atkmm
cairomm
pangomm
gtkmm-3
#libglademm-2
lcms2
gnome-color-manager-3
gnome-power-manager-3
gnome-screensaver-3
file-roller-3
gnome-system-monitor-3
gnome-nettool-3
vte
gnome-terminal
gnome-backgrounds
vala
libpeas
eog-3
gedit-3
WebKit
#epiphany-3
gconf-editor-3
libdmapsharing
gnome-disk-utility-3
gnome-utils-3
gnome-bluetooth-3
gnome-common
gnome-panel-3
gnome-shell
gdm-3
totem-pl-parser-2
totem-3
vino-3
gtk-vnc
vinagre-3
gnome-tweak-tool
libtasn1
gnome-keyring-3
empathy-3
evince
brasero-3
gcalctool



 以下、ビルド時の注意点。

・mozilla-jsがないと言われる場合はxulrunner-1.9.2を入れる。 手動で生make installするとのちのちややこしくなるので、ソースパッケージをどこからかありがたく拾ってきてパッケージ化する。 ヘッダとライブラリの場所は以下になるはず。
/usr/lib64/xulrunner-devel/include
/usr/lib64/xulrunner-devel/lib


・以下のパッケージは現状パラレルビルドすると失敗するのでシングルビルドで。
GConf
NetworkManager
gjs
libcanberra
gtk-vnc
telepathy-python
shared-mime-info


・以下はのパッケージは要パッチ
telepathy-butterfly -> telepathy-butterfly-bad-import.patch
telepathy-python -> telepathy-python-0.15.19-install-twice.patch


・NetworkManagerのビルド前に-Werrorを排除しておく。
# sed -i -e 's,-Werror,,' configure

・totemのconfigureがどうしても通らないときは
# su - root
でrootになれば通るかもしれない。


 ビルド時は念の為、xulrunner(mozilla-js、nspr4、nss)関係の環境変数を設定しておき、
export PATH=$PATH:/usr/lib64/xulrunner-devel/bin
export NSS_CFLAGS="-I/usr/lib64/xulrunner-devel/include"
export NSS_LIBS="-L/usr/lib64/xulrunner-devel/lib"

--with-gtk=3.0 --enable-introspection
 のconfigureオプションを全パッケージに問答無用で追加。 ただしmetacityのみgtk+-2.0にする。

 nspr4、nss関係の要求があるパッケージでは、
   --with-nspr-prefix=/usr/lib64/xulrunner
   --with-nspr-libs=/usr/lib64/xulrunner-devel/lib
   --with-nspr-cflags=/usr/lib64/xulrunner-devel/include


 な感じでヘッダとライブラリの場所を指定。




 ひと通りインストールが済んだら、

$ sudo chmod 755 /etc/gconf/gconf.xml.* #反則?
$ f=`ls /etc/gconf/schemas`;for i in $f; do gconftool-2 --install-schema-file /etc/gconf/schemas/$i;done #ユーザの設定スキーマ更新
$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ #おまじない
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc
$ gconftool-2 -t string --set /system/gstreamer/0.10/default/musicaudiosink pulsesink

 などとしておく。 しておかないとまともに起動しない。 (かもしれない)


 最終的にGNOME3の起動は.xinitrcの最後で、
- exec startkde
+ exec gnome-session

 に変えるだけ。 だが、XDG_DATA_DIRS、XDG_CONFIG_DIRSの内容も気をつけた方がよし。


 最後に、gtk+-3で日本語入力できるようにuimをリビルドする。 gtk+-3に対応しているのはtrunkかららしいので、中の人に感謝しつつ svnから拾ってくる。 sigschemeの最新版は現在ビルドできないっぽいので0.8.5を持ってきた。
# svn co http://uim.googlecode.com/svn/trunk uim-trunk
# cd uim-trunk
# ./autogen.sh
# wget http://sigscheme.googlecode.com/files/sigscheme-0.8.5.tar.bz2
# tar xjf sigscheme-0.8.5.tar.bz2
# mv sigscheme-0.8.5 sigscheme
# ./configure 好きなオプション
# make ; make install
# /usr/bin/gtk-query-immodules-3.0 > /usr/lib64/gtk-3.0/3.0.0/immodules.cache

 続いてuim-mozcもリビルドして、
$ sudo /usr/bin/uim-module-manager --register mozc
 mozcをuimに登録しなおして終わり。




 インストール後の注意点。
・アイコンがまともに表示されなかったりmimeがおかしくなってるときは、shared-mime-infoを再インストールすると治る。 ハズ。
・gdmのユーザーリストはUIDが1000以下のユーザーを表示しないようになってるので注意。 「他のユーザー」からログインはできる。
・/etc/pam.d/gdmの中の「nopasswdlogin」の部分をパスワード無しログインさせたいユーザのグループ名に変えておく。
auth       sufficient  pam_succeed_if.so user ingroup nopasswdlogin
・.xsession-errorsにgdmがuserのhistoryがどうのこうのでエラーを吐いている場合は、
# echo "" >  /var/log/ConsoleKit/history
 で直るはず。 ついでにパーミッションは644にしておくと無難かもしれない。
・マウスカーソルがXのしょぼいカーソルになってしまう場合。 ベタに/usr/share/icons/defaultをAdwaita のリンクにする。
# cd /usr/share/icons
# ln -s Adwaita default




 だいたい以上な感じで。



コメント欄
(投稿なし)

コメントなどありましたらこちらからどうぞ
名前
内容
 ※名前、内容ともに入力必須です
- C'sGallery Blogっぽく見えるシステム3.2 -
小武 (管理人) eta2@tim.hi-ho.ne.jp