X11 Mouse Cursor plug-in for GIMP 2.0.6 をリリース

X11 Mouse Cursor plug-in for GIMP 2.0.6GIMP 2.4 用のX11 Mouse Cursor plug-in for GIMP 1.1.6をリリースした。
今回の変更点は

  • 1桁より多い枚数のフレームを含むカーソルを開いたとき、対応するフレーム名の数字部分に0をインデントするようにした。(「(32px)_2 (20ms) (replace)」を「(32px)_002 (20ms) (replace)」にするなど。)
  • メッセージの修正など色々。
  • 同封のdebianディレクトリをUbuntu向けからDebian向けに変更。ついでに${shlibs:Depends}が必要なバージョンを求めなかったり逆に不必要に高いバージョンを求めたりするので複数のディストリで使いまわすdebパッケージを作るため直接表記に変更。

debパッケージ構築環境pbuilderの完成

その他一般権限で行う諸設定

以下のようなシェルスクリプトvbox3.shをつくり実行する。

# xdg-usr-dirsの設定
cat > ~/.config/user-dirs.conf << EOF
enabled=False
EOF
cat > ~/.config/user-dirs.dirs << EOF
XDG_DESKTOP_DIR="\$HOME/Desktop"
XDG_DOWNLOAD_DIR="\$HOME"
XDG_TEMPLATES_DIR="\$HOME"
XDG_PUBLICSHARE_DIR="\$HOME"
XDG_DOCUMENTS_DIR="\$HOME"
XDG_MUSIC_DIR="\$HOME"
XDG_PICTURES_DIR="\$HOME"
XDG_VIDEOS_DIR="\$HOME"
EOF
cat > ~/.config/user-dirs.locale << EOF
C
EOF

# ホームに作られた日本語のディレクトリを削除
find . -maxdepth 1 -type d |perl -ne 'print if /[^[:ascii:]]/' |xargs rm -r

# ~/bin作成
mkdir ~/bin
source ~/.profile # ~/bin をPATHに追加

# pbuilder環境作成
mkdir ~/debian
mkdir -p pbuilder/result
# ここではDebian lenny と sid のパッケージ構築環境を用意する。
ln -s /usr/share/doc/pbuilder/examples/pbuilder-distribution.sh ~/bin/pbuilder-lenny
ln -s /usr/share/doc/pbuilder/examples/pbuilder-distribution.sh ~/bin/pbuilder-sid

リンクした「pbuilder-lenny」などのスクリプトを使う方法はpbuilderを使ってHardy用のdebパッケージをIntrepidで作るを参照すること。

補足事項

ひらがなの「む」、「ろ」、「\」キーが反応しないため、\(バックスラッシュ)や|(バー)、_(アンダースコア)が入力できない。xevにすら反応しないため解決不能


関連記事:
VirtualBoxにUbuntu Jauntyをインストール(その1)
VirtualBoxにUbuntuのdebパッケージ作成環境を作るbashスクリプト

sudoの設定からGuest Additionalのインストールまで

Ubuntu Jaunty Jackalope のRC版が公開されたのでVirtaulBox 2.2.0にインストールし、Ubuntu/Debian向けdebパッケージ構築環境を作った。その際の手順をまとめておく。

GUIを用いたVirtualBoxへのインストール

riken.jpから落としたubuntu-9.04-rc-desktop-i386.isoからインストールした。デフォルトからの変更点は、

  • メモリ256MB
  • ビデオメモリ16MB
  • ユーザー名「tks」
  • 共有フォルダは/home/publicを共有名「pub」で設定

パスワード無しでsudo出来るようにする。

sudo時に一々パスワードを入力するのは面倒なので、ユーザーtksをsudoグループに追加し、sudoグループのメンバーはパスワード無しでsudo出来るようにする。


$ []sudo usermod -g users -a -G sudo tks[]
[]tksをsudoグループに追加、ついでにプライマリグループをusersに変更[]
$ []sudo groupdel tks[] []いらなくなったtksグループを削除[]
$ []sudo visudo[] []「/etc/sudoers」を編集[]
[][sudo] password for tks: []

# ここまで省略

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=NOPASSWD: ALL

パッケージのアップグレードとインストール

以下のようなスクリプト「vbox1.sh」を用意し、root権限で実行する。

#!/bin/bash
if ! [ -w / ] ; then
  echo "You need root privilege."
  exit 1
