diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2015-01-21 11:54:51 +0000 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2015-01-21 11:54:51 +0000 |
commit | e66a6918f5f0ef74670f24dae0fd9dabf7145d7f (patch) | |
tree | e148bcbc5636c45b5c7ae893444fd7943a77c480 /app-shells | |
parent | Added a fix from upstream (diff) | |
download | gentoo-2-e66a6918f5f0ef74670f24dae0fd9dabf7145d7f.tar.gz gentoo-2-e66a6918f5f0ef74670f24dae0fd9dabf7145d7f.tar.bz2 gentoo-2-e66a6918f5f0ef74670f24dae0fd9dabf7145d7f.zip |
Added fixes from upstream. Removed old
(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 0x981CA6FC)
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/bash/ChangeLog | 11 | ||||
-rw-r--r-- | app-shells/bash/bash-4.3_p30.ebuild | 246 | ||||
-rw-r--r-- | app-shells/bash/bash-4.3_p33-r1.ebuild (renamed from app-shells/bash/bash-4.3_p30-r1.ebuild) | 7 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.3-arrayfunc.patch | 15 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch | 13 | ||||
-rw-r--r-- | app-shells/bash/files/bash-4.3-term-cleanup.patch | 47 |
6 files changed, 42 insertions, 297 deletions
diff --git a/app-shells/bash/ChangeLog b/app-shells/bash/ChangeLog index 25c27f0f331c..5512fb582ca5 100644 --- a/app-shells/bash/ChangeLog +++ b/app-shells/bash/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for app-shells/bash # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.427 2015/01/01 07:27:18 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.428 2015/01/21 11:54:51 polynomial-c Exp $ + +*bash-4.3_p33-r1 (21 Jan 2015) + + 21 Jan 2015; Lars Wendler <polynomial-c@gentoo.org> -bash-4.3_p30.ebuild, + -bash-4.3_p30-r1.ebuild, +bash-4.3_p33-r1.ebuild, + +files/bash-4.3-arrayfunc.patch, + +files/bash-4.3-mapfile-improper-array-name-validation.patch, + -files/bash-4.3-term-cleanup.patch: + Added fixes from upstream. Removed old. *bash-4.3_p33 (01 Jan 2015) diff --git a/app-shells/bash/bash-4.3_p30.ebuild b/app-shells/bash/bash-4.3_p30.ebuild deleted file mode 100644 index e0e41d0330ba..000000000000 --- a/app-shells/bash/bash-4.3_p30.ebuild +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3_p30.ebuild,v 1.3 2014/10/20 05:14:35 vapier Exp $ - -EAPI="4" - -inherit eutils flag-o-matic toolchain-funcs multilib - -# Official patchlevel -# See ftp://ftp.cwru.edu/pub/bash/bash-4.3-patches/ -PLEVEL=${PV##*_p} -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -[[ ${PV} != *_p* ]] && PLEVEL=0 -patches() { - local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}} - [[ ${plevel} -eq 0 ]] && return 1 - eval set -- {1..${plevel}} - set -- $(printf "${pn}${pv/\.}-%03d " "$@") - if [[ ${opt} == -s ]] ; then - echo "${@/#/${DISTDIR}/}" - else - local u - for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do - printf "${u}/${pn}-${pv}-patches/%s " "$@" - done - fi -} - -# The version of readline this bash normally ships with. -READLINE_VER="6.3" - -DESCRIPTION="The standard GNU Bourne again shell" -HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html" -SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)" -[[ ${PV} == *_rc* ]] && SRC_URI+=" ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" -IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline vanilla" - -DEPEND=">=sys-libs/ncurses-5.2-r2 - readline? ( >=sys-libs/readline-${READLINE_VER} ) - nls? ( virtual/libintl )" -RDEPEND="${DEPEND} - !<sys-apps/portage-2.1.6.7_p1 - !<sys-apps/paludis-0.26.0_alpha5" -# we only need yacc when the .y files get patched (bash42-005) -DEPEND+=" virtual/yacc" - -S=${WORKDIR}/${MY_P} - -pkg_setup() { - if is-flag -malign-double ; then #7332 - eerror "Detected bad CFLAGS '-malign-double'. Do not use this" - eerror "as it breaks LFS (struct stat64) on x86." - die "remove -malign-double from your CFLAGS mr ricer" - fi - if use bashlogger ; then - ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs." - ewarn "This will log ALL output you enter into the shell, you have been warned." - fi -} - -src_unpack() { - unpack ${MY_P}.tar.gz -} - -src_prepare() { - # Include official patches - [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s) - - # Clean out local libs so we know we use system ones w/releases. - if [[ ${PV} != *_rc* ]] ; then - rm -rf lib/{readline,termcap}/* - touch lib/{readline,termcap}/Makefile.in # for config.status - sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die - fi - - # Avoid regenerating docs after patches #407985 - sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die - touch -r . doc/* - - epatch "${FILESDIR}"/${PN}-4.3-compat-lvl.patch - epatch "${FILESDIR}"/${PN}-4.3-parse-time-keyword.patch - epatch "${FILESDIR}"/${PN}-4.3-append-process-segfault.patch - epatch "${FILESDIR}"/${PN}-4.3-term-cleanup.patch - - epatch_user -} - -src_configure() { - local myconf=() - - # For descriptions of these, see config-top.h - # bashrc/#26952 bash_logout/#90488 ssh/#24762 - append-cppflags \ - -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \ - -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \ - -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \ - -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \ - -DNON_INTERACTIVE_LOGIN_SHELLS \ - -DSSH_SOURCE_BASHRC \ - $(use bashlogger && echo -DSYSLOG_HISTORY) - - # Don't even think about building this statically without - # reading Bug 7714 first. If you still build it statically, - # don't come crying to us with bugs ;). - #use static && export LDFLAGS="${LDFLAGS} -static" - use nls || myconf+=( --disable-nls ) - - # Historically, we always used the builtin readline, but since - # our handling of SONAME upgrades has gotten much more stable - # in the PM (and the readline ebuild itself preserves the old - # libs during upgrades), linking against the system copy should - # be safe. - # Exact cached version here doesn't really matter as long as it - # is at least what's in the DEPEND up above. - export ac_cv_rl_version=${READLINE_VER} - - # Force linking with system curses ... the bundled termcap lib - # sucks bad compared to ncurses. For the most part, ncurses - # is here because readline needs it. But bash itself calls - # ncurses in one or two small places :(. - - if [[ ${PV} != *_rc* ]] ; then - # Use system readline only with released versions. - myconf+=( --with-installed-readline=. ) - fi - - if use plugins; then - append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash - else - # Disable the plugins logic by hand since bash doesn't - # provide a way of doing it. - export ac_cv_func_dl{close,open,sym}=no \ - ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no - sed -i \ - -e '/LOCAL_LDFLAGS=/s:-rdynamic::' \ - configure || die - fi - tc-export AR #444070 - econf \ - --docdir='$(datarootdir)'/doc/${PF} \ - --htmldir='$(docdir)/html' \ - --with-curses \ - $(use_with afs) \ - $(use_enable net net-redirections) \ - --disable-profiling \ - $(use_enable mem-scramble) \ - $(use_with mem-scramble bash-malloc) \ - $(use_enable readline) \ - $(use_enable readline history) \ - $(use_enable readline bang-history) \ - "${myconf[@]}" -} - -src_compile() { - emake - - if use plugins ; then - emake -C examples/loadables all others - fi -} - -src_install() { - local d f - - default - - dodir /bin - mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die - dosym bash /bin/rbash - - insinto /etc/bash - doins "${FILESDIR}"/{bashrc,bash_logout} - insinto /etc/skel - for f in bash{_logout,_profile,rc} ; do - newins "${FILESDIR}"/dot-${f} .${f} - done - - local sed_args=( - -e "s:#${USERLAND}#@::" - -e '/#@/d' - ) - if ! use readline ; then - sed_args+=( #432338 - -e '/^shopt -s histappend/s:^:#:' - -e 's:use_color=true:use_color=false:' - ) - fi - sed -i \ - "${sed_args[@]}" \ - "${ED}"/etc/skel/.bashrc \ - "${ED}"/etc/bash/bashrc || die - - if use plugins ; then - exeinto /usr/$(get_libdir)/bash - doexe $(echo examples/loadables/*.o | sed 's:\.o::g') - insinto /usr/include/bash-plugins - doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h} - fi - - if use examples ; then - for d in examples/{functions,misc,scripts,startup-files} ; do - exeinto /usr/share/doc/${PF}/${d} - insinto /usr/share/doc/${PF}/${d} - for f in ${d}/* ; do - if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then - doexe ${f} - else - doins ${f} - fi - done - done - fi - - doman doc/*.1 - newdoc CWRU/changelog ChangeLog - dosym bash.info /usr/share/info/bashref.info -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then - mkdir -p "${EROOT}"/etc/bash - mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ - fi - - if [[ -L ${EROOT}/bin/sh ]] ; then - # rewrite the symlink to ensure that its mtime changes. having /bin/sh - # missing even temporarily causes a fatal error with paludis. - local target=$(readlink "${EROOT}"/bin/sh) - local tmp=$(emktemp "${EROOT}"/bin) - ln -sf "${target}" "${tmp}" - mv -f "${tmp}" "${EROOT}"/bin/sh - fi -} - -pkg_postinst() { - # If /bin/sh does not exist, provide it - if [[ ! -e ${EROOT}/bin/sh ]] ; then - ln -sf bash "${EROOT}"/bin/sh - fi -} diff --git a/app-shells/bash/bash-4.3_p30-r1.ebuild b/app-shells/bash/bash-4.3_p33-r1.ebuild index 6b18603f3447..e59aca4a2602 100644 --- a/app-shells/bash/bash-4.3_p30-r1.ebuild +++ b/app-shells/bash/bash-4.3_p33-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3_p30-r1.ebuild,v 1.1 2014/11/09 20:41:28 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3_p33-r1.ebuild,v 1.1 2015/01/21 11:54:51 polynomial-c Exp $ EAPI="4" @@ -86,7 +86,8 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-4.3-compat-lvl.patch epatch "${FILESDIR}"/${PN}-4.3-parse-time-keyword.patch epatch "${FILESDIR}"/${PN}-4.3-append-process-segfault.patch - epatch "${FILESDIR}"/${PN}-4.3-term-cleanup.patch + epatch "${FILESDIR}"/${PN}-4.3-mapfile-improper-array-name-validation.patch + epatch "${FILESDIR}"/${PN}-4.3-arrayfunc.patch epatch_user } diff --git a/app-shells/bash/files/bash-4.3-arrayfunc.patch b/app-shells/bash/files/bash-4.3-arrayfunc.patch new file mode 100644 index 000000000000..f44d18478454 --- /dev/null +++ b/app-shells/bash/files/bash-4.3-arrayfunc.patch @@ -0,0 +1,15 @@ +http://lists.gnu.org/archive/html/bug-bash/2014-11/msg00178.html + +diff --git a/arrayfunc.c b/arrayfunc.c +index 804e6da..0f900aa 100644 +--- a/arrayfunc.c ++++ b/arrayfunc.c +@@ -498,7 +498,7 @@ assign_compound_array_list (var, nlist, flags) + + for (list = nlist; list; list = list->next) + { +- iflags = flags; ++ iflags = (flags & ~ASS_APPEND); + w = list->word->word; + + /* We have a word of the form [ind]=value */ diff --git a/app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch b/app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch new file mode 100644 index 000000000000..20bf340fdbd3 --- /dev/null +++ b/app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch @@ -0,0 +1,13 @@ +http://lists.gnu.org/archive/html/bug-bash/2014-11/msg00097.html + +--- bash-4.3/builtins/mapfile.def ++++ bash-4.3/builtins/mapfile.def +@@ -339,7 +339,7 @@ + else + array_name = list->word->word; + +- if (legal_identifier (array_name) == 0 && valid_array_reference (array_name) == 0) ++ if (legal_identifier (array_name) == 0) + { + sh_invalidid (array_name); + return (EXECUTION_FAILURE); diff --git a/app-shells/bash/files/bash-4.3-term-cleanup.patch b/app-shells/bash/files/bash-4.3-term-cleanup.patch deleted file mode 100644 index be7a5def76d5..000000000000 --- a/app-shells/bash/files/bash-4.3-term-cleanup.patch +++ /dev/null @@ -1,47 +0,0 @@ -http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00031.html - -*** ../bash-4.3-patched/bashline.c 2014-05-14 09:22:39.000000000 -0400 ---- bashline.c 2014-09-08 11:28:56.000000000 -0400 -*************** -*** 203,206 **** ---- 203,207 ---- - extern int array_needs_making; - extern int posixly_correct, no_symbolic_links; -+ extern int sigalrm_seen; - extern char *current_prompt_string, *ps1_prompt; - extern STRING_INT_ALIST word_token_alist[]; -*************** -*** 4209,4214 **** - /* If we're going to longjmp to top_level, make sure we clean up readline. - check_signals will call QUIT, which will eventually longjmp to top_level, -! calling run_interrupt_trap along the way. */ -! if (interrupt_state) - rl_cleanup_after_signal (); - bashline_reset_event_hook (); ---- 4262,4268 ---- - /* If we're going to longjmp to top_level, make sure we clean up readline. - check_signals will call QUIT, which will eventually longjmp to top_level, -! calling run_interrupt_trap along the way. The check for sigalrm_seen is -! to clean up the read builtin's state. */ -! if (terminating_signal || interrupt_state || sigalrm_seen) - rl_cleanup_after_signal (); - bashline_reset_event_hook (); -*** ../bash-4.3-patched/sig.c 2014-01-10 15:06:06.000000000 -0500 ---- sig.c 2014-09-08 11:26:33.000000000 -0400 -*************** -*** 533,538 **** - /* Set the event hook so readline will call it after the signal handlers - finish executing, so if this interrupted character input we can get -! quick response. */ -! if (interactive_shell && interactive && no_line_editing == 0) - bashline_set_event_hook (); - #endif ---- 533,540 ---- - /* Set the event hook so readline will call it after the signal handlers - finish executing, so if this interrupted character input we can get -! quick response. If readline is active or has modified the terminal we -! need to set this no matter what the signal is, though the check for -! RL_STATE_TERMPREPPED is possibly redundant. */ -! if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED)) - bashline_set_event_hook (); - #endif |