--- /usr/portage/app-shells/zsh/zsh-5.0.0.ebuild/usr/portage/app-shells/zsh/zsh-5.0.0.ebuild +++ /usr/portage/app-shells/zsh/zsh-5.0.0.ebuild/zsh-5.0.0.ebuild @@ -35,7 +35,17 @@ LICENSE="ZSH gdbm? ( GPL-2 )" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="caps debug doc examples gdbm maildir pcre static unicode" +IUSE="caps" +COMPLETIONS="AIX BSD Cygwin Darwin Debian +Linux Mandriva openSUSE Redhat Solaris +Unix +X" +for curr in ${COMPLETIONS} +do case ${curr} in + [+-]*) + IUSE="${IUSE} ${curr%%[!+-]*}completion_${curr#?}" + continue;; + esac + IUSE="${IUSE} completion_${curr}" +done +IUSE="${IUSE} debug doc examples gdbm maildir pcre +run-help static unicode" RDEPEND=" >=sys-libs/ncurses-5.1 @@ -46,12 +56,22 @@ gdbm? ( sys-libs/gdbm ) " DEPEND="sys-apps/groff - ${RDEPEND}" + ${RDEPEND} + run-help? ( + dev-lang/perl + sys-apps/man + sys-apps/util-linux + )" +# run-help needs util-linux for colcrt. +# Please let me know if you have an arch where "colcrt" (or at least "col") +# is provided by a different package. + PDEPEND=" examples? ( app-doc/zsh-lovers ) " src_prepare() { + local i f # fix zshall problem with soelim ln -s Doc man1 mv Doc/zshall.1 Doc/zshall.1.soelim @@ -66,6 +86,19 @@ else sed -i -e 's|@ZSH_NOPREFIX@||' -e '/@ZSH_PREFIX@/d' -e 's|""||' "${T}"/zprofile || die fi + set -- + file='Src/Zle/complete.mdd' + for i in ${COMPLETIONS} + do case ${i} in + [+-]*) i=${i#?} + esac + grep -q "Completion\/${i}" -- "${S}/${file}" \ + || die "${file} does not contain Completion/${i}" + use completion_${i} || set -- "${@}" -e "s/Completion\/${i}[^ ']*//" + done + [ ${#} -eq 0 ] || sed -i "${@}" -- "${S}/${file}" \ + || die "patching ${file} failed" + epatch_user } src_configure() { @@ -122,6 +155,56 @@ fi } +generate_run_help() ( + # We use a subshell (...) for locale overrides and local cd + # Hence, we also need not declare any variables as local + mkdir run-help && cd run-help || die "cannot create run-help directory" + # We need GROFF_NO_SGR to produce "classical" formatting: + export GROFF_NO_SGR='' + export LANG=C + unset MANPL LC_ALL + [ -z "${LC_CTYPE}" ] && export LC_CTYPE=en_US.utf8 + ebegin "Generating files for run-help" + # It is necessary to be paranoid about the success of the following pipe, + # since any change in locale or environment (like unset GROFF_NO_SGR, + # "bad" LC_CTYPE or tools behaving slightly different) can break it + # completely. It needs to be tested carefully in each architecture. + man "${S}/Doc/zshbuiltins.1" | colcrt - | perl "${S}/Util/helpfiles" || { + eend 1 + eerror "perl Util/helpfiles failed" + return false + } + mystatus=("${PIPESTATUS[@]}") + [ "${mystatus[0]}" -eq 0 ] || { + eend 1 + eerror "man Doc/zshbuiltins.1 failed" + return false + } + [ "${mystatus[1]}" -eq 0 ] || { + eend 1 + eerror "colcrt failed" + return false + } + test -e zmodload || { + eend 1 + eerror "Could not produce all required files for run-help." + eerror "This can be caused by a broken locale setting:" + eerror "Try to set LC_CTYPE to a utf8 aware locale like en_US.utf8," + eerror "making sure that this locale is supported by your glibc." + eerror "For compatibility reasons, this ebuild ignores LC_ALL." + return false + } + eend 0 +) + +src_compile() { + default + ! use run-help || generate_run_help || { + error "cannot generate files for run-help." + die "If this problem cannot be fixed, disable USE=run-help for zsh" + } +} + src_test() { local i addpredict /dev/ptmx @@ -134,6 +217,11 @@ src_install() { emake DESTDIR="${D}" install install.info + if use run-help + then insinto /usr/share/zsh/site-contrib/help + doins run-help/* + fi + insinto /etc/zsh doins "${T}"/zprofile @@ -165,6 +253,13 @@ } pkg_postinst() { + if use run-help + then elog + elog "If you want to use run-help add to your ~/.zshrc" + elog " unalias run-help" + elog " autoload -Uz run-help" + elog " HELPDIR=/usr/share/zsh/site-contrib/help" + fi # should link to http://www.gentoo.org/doc/en/zsh.xml elog elog "If you want to enable Portage completions and Gentoo prompt,"