fi
# パッケージのインデックスを最新に
apt-get update
# 使わないソフトウェアを削除
apt-get purge brasero ekiga evolution-common evolution-webcal gnome-games \
pidgin totem xsane f-spot tracker tomboy transmission-common tsclient vinagre \
gstreamer0.10-plugins-base openoffice.org-common totem* compiz* nvidia* \
language-support-input-ja language-support-fonts-ja #gimp
# パッケージのアップグレード
apt-get dist-upgrade
# 必要なパッケージをインストール
apt-get install build-essential devscripts ubuntu-dev-tools debhelper dh-make \
diff patch quilt fakeroot lintian pbuilder autotools-dev vim autofs \
scim-anthy ttf-vlgothic # autoremoveされないように

# 依存関係で入ったパッケージを削除
apt-get --purge autoremove

echo "Please reboot with new kernel."

終了したら新たにインストールされたカーネルで再起動する。

Guest Additionalのインストールとマウス統合、共有フォルダの設定

VBoxGuestAdditions.isoをあらかじめマウントしておき、以下のようなシェルスクリプトvbox2.shをルート権限で実行する。

#!/bin/bash
if ! [ -w / ] ; then
  echo "You need root privilege."
  exit 1
fi
# Guest Additional のインストール
if ! [ -x /media/cdrom/VBoxLinuxAdditions-x86.run ] ; then
  echo "Please mount VBoxGuestAdditions."
  exit 1
fi
/media/cdrom/VBoxLinuxAdditions-x86.run

# マウス統合を有功にするための追加設定を/etc/X11/xorg.confへ
cat >> /etc/X11/xorg.conf << EOF

Section "InputDevice"
        Identifier "Configured Mouse"
        Driver "vboxmouse"
        Option "CorePointer"
EndSection
EOF

# autofsを設定してホストの共有フォルダpubに/misc/vboxからアクセスできるようにする。
sed -i '/timeout/s/^#//' /etc/auto.master
sed -i '/^cd/avbox\t\t-fstype=vboxsf,uid=1000,gid=100\t:pub' /etc/auto.misc

再起動するとGuest Additionalが有効になる。
VirtualBoxにUbuntu Jauntyをインストール(その2)


関連記事:
VirtualBoxの共有フォルダをautofsで使用する

ホームパーティションをExt3からExt4に移行

Fedora 11 のリリースを控えてFedora 10 でもカーネルのバージョンが2.6.27から2.6.29に上がりExt4ファイルシステムを使えるようになったので、「/home」に割り当てているパーティション(LABELは「fc_home」)をExt3からExt4に移行させることにした。

Ext4への移行方法はExt4 - Linux Kernel Newbiesに乗っている。実際にはシングルユーザーモードでホームパーティションをアンマウントし、以下の様に実行した。


# []umount LABEL=fc_home[]
# []partimage[] []PartImageでパーティションをバックアップしておく[]
# []tune2fs -O extents,uninit_bg,dir_index LABEL=fc_home[] []一瞬で終了する[]
[]tune2fs 1.41.4 (27-Jan-2009)[]

[]Please run e2fsck on the filesystem.[]

# []fsck -pDf LABEL=fc_home[]
[]fsck 1.41.4 (27-Jan-2009)[]
[]fc_home: Group descriptor 0 checksum is invalid. FIXED.[]
[]fc_home: Group descriptor 1 checksum is invalid. FIXED.[]
[]...省略...[]
# []vi /etc/fstab[] []ホームパーティションファイルシステムを「ext3」から「ext4」に書き換え[]

なお、既に存在しているファイルはExt4のエクステントを使用せず恩恵を受けられない。これを改善するには「e4defrag」ツールを使用する必要があるもののまだ開発途上であり、いずれ「e2fsprogs」に含まれるようになるということらしい。*1


参考:
ext4 へのマイグレーション

*1:試しに「yum provides '*/e4defrag'」してみたが見つからなかった。

GParted Live on USB の作成

GParted Live on USBの記述に沿ってGPartedのLiveUSBを作った。環境は、GNOME2.24 on Fedora10 である。

FAT32でフォーマットしたUSBメモリを挿したところ自動で/media/diskにマウントしたので、
リンク先からgparted-live-0.4.3-2.zipをダウンロードし、USBメモリに展開した。


