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

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

man-pages-ja-20071119.ebuild

20071119版に合わせたついでに、一部、日本語を含む修正履歴(Changelog)ファイルがEUC-JPのままだったことなどに対処。
ファイル名: man-pages-ja-20071119.ebuild

# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

IUSE="unicode"

GENTOO_MAN_P="portage-${PN}-20060415"

DESCRIPTION="A collection of manual pages translated into Japanese"
HOMEPAGE="http://www.linux.or.jp/JM/ http://www.gentoo.gr.jp/jpmain/translation.xml"
SRC_URI="http://www.linux.or.jp/JM/${P}.tar.gz
	http://dev.gentoo.org/~hattya/distfiles/${GENTOO_MAN_P}.tar.gz"

LICENSE="GPL-2"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
SLOT="0"

RDEPEND="virtual/man"

src_compile() {

	if use unicode; then
		einfo "Converting EUC-JP manpages and README/ChangeLog to UTF-8..."
		local x
		for x in README ChangeLog manual/*/*/*.[1-9] "${WORKDIR}"/${GENTOO_MAN_P}/*/*.[1-9]; do
			mv ${x} ${x}.old
			iconv -f eucjp -t utf8 ${x}.old > ${x}
			rm ${x}.old -f
		done
	fi
	sed -i -e "/^\(man\|shadow\)/s:Y:N:" script/pkgs.list || die

	# remove man pages that are provided by other packages.
	# - sys-apps/shadow +nls
	rm -f manual/*/man1/{chfn,chsh,newgrp,su,passwd,groups}.1
	rm -f manual/*/man8/{vigr,vipw}.8

}

src_install() {

	local x y z pkg

	for x in $(tac script/pkgs.list | grep -v '^[#].*'); do
		if [[ -z "${pkg}" ]]; then
			pkg=${x}
			continue
		fi

		if [[ "${x}" == "N" ]]; then
			pkg=
			continue
		fi

		einfo "install ${pkg}"

		for y in $(ls -d manual/${pkg}/man* 2>/dev/null); do
			doman -i18n=ja ${y}/*
		done

		pkg=
	done

	dodoc ChangeLog README

	cd "${WORKDIR}"/${GENTOO_MAN_P}

	for x in *; do
		if [ -d "${x}" ]; then
			einfo "install ${x}"

			for z in $(for y in ${x}/*.[1-9]; do echo ${y##*.}; done | sort | uniq); do
				doman -i18n=ja ${x}/*.${z}
			done
		fi
	done

	newdoc ChangeLog ChangeLog.GentooJP

}

pkg_postinst() {

	if use unicode && [[ ${ROOT} == "/" ]]; then
		einfo "Scanning existing Japanese manpages..."
		local x lst
		lst=$(for x in /usr/share/man/ja/*/*.bz2; do bzcat ${x} | iconv -f utf8 -t utf8 >/dev/null 2>&1 || echo ${x}; done)
		if [ -n "${lst}" ]; then
			for x in ${lst}; do
				einfo "Converting $(basename ${x}) to UTF-8..."
				mv ${x} ${x}.old
				bzcat ${x}.old | iconv -f eucjp -t utf8 | bzip2 > ${x}
				rm ${x}.old
			done
		else
			einfo "No EUC-JP manpages found."
		fi
	else
		echo
		elog "You need to set appropriate LANG variables to use"
		elog "Japanese manpages."
		elog "e.g."
		elog "\tLANG=\"ja_JP.eucJP\""
		elog "\texport LANG"
		echo
	fi

}