diff options
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/tcsh/ChangeLog | 8 | ||||
-rw-r--r-- | app-shells/tcsh/files/tcsh-6.18.01-gcc5.patch | 31 | ||||
-rw-r--r-- | app-shells/tcsh/tcsh-6.18.01-r3.ebuild | 101 |
3 files changed, 139 insertions, 1 deletions
diff --git a/app-shells/tcsh/ChangeLog b/app-shells/tcsh/ChangeLog index 2ed5376716ee..66c2efdbed3a 100644 --- a/app-shells/tcsh/ChangeLog +++ b/app-shells/tcsh/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-shells/tcsh # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/tcsh/ChangeLog,v 1.136 2015/02/17 15:03:26 haubi Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/tcsh/ChangeLog,v 1.137 2015/07/19 10:14:06 rhill Exp $ + +*tcsh-6.18.01-r3 (19 Jul 2015) + + 19 Jul 2015; Ryan Hill <rhill@gentoo.org> +tcsh-6.18.01-r3.ebuild, + +files/tcsh-6.18.01-gcc5.patch: + Fix hang with gcc-5 (bug #545176). 17 Feb 2015; Michael Haubenwallner <haubi@gentoo.org> tcsh-6.18.01-r2.ebuild, +files/tcsh-6.18.01-aix.patch: diff --git a/app-shells/tcsh/files/tcsh-6.18.01-gcc5.patch b/app-shells/tcsh/files/tcsh-6.18.01-gcc5.patch new file mode 100644 index 000000000000..d9501572fe57 --- /dev/null +++ b/app-shells/tcsh/files/tcsh-6.18.01-gcc5.patch @@ -0,0 +1,31 @@ +https://bugs.gentoo.org/545176 +http://mx.gw.com/pipermail/tcsh-bugs/2015-May/000945.html +https://github.com/tcsh-org/tcsh/commit/624d3aebb6e6afadb4f35e894d11b5ebe290cd87 + +From 624d3aebb6e6afadb4f35e894d11b5ebe290cd87 Mon Sep 17 00:00:00 2001 +From: christos <christos> +Date: Thu, 28 May 2015 11:47:03 +0000 +Subject: [PATCH] avoid gcc-5 optimization malloc + memset = calloc (Fridolin + Pokorny) + +--- + tc.alloc.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/tc.alloc.c ++++ b/tc.alloc.c +@@ -348,10 +348,13 @@ calloc(size_t i, size_t j) + { + #ifndef lint + char *cp; ++ volatile size_t k; + + i *= j; + cp = xmalloc(i); +- memset(cp, 0, i); ++ /* Stop gcc 5.x from optimizing malloc+memset = calloc */ ++ k = i; ++ memset(cp, 0, k); + + return ((memalign_t) cp); + #else diff --git a/app-shells/tcsh/tcsh-6.18.01-r3.ebuild b/app-shells/tcsh/tcsh-6.18.01-r3.ebuild new file mode 100644 index 000000000000..019720337482 --- /dev/null +++ b/app-shells/tcsh/tcsh-6.18.01-r3.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-shells/tcsh/tcsh-6.18.01-r3.ebuild,v 1.1 2015/07/19 10:14:06 rhill Exp $ + +EAPI="3" + +inherit eutils flag-o-matic autotools prefix + +CONFVER="1.9" + +DESCRIPTION="Enhanced version of the Berkeley C shell (csh)" +HOMEPAGE="http://www.tcsh.org/" +SRC_URI="ftp://ftp.astron.com/pub/tcsh/${P}.tar.gz + http://www.gentoo.org/~grobian/distfiles/tcsh-gentoo-patches-r${CONFVER}.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x86-fbsd ~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="nls doc" +RESTRICT="test" + +# we need gettext because we run autoconf (AM_ICONV) +RDEPEND=">=sys-libs/ncurses-5.1 + virtual/libiconv" +DEPEND="${RDEPEND} + sys-devel/gettext + doc? ( dev-lang/perl )" + +CONFDIR=${WORKDIR}/tcsh-gentoo-patches-r${CONFVER} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-6.14.00-debian-dircolors.patch # bug #120792 + epatch "${FILESDIR}"/${PN}-6.14-makefile.patch # bug #151951 + epatch "${FILESDIR}"/${PN}-6.14-use-ncurses.patch + epatch "${FILESDIR}"/${PN}-6.18.01-aix.patch + epatch "${FILESDIR}"/${PN}-6.18.01-gcc5.patch + + # fix dependency on ncurses[tinfo], #459484 + sed \ + -e "s:\(ncurses\):\1 tinfo:g" \ + -i configure.in || die + + eautoreconf + + # fix gencat usage + sed -i -e 's/cat \$\^ \$> | \$(GENCAT) \$@/rm -f $@; $(GENCAT) $@ $> $^/' \ + nls/Makefile.in || die + + # use sysmalloc (for larger alloc sets) on Darwin also + sed -i -e 's/__MACHTEN__/__MACH__/' config_f.h || die + + # unify ECHO behaviour + echo "#undef ECHO_STYLE" >> config_f.h + echo "#define ECHO_STYLE BOTH_ECHO" >> config_f.h + + eprefixify "${CONFDIR}"/* + # activate the right default PATH + if [[ -z ${EPREFIX} ]] ; then + sed -i \ + -e 's/^#MAIN//' -e '/^#PREFIX/d' \ + "${CONFDIR}"/csh.login || die + else + sed -i \ + -e 's/^#PREFIX//' -e '/^#MAIN/d' \ + "${CONFDIR}"/csh.login || die + fi +} + +src_configure() { + # make tcsh look and live along the lines of the prefix + append-cppflags -D_PATH_DOTCSHRC="'"'"${EPREFIX}/etc/csh.cshrc"'"'" + append-cppflags -D_PATH_DOTLOGIN="'"'"${EPREFIX}/etc/csh.login"'"'" + append-cppflags -D_PATH_DOTLOGOUT="'"'"${EPREFIX}/etc/csh.logout"'"'" + append-cppflags -D_PATH_USRBIN="'"'"${EPREFIX}/usr/bin"'"'" + append-cppflags -D_PATH_BIN="'"'"${EPREFIX}/bin"'"'" + + econf \ + --prefix="${EPREFIX:-/}" \ + --datarootdir='${prefix}/usr/share' \ + $(use_enable nls) \ + || die +} + +src_install() { + emake DESTDIR="${D}" install install.man || die + + if use doc ; then + perl tcsh.man2html tcsh.man || die + dohtml tcsh.html/*.html + fi + + insinto /etc + doins \ + "${CONFDIR}"/csh.cshrc \ + "${CONFDIR}"/csh.login + + dodoc FAQ Fixes NewThings Ported README WishList Y2K + + # bug #119703: add csh -> tcsh symlink + dosym /bin/tcsh /bin/csh +} |