$ []rm -rf /media/disk/*[] []USBメモリの中身を掃除[]
$ []unzip gparted-live-0.4.3-2.zip -d /media/disk/[]
[]Archive: gparted-live-0.4.3-2.zip[]
[] extracting: /media/disk/COPYING[]
[]...省略...[]
[] extracting: /media/disk/utils/README.txt[]
$ []rpm -qf /usr/bin/syslinux[]
[]syslinux-3.61-3.fc10.i386[] []バージョンが3.71より古い。[]
$ []wget 'http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.75.tar.bz2'[]
[] 最新版のsyslinuxをダウンロード[]
[]...省略...[]
$ []wget 'http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.75.tar.bz2.sign'[]
[] せっかくなので署名も検証してみる。詳しくは[]http://www.kernel.org/signature.html[]を参照[]
[]...省略...[]
$ []gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E[]
[]gpg: 鍵517D0F0Eをhkpからサーバーwwwkeys.pgp.netに要求[]
[]gpg: 鍵517D0F0E: 公開鍵“Linux Kernel Archives Verification Key <ftpadmin@kernel.org>”を読み込みました[]
[]gpg: 絶対的に信用する鍵が見つかりません[]
[]gpg: 処理数の合計: 1[]
[]gpg: 読込み: 1[]
$ []gpg2 --verify syslinux-3.75.tar.bz2.sign[]
[]gpg: 2009年04月17日 02時30分10秒 JSTにDSA鍵ID 517D0F0Eで施された署名[]
[]gpg: “Linux Kernel Archives Verification Key <ftpadmin@kernel.org>”からの正しい署名[]
[]gpg: 警告: この鍵は信用できる署名で証明されていません![]
[]gpg: この署名が所有者のものかどうかの検証手段がありません。[]
[]主鍵の指紋: C75D C40A 11D7 AF88 9981 ED5B C86B A06A 517D 0F0E[]
$ []tar jxf syslinux-3.75.tar.bz2[]
$ []sudo syslinux-3.75/linux/syslinux -s /dev/sdb1[]
$ []sudo cat syslinux-3.75/mbr/mbr.bin > /dev/sdb[]
以上で起動可能なGParted LiveのUSBメモリを作ることが出来た。

完成したLive USBでパーテションを操作後再起動すると、swap領域のUUIDが変化したため起動時に以下のメッセージが表示され、ハイバネーションから復帰できなくなったので「/etc/fstab」を修正後「mkinitrd」コマンドで初期RAMディスクイメージを再作成し直した。

Unable to access resume device (UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

またswapが無効になったため「swapon」コマンドで有効にしておいた。


$ []blkid[] []swap領域のUUIDを確認[]
[]...省略...[]
[]/dev/sda8: TYPE="swap" LABEL="SWAP" UUID="yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"[]
$ []sudo vim /etc/fstab[] []swap領域のUUIDを書き直す[]
$ []cd /boot[]
$ []ls[]
[]...省略...[]
[]initrd-2.6.29.1-30.fc10.i686.img[]
$ []uname -r[]
[]2.6.29.1-30.fc10.i686[]
$ []sudo cp -a initrd-2.6.29.1-30.fc10.i686.img{,_}[] []initrdのバックアップを作成[]
$ []sudo mkinitrd -f -v initrd-2.6.29.1-30.fc10.i686.img 2.6.29.1-30.fc10.i686[]
[]Creating initramfs[]
[]...省略...[]
$ []swapon -a[] []swapを有効化[]

ちなみにRIPLinuxを使った方が、LiveUSBの製作も簡単でダウンロードサイズもあまり変わらない上、含まれるソフトウェアが最新に保たれているためお薦めかもしれない。

Icon Theme Updater 0.9.1 をリリース

Icon Theme Updater 0.9.1をリリースした。

  • KDE3系のアイコンテーマの一部でコンピュータのアイコンが表示されるようにした。(「kcmsystem」を流用)
  • AquafusionGlossy-Glassで「folder-saved-search」のアイコンを補った。密かに後の布石。

Autoconfを使ってライブラリのバージョンで条件付きコンパイルする

libgimpのバージョンが2.7以降かどうかでコンパイルする内容を変更する方法を調べた。
Autoconfとpkg-configを使う。
configure.acに追加:

PKG_CHECK_EXISTS([gimp-2.0 >= 2.7.0], [AC_DEFINE(GIMP_2.7_OR_LATER)])

ソースコードの変更

#ifdef GIMP_2.7_OR_LATER
/* libgimpが2.7かそれ以降の時にコンパイルする内容 */
#else
/* libgimpが2.7以前の時にコンパイルする内容 */
#endif

参考:pkg-config(1)