diff options
author | Mike Frysinger <vapier@gentoo.org> | 2014-12-31 08:06:48 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2014-12-31 08:06:48 +0000 |
commit | d307d6d6a5e74066f06d50a7a992b2f1ea7094a3 (patch) | |
tree | a2c9f21d10942a412e1ddcfc5e69e08ad631d8d4 /app-shells | |
parent | version bump (bug #466382); create menu entry (bug #499938) (diff) | |
download | gentoo-2-d307d6d6a5e74066f06d50a7a992b2f1ea7094a3.tar.gz gentoo-2-d307d6d6a5e74066f06d50a7a992b2f1ea7094a3.tar.bz2 gentoo-2-d307d6d6a5e74066f06d50a7a992b2f1ea7094a3.zip |
Add patch from upstream to fix behavior in new pid namespaces.
(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key D2E96200)
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/zsh/ChangeLog | 8 | ||||
-rw-r--r-- | app-shells/zsh/files/zsh-5.0.7-pid-ns.patch | 39 | ||||
-rw-r--r-- | app-shells/zsh/zsh-5.0.7-r2.ebuild | 174 |
3 files changed, 220 insertions, 1 deletions
diff --git a/app-shells/zsh/ChangeLog b/app-shells/zsh/ChangeLog index ff5a02e802c8..5faa83e98a11 100644 --- a/app-shells/zsh/ChangeLog +++ b/app-shells/zsh/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-shells/zsh # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/zsh/ChangeLog,v 1.248 2014/11/21 09:58:51 radhermit Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/zsh/ChangeLog,v 1.249 2014/12/31 08:06:48 vapier Exp $ + +*zsh-5.0.7-r2 (31 Dec 2014) + + 31 Dec 2014; Mike Frysinger <vapier@gentoo.org> +files/zsh-5.0.7-pid-ns.patch, + +zsh-5.0.7-r2.ebuild: + Add patch from upstream to fix behavior in new pid namespaces. 21 Nov 2014; Tim Harder <radhermit@gentoo.org> zsh-5.0.5.ebuild, zsh-5.0.7-r1.ebuild, zsh-9999.ebuild: diff --git a/app-shells/zsh/files/zsh-5.0.7-pid-ns.patch b/app-shells/zsh/files/zsh-5.0.7-pid-ns.patch new file mode 100644 index 000000000000..928ce48b4617 --- /dev/null +++ b/app-shells/zsh/files/zsh-5.0.7-pid-ns.patch @@ -0,0 +1,39 @@ +zsh and pid namespaces don't play very well together. Specifically, when zsh is +launched inside a new pid namespace, it doesn't take ownership of the process +group, causing things like SIGINT to be sent to the parent process. Upstream +bug report here: http://www.zsh.org/mla/workers/2014/msg01769.html. + +The first chunk of this diff fixes this problem and has already been applied +upstream: +http://sourceforge.net/p/zsh/code/ci/0c4cb0cc1b527f4341f1a39a10f4120aa7c7d594/. + +The second chunk is a suggested fix for the warning that zsh prints when +exiting: http://www.zsh.org/mla/workers/2014/msg01779.html. + +diff --git a/Src/jobs.c b/Src/jobs.c +index a668b07..c6e1bce 100644 +--- a/Src/jobs.c ++++ b/Src/jobs.c +@@ -2734,7 +2734,7 @@ acquire_pgrp(void) + long ttpgrp; + sigset_t blockset, oldset; + +- if ((mypgrp = GETPGRP()) > 0) { ++ if ((mypgrp = GETPGRP()) >= 0) { + long lastpgrp = mypgrp; + sigemptyset(&blockset); + sigaddset(&blockset, SIGTTIN); +@@ -2779,8 +2779,11 @@ void + release_pgrp(void) + { + if (origpgrp != mypgrp) { +- attachtty(origpgrp); +- setpgrp(0, origpgrp); ++ /* in linux pid namespaces, origpgrp may never have been set */ ++ if (origpgrp) { ++ attachtty(origpgrp); ++ setpgrp(0, origpgrp); ++ } + mypgrp = origpgrp; + } + } diff --git a/app-shells/zsh/zsh-5.0.7-r2.ebuild b/app-shells/zsh/zsh-5.0.7-r2.ebuild new file mode 100644 index 000000000000..0f1a45f2b8d3 --- /dev/null +++ b/app-shells/zsh/zsh-5.0.7-r2.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-shells/zsh/zsh-5.0.7-r2.ebuild,v 1.1 2014/12/31 08:06:48 vapier Exp $ + +EAPI=5 + +inherit eutils flag-o-matic multilib prefix + +DESCRIPTION="UNIX Shell similar to the Korn shell" +HOMEPAGE="http://www.zsh.org/" +SRC_URI="http://www.zsh.org/pub/${P}.tar.bz2 + doc? ( http://www.zsh.org/pub/${P}-doc.tar.bz2 )" + +LICENSE="ZSH gdbm? ( GPL-2 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~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" + +RDEPEND=" + >=sys-libs/ncurses-5.1 + static? ( >=sys-libs/ncurses-5.7-r4[static-libs] ) + caps? ( sys-libs/libcap ) + pcre? ( >=dev-libs/libpcre-3.9 + static? ( >=dev-libs/libpcre-3.9[static-libs] ) ) + gdbm? ( sys-libs/gdbm ) +" +DEPEND="sys-apps/groff + ${RDEPEND}" +PDEPEND=" + examples? ( app-doc/zsh-lovers ) +" + +src_prepare() { + # fix zshall problem with soelim + ln -s Doc man1 + mv Doc/zshall.1 Doc/zshall.1.soelim + soelim Doc/zshall.1.soelim > Doc/zshall.1 + + epatch "${FILESDIR}"/${PN}-init.d-gentoo-r1.diff + epatch "${FILESDIR}"/${P}-pid-ns.patch + + cp "${FILESDIR}"/zprofile-1 "${T}"/zprofile || die + eprefixify "${T}"/zprofile || die + if use prefix ; then + sed -i -e 's|@ZSH_PREFIX@||' -e '/@ZSH_NOPREFIX@/d' "${T}"/zprofile || die + else + sed -i -e 's|@ZSH_NOPREFIX@||' -e '/@ZSH_PREFIX@/d' -e 's|""||' "${T}"/zprofile || die + fi + + # fix cvs completion + epatch "${FILESDIR}"/${P}-fix-cvs-completion.patch +} + +src_configure() { + local myconf= + + if use static ; then + myconf+=" --disable-dynamic" + append-ldflags -static + fi + if use debug ; then + myconf+=" \ + --enable-zsh-debug \ + --enable-zsh-mem-debug \ + --enable-zsh-mem-warning \ + --enable-zsh-secure-free \ + --enable-zsh-hash-debug" + fi + + if [[ ${CHOST} == *-darwin* ]]; then + myconf+=" --enable-libs=-liconv" + append-ldflags -Wl,-x + fi + + econf \ + --bindir="${EPREFIX}"/bin \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --enable-etcdir="${EPREFIX}"/etc/zsh \ + --enable-runhelpdir="${EPREFIX}"/usr/share/zsh/${PV%_*}/help \ + --enable-fndir="${EPREFIX}"/usr/share/zsh/${PV%_*}/functions \ + --enable-site-fndir="${EPREFIX}"/usr/share/zsh/site-functions \ + --enable-function-subdirs \ + --with-tcsetpgrp \ + $(use_enable maildir maildir-support) \ + $(use_enable pcre) \ + $(use_enable caps cap) \ + $(use_enable unicode multibyte) \ + $(use_enable gdbm ) \ + ${myconf} + + if use static ; then + # compile all modules statically, see Bug #27392 + # removed cap and curses because linking failes + sed -i \ + -e "s,link=no,link=static,g" \ + -e "/^name=zsh\/cap/s,link=static,link=no," \ + -e "/^name=zsh\/curses/s,link=static,link=no," \ + "${S}"/config.modules || die + if ! use gdbm ; then + sed -i '/^name=zsh\/db\/gdbm/s,link=static,link=no,' \ + "${S}"/config.modules || die + fi + fi +} + +src_test() { + addpredict /dev/ptmx + local i + for i in C02cond.ztst V08zpty.ztst X02zlevi.ztst Y01completion.ztst Y02compmatch.ztst Y03arguments.ztst ; do + rm "${S}"/Test/${i} || die + done + emake check +} + +src_install() { + emake DESTDIR="${D}" install install.info + + insinto /etc/zsh + doins "${T}"/zprofile + + keepdir /usr/share/zsh/site-functions + insinto /usr/share/zsh/${PV%_*}/functions/Prompts + newins "${FILESDIR}"/prompt_gentoo_setup-1 prompt_gentoo_setup + + # install miscellaneous scripts; bug #54520 + local i + sed -i -e "s:/usr/local/bin/perl:${EPREFIX}/usr/bin/perl:g" \ + -e "s:/usr/local/bin/zsh:${EPREFIX}/bin/zsh:g" "${S}"/{Util,Misc}/* || die + for i in Util Misc ; do + insinto /usr/share/zsh/${PV%_*}/${i} + doins ${i}/* + done + + dodoc ChangeLog* META-FAQ NEWS README config.modules + + if use doc ; then + pushd "${WORKDIR}/${PN}-${PV%_*}" >/dev/null + dohtml -r Doc/* + insinto /usr/share/doc/${PF} + doins Doc/zsh.{dvi,pdf} + popd >/dev/null + fi + + docinto StartupFiles + dodoc StartupFiles/z* +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] ; then + # should link to http://www.gentoo.org/doc/en/zsh.xml + echo + elog "If you want to enable Portage completions and Gentoo prompt," + elog "emerge app-shells/gentoo-zsh-completions and add" + elog " autoload -U compinit promptinit" + elog " compinit" + elog " promptinit; prompt gentoo" + elog "to your ~/.zshrc" + echo + elog "Also, if you want to enable cache for the completions, add" + elog " zstyle ':completion::complete:*' use-cache 1" + elog "to your ~/.zshrc" + echo + elog "Note that a system zprofile startup file is installed. This will override" + elog "PATH and possibly other variables that a user may set in ~/.zshenv." + elog "Custom PATH settings and similar overridden variables can be moved to ~/.zprofile" + elog "or other user startup files that are sourced after the system zprofile." + echo + elog "If PATH must be set in ~/.zshenv to affect things like non-login ssh shells," + elog "one method is to use a separate path-setting file that is conditionally sourced" + elog "in ~/.zshenv and also sourced from ~/.zprofile. For more information, see the" + elog "zshenv example in ${EROOT}/usr/share/doc/${PF}/StartupFiles/." + echo + fi +} |