# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-apps/man/man-1.6f-r4.ebuild,v 1.2 2010/01/28 06:20:37 vapier Exp $ EAPI="2" inherit eutils toolchain-funcs DESCRIPTION="Standard commands to read man pages" HOMEPAGE="http://primates.ximian.com/~flucifredi/man/" SRC_URI="http://primates.ximian.com/~flucifredi/man/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd" IUSE="lzma nls" DEPEND="nls? ( sys-devel/gettext )" RDEPEND="|| ( >=sys-apps/groff-1.19.2-r1 app-doc/heirloom-doctools ) !sys-apps/man-db !app-arch/lzma lzma? ( app-arch/xz-utils )" PROVIDE="virtual/man" pkg_setup() { enewgroup man 15 enewuser man 13 -1 /usr/share/man man } src_prepare() { epatch "${FILESDIR}"/man-1.6f-man2html-compression-2.patch epatch "${FILESDIR}"/man-1.6-cross-compile.patch epatch "${FILESDIR}"/man-1.5p-search-order.patch epatch "${FILESDIR}"/man-1.6f-unicode.patch #146315 epatch "${FILESDIR}"/man-1.5p-defmanpath-symlinks.patch epatch "${FILESDIR}"/man-1.6b-more-sections.patch epatch "${FILESDIR}"/man-1.6c-cut-duplicate-manpaths.patch epatch "${FILESDIR}"/man-1.5m2-apropos.patch epatch "${FILESDIR}"/man-1.6d-fbsd.patch epatch "${FILESDIR}"/man-1.6e-headers.patch epatch "${FILESDIR}"/man-1.6f-so-search-2.patch epatch "${FILESDIR}"/man-1.6f-compress.patch epatch "${FILESDIR}"/man-1.6f-parallel-build.patch #207148 #258916 epatch "${FILESDIR}"/man-1.6f-xz.patch #302380 use nls && epatch "${FILESDIR}"/man-1.6f-catgets-encoding.patch # make sure `less` handles escape sequences #287183 sed -i -e '/^DEFAULTLESSOPT=/s:"$:R":' configure } echoit() { echo "$@" ; "$@" ; } src_configure() { strip-linguas $(eval $(grep ^LANGUAGES= configure) ; echo ${LANGUAGES//,/ }) unset NLSPATH #175258 tc-export CC BUILD_CC local mylang= if use nls ; then if [[ -z ${LINGUAS} ]] ; then mylang="all" else mylang="${LINGUAS// /,}" fi # Convert everything to UTF-8 if utf8 flag switched on # Convert messages # zh_TW needn't to be converted - it is already in UTF-8 cd "${S}"/msgs/ # To avoid problems with unexpected chars inpath for codeset_file in mess.*.codeset; do local lang_file=${codeset_file%.*} # cut out .codeset local cur_lang=${lang_file##*.} # cut out mess. local cur_encoding=$(sed -r 's/^\$\s+codeset\s*=\s*(.+)$/\1/' \ $codeset_file) iconv -f ${cur_encoding} -t UTF-8 "${lang_file}" \ > "${lang_file}.utf8" if [[ ! $? ]]; then ewarn "Convering message file for language '${cur_lang}' failed" rm -f "${lang_file}.utf8" &> /dev/null continue; fi mv -f "${lang_file}.utf8" "${lang_file}" echo '$ codeset=UTF-8' > ${codeset_file} done; cd "${S}" else mylang="none" fi export COMPRESS if use lzma ; then COMPRESS=/usr/bin/xz else COMPRESS=/bin/bzip2 fi echoit \ ./configure \ -confdir=/etc \ +sgid +fhs \ +lang ${mylang} \ || die "configure failed" } src_install() { unset NLSPATH #175258 emake PREFIX="${D}" install || die "make install failed" dosym man /usr/bin/manpath dodoc LSM README* TODO # makewhatis only adds man-pages from the last 24hrs exeinto /etc/cron.daily newexe "${FILESDIR}"/makewhatis.cron makewhatis keepdir /var/cache/man diropts -m0775 -g man local mansects=$(grep ^MANSECT "${D}"/etc/man.conf | cut -f2-) for x in ${mansects//:/ } ; do keepdir /var/cache/man/cat${x} done } pkg_postinst() { einfo "Forcing sane permissions onto ${ROOT}var/cache/man (Bug #40322)" chown -R root:man "${ROOT}"/var/cache/man chmod -R g+w "${ROOT}"/var/cache/man [[ -e ${ROOT}/var/cache/man/whatis ]] \ && chown root:0 "${ROOT}"/var/cache/man/whatis echo local f files=$(ls "${ROOT}"/etc/cron.{daily,weekly}/makewhatis{,.cron} 2>/dev/null) for f in ${files} ; do [[ ${f} == */etc/cron.daily/makewhatis ]] && continue [[ $(md5sum "${f}") == "8b2016cc778ed4e2570b912c0f420266 "* ]] \ && rm -f "${f}" done files=$(ls "${ROOT}"etc/cron.{daily,weekly}/makewhatis{,.cron} 2>/dev/null) if [[ ${files/$'\n'} != ${files} ]] ; then ewarn "You have multiple makewhatis cron files installed." ewarn "You might want to delete all but one of these:" ewarn ${files} fi if has_version app-doc/heirloom-doctools; then ewarn "Please note that the /etc/man.conf file installed will not" ewarn "work with heirloom's nroff by default (yet)." ewarn "" ewarn "Check app-doc/heirloom-doctools elog messages for the proper" ewarn "configuration." fi }