試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

tuxonice-userui-0.7.2.ebuild

(2007/10/28)Portageツリーに、

  • tuxonice-sources-2.6.23
  • tuxonice-userui-0.7.2
  • hibernate-script-1.97

ebuildが入り、以下のebuildを使用する必要はなくなった。


Linuxカーネルにおけるハイバネーション*1の実装の1つであるTuxOnIce(旧Software suspend 2 = Suspend2)のUserUI(グラフィカルな進行状況表示)パッケージのバージョン0.7.2には、一部TuxOnIceではなくSuspend2に合わせたコードが残っている。その修正に加え、出来上がる実行ファイル名の部分もTuxOnIceに対応させたebuildを、suspend2-useruiのebuildをベースに作成。
サーバ上のファイル名と、その展開時に作成されるディレクトリ名が「suspend2-userui」を含むため、変数MY_PNとMY_Pを使用しているが、この先、本家版が「tuxonice-userui」の名前になった時点でこれは必要なくなる。Suspend2向けのコードの修正に関しても同様。

ファイル名: tuxonice-userui-0.7.2.ebuild

# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/suspend2-userui/suspend2-userui-0.7.1.ebuild,v 1.4 2007/06/12 16:23:53 jokey Exp $

inherit toolchain-funcs eutils

MY_PN="${PN/tuxonice/suspend2}"
MY_P="${MY_PN}-${PV}"

DESCRIPTION="User Interface for TuxOnIce"
HOMEPAGE="http://www.tuxonice.net/"
SRC_URI="http://www.tuxonice.net/downloads/all/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"

IUSE="fbsplash"
DEPEND="!sys-apps/suspend2-userui
	virtual/libc
	fbsplash? (	sys-libs/zlib
				media-libs/freetype
				media-libs/jpeg
				media-libs/lcms
				>=media-libs/libmng-1.0.5
				media-libs/libpng )"

S="${WORKDIR}/${MY_P}"

src_unpack() {
	unpack ${A}
	cd "${S}"

	# Update default theme name from "suspend2" to "TuxOnIce"
	sed -i -e 's/"suspend2"/"TuxOnIce"/' fbsplash/splash.h
	# Update paths from "/sys/power/suspend2" to "/sys/power/tuxonice"
	sed -i -e 's|/sys/power/suspend2|/sys/power/tuxonice|g' userui_core.c
	# Update version string
	sed -i -e 's/0.7.1/0.7.2/' userui.h
}

src_compile() {
	emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
		tuxoniceui_text || die "emake tuxoniceui_text failed"

	if use fbsplash; then
		emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
			fbsplash || die "emake fbsplash failed"
		emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
			tuxoniceui_fbsplash || die "emake tuxoniceui_fbsplash failed"
	fi
}

src_install() {
	into /
	dosbin tuxoniceui_text
	use fbsplash && dosbin tuxoniceui_fbsplash
	dodoc AUTHORS ChangeLog KERNEL_API README TODO USERUI_API
}

pkg_postinst() {
	if use fbsplash; then
		einfo
		einfo "You must create a symlink from /etc/splash/TuxOnIce"
		einfo "to the theme you want tuxoniceui_fbsplash to use, e.g.:"
		einfo
		einfo "  # ln -sfn /etc/splash/emergence /etc/splash/TuxOnIce"
	fi

	einfo
	einfo "Please see /usr/share/doc/${PF}/README.* for further"
	einfo "instructions."
	einfo
}

(2007/10/17)バージョン番号の修正を追加

インストール例。

$ sudo mkdir /usr/local/overlays/local/sys-apps/tuxonice-userui/files -p
$ sudo mv tuxonice-userui-0.7.2.ebuild /usr/local/overlays/local/sys-apps/tuxonice-userui/
$ sudo ebuild /usr/local/overlays/local/sys-apps/tuxonice-userui/tuxonice-userui-0.7.2.ebuild digest
$ sudo emerge -aC suspend2-userui
$ sudo sed -i -e 's/suspend2-userui/tuxonice-userui/' /etc/portage/package.*
$ sudo emerge -av tuxonice-userui

メッセージ出力にもある通り、fbsplashのテーマのデフォルトは「TuxOnIce」になる(/etc/splash/TuxOnIce/のテーマが使用される)ので注意。

設定ファイル側のUserUI指定も修正する。ファイル名は、TuxOnIceへの名称変更に伴って変更される可能性がある。下の場合はfbsplash版を使用する設定。
ファイル名: /etc/hibernate/suspend2.conf

ProcSetting userui_program /sbin/tuxoniceui_fbsplash

関連URL:

使用したバージョン:

*1:メモリの内容をディスクに書き込んで休止し、その後の起動でこれを読み取り、元の状態に復元する機能