Gentoo Archives: gentoo-commits

From: "Lars Wendler (polynomial-c)" <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in app-shells/bash: bash-3.1_p18-r1.ebuild bash-4.2_p48-r1.ebuild bash-4.3_p25-r1.ebuild bash-3.2_p52-r1.ebuild bash-4.1_p12-r1.ebuild ChangeLog bash-4.0_p39-r1.ebuild
Date: Thu, 25 Sep 2014 06:21:38
Message-Id: 20140925062133.05918633A@oystercatcher.gentoo.org
1 polynomial-c 14/09/25 06:21:33
2
3 Modified: ChangeLog
4 Added: bash-3.1_p18-r1.ebuild bash-4.2_p48-r1.ebuild
5 bash-4.3_p25-r1.ebuild bash-3.2_p52-r1.ebuild
6 bash-4.1_p12-r1.ebuild bash-4.0_p39-r1.ebuild
7 Log:
8 Another security bump for CVE-2014-7169 (bug #523592)
9
10 (Portage version: 2.2.13/cvs/Linux x86_64, signed Manifest commit with key 0x981CA6FC)
11
12 Revision Changes Path
13 1.385 app-shells/bash/ChangeLog
14
15 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/ChangeLog?rev=1.385&view=markup
16 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/ChangeLog?rev=1.385&content-type=text/plain
17 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/ChangeLog?r1=1.384&r2=1.385
18
19 Index: ChangeLog
20 ===================================================================
21 RCS file: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v
22 retrieving revision 1.384
23 retrieving revision 1.385
24 diff -u -r1.384 -r1.385
25 --- ChangeLog 24 Sep 2014 19:45:20 -0000 1.384
26 +++ ChangeLog 25 Sep 2014 06:21:32 -0000 1.385
27 @@ -1,6 +1,19 @@
28 # ChangeLog for app-shells/bash
29 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
30 -# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.384 2014/09/24 19:45:20 jer Exp $
31 +# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.385 2014/09/25 06:21:32 polynomial-c Exp $
32 +
33 +*bash-4.3_p25-r1 (25 Sep 2014)
34 +*bash-4.2_p48-r1 (25 Sep 2014)
35 +*bash-4.1_p12-r1 (25 Sep 2014)
36 +*bash-4.0_p39-r1 (25 Sep 2014)
37 +*bash-3.2_p52-r1 (25 Sep 2014)
38 +*bash-3.1_p18-r1 (25 Sep 2014)
39 +
40 + 25 Sep 2014; Lars Wendler <polynomial-c@g.o> +bash-3.1_p18-r1.ebuild,
41 + +bash-3.2_p52-r1.ebuild, +bash-4.0_p39-r1.ebuild, +bash-4.1_p12-r1.ebuild,
42 + +bash-4.2_p48-r1.ebuild, +bash-4.3_p25-r1.ebuild,
43 + +files/bash-eol-pushback.patch:
44 + Another security bump for CVE-2014-7169 (bug #523592).
45
46 24 Sep 2014; Jeroen Roovers <jer@g.o> bash-3.1_p18.ebuild,
47 bash-3.2_p52.ebuild, bash-4.0_p39.ebuild, bash-4.1_p12.ebuild,
48
49
50
51 1.1 app-shells/bash/bash-3.1_p18-r1.ebuild
52
53 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-3.1_p18-r1.ebuild?rev=1.1&view=markup
54 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-3.1_p18-r1.ebuild?rev=1.1&content-type=text/plain
55
56 Index: bash-3.1_p18-r1.ebuild
57 ===================================================================
58 # Copyright 1999-2014 Gentoo Foundation
59 # Distributed under the terms of the GNU General Public License v2
60 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-3.1_p18-r1.ebuild,v 1.1 2014/09/25 06:21:32 polynomial-c Exp $
61
62 EAPI="4"
63
64 inherit eutils flag-o-matic toolchain-funcs
65
66 # Official patchlevel
67 # See ftp://ftp.cwru.edu/pub/bash/bash-3.1-patches/
68 PLEVEL=${PV##*_p}
69 MY_PV=${PV/_p*}
70 MY_PV=${MY_PV/_/-}
71 MY_P=${PN}-${MY_PV}
72 [[ ${PV} != *_p* ]] && PLEVEL=0
73 patches() {
74 local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
75 [[ ${plevel} -eq 0 ]] && return 1
76 eval set -- {1..${plevel}}
77 set -- $(printf "${pn}${pv/\.}-%03d " "$@")
78 if [[ ${opt} == -s ]] ; then
79 echo "${@/#/${DISTDIR}/}"
80 else
81 local u
82 for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
83 printf "${u}/${pn}-${pv}-patches/%s " "$@"
84 done
85 fi
86 }
87
88 DESCRIPTION="The standard GNU Bourne again shell"
89 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
90 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
91
92 LICENSE="GPL-2"
93 SLOT="${MY_PV}"
94 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
95 IUSE="afs +net nls +readline"
96
97 DEPEND=">=sys-libs/ncurses-5.2-r2
98 readline? ( >=sys-libs/readline-6.2 )
99 nls? ( virtual/libintl )"
100 RDEPEND="${DEPEND}"
101
102 S=${WORKDIR}/${MY_P}
103
104 pkg_setup() {
105 if is-flag -malign-double ; then #7332
106 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
107 eerror "as it breaks LFS (struct stat64) on x86."
108 die "remove -malign-double from your CFLAGS mr ricer"
109 fi
110 }
111
112 src_unpack() {
113 unpack ${MY_P}.tar.gz
114 }
115
116 src_prepare() {
117 # Include official patches
118 [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
119
120 # Clean out local libs so we know we use system ones
121 rm -rf lib/{readline,termcap}/*
122 touch lib/{readline,termcap}/Makefile.in # for config.status
123 sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
124
125 epatch "${FILESDIR}"/${PN}-3.1-gentoo.patch
126 epatch "${FILESDIR}"/autoconf-mktime-2.53.patch #220040
127 epatch "${FILESDIR}"/${PN}-3.1-ulimit.patch
128 epatch "${FILESDIR}"/${PN}-3.0-read-memleak.patch
129 epatch "${FILESDIR}"/${PN}-3.0-trap-fg-signals.patch
130 epatch "${FILESDIR}"/bash-3.1-fix-dash-login-shell.patch #118257
131 epatch "${FILESDIR}"/bash-3.1-dev-fd-test-as-user.patch #131875
132 epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
133
134 epatch_user
135 }
136
137 src_configure() {
138 local myconf=()
139
140 # Force pgrp synchronization
141 # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=81653
142 export bash_cv_pgrp_pipe=yes
143
144 # For descriptions of these, see config-top.h
145 # bashrc/#26952 bash_logout/#90488 ssh/#24762
146 append-cppflags \
147 -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
148 -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
149 -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
150 -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
151 -DNON_INTERACTIVE_LOGIN_SHELLS \
152 -DSSH_SOURCE_BASHRC
153
154 # Don't even think about building this statically without
155 # reading Bug 7714 first. If you still build it statically,
156 # don't come crying to us with bugs ;).
157 #use static && export LDFLAGS="${LDFLAGS} -static"
158 use nls || myconf+=( --disable-nls )
159
160 # Historically, we always used the builtin readline, but since
161 # our handling of SONAME upgrades has gotten much more stable
162 # in the PM (and the readline ebuild itself preserves the old
163 # libs during upgrades), linking against the system copy should
164 # be safe.
165 # Exact cached version here doesn't really matter as long as it
166 # is at least what's in the DEPEND up above.
167 export ac_cv_rl_version=6.2
168
169 # Force linking with system curses ... the bundled termcap lib
170 # sucks bad compared to ncurses. For the most part, ncurses
171 # is here because readline needs it. But bash itself calls
172 # ncurses in one or two small places :(.
173
174 tc-export AR #444070
175 econf \
176 --with-installed-readline=. \
177 --with-curses \
178 $(use_with afs) \
179 $(use_enable net net-redirections) \
180 --disable-profiling \
181 --without-gnu-malloc \
182 $(use_enable readline) \
183 $(use_enable readline history) \
184 $(use_enable readline bang-history) \
185 "${myconf[@]}"
186 }
187
188 src_compile() {
189 emake -j1 #102426
190 }
191
192 src_install() {
193 into /
194 newbin bash bash-${SLOT}
195
196 newman doc/bash.1 bash-${SLOT}.1
197 newman doc/builtins.1 builtins-${SLOT}.1
198
199 insinto /usr/share/info
200 newins doc/bashref.info bash-${SLOT}.info
201 dosym bash-${SLOT}.info /usr/share/info/bashref-${SLOT}.info
202
203 dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
204 }
205
206
207
208 1.1 app-shells/bash/bash-4.2_p48-r1.ebuild
209
210 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.2_p48-r1.ebuild?rev=1.1&view=markup
211 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.2_p48-r1.ebuild?rev=1.1&content-type=text/plain
212
213 Index: bash-4.2_p48-r1.ebuild
214 ===================================================================
215 # Copyright 1999-2014 Gentoo Foundation
216 # Distributed under the terms of the GNU General Public License v2
217 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.2_p48-r1.ebuild,v 1.1 2014/09/25 06:21:32 polynomial-c Exp $
218
219 EAPI="4"
220
221 inherit eutils flag-o-matic toolchain-funcs multilib
222
223 # Official patchlevel
224 # See ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/
225 PLEVEL=${PV##*_p}
226 MY_PV=${PV/_p*}
227 MY_PV=${MY_PV/_/-}
228 MY_P=${PN}-${MY_PV}
229 [[ ${PV} != *_p* ]] && PLEVEL=0
230 patches() {
231 local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
232 [[ ${plevel} -eq 0 ]] && return 1
233 eval set -- {1..${plevel}}
234 set -- $(printf "${pn}${pv/\.}-%03d " "$@")
235 if [[ ${opt} == -s ]] ; then
236 echo "${@/#/${DISTDIR}/}"
237 else
238 local u
239 for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
240 printf "${u}/${pn}-${pv}-patches/%s " "$@"
241 done
242 fi
243 }
244
245 DESCRIPTION="The standard GNU Bourne again shell"
246 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
247 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
248
249 LICENSE="GPL-3"
250 SLOT="0"
251 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
252 IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline vanilla"
253
254 DEPEND=">=sys-libs/ncurses-5.2-r2
255 readline? ( >=sys-libs/readline-6.2 )
256 nls? ( virtual/libintl )"
257 RDEPEND="${DEPEND}
258 !!<sys-apps/portage-2.1.6.7_p1
259 !!<sys-apps/paludis-0.26.0_alpha5"
260 # we only need yacc when the .y files get patched (bash42-005)
261 DEPEND+=" virtual/yacc"
262
263 S=${WORKDIR}/${MY_P}
264
265 pkg_setup() {
266 if is-flag -malign-double ; then #7332
267 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
268 eerror "as it breaks LFS (struct stat64) on x86."
269 die "remove -malign-double from your CFLAGS mr ricer"
270 fi
271 if use bashlogger ; then
272 ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
273 ewarn "This will log ALL output you enter into the shell, you have been warned."
274 fi
275 }
276
277 src_unpack() {
278 unpack ${MY_P}.tar.gz
279 }
280
281 src_prepare() {
282 # Include official patches
283 [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
284
285 # Clean out local libs so we know we use system ones
286 rm -rf lib/{readline,termcap}/*
287 touch lib/{readline,termcap}/Makefile.in # for config.status
288 sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
289
290 # Avoid regenerating docs after patches #407985
291 sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
292 touch -r . doc/*
293
294 epatch "${FILESDIR}"/${PN}-4.2-execute-job-control.patch #383237
295 epatch "${FILESDIR}"/${PN}-4.2-parallel-build.patch
296 epatch "${FILESDIR}"/${PN}-4.2-no-readline.patch
297 epatch "${FILESDIR}"/${PN}-4.2-read-retry.patch #447810
298 if ! use vanilla ; then
299 epatch "${FILESDIR}"/${PN}-4.2-speed-up-read-N.patch
300 fi
301 epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
302
303 epatch_user
304 }
305
306 src_configure() {
307 local myconf=()
308
309 # For descriptions of these, see config-top.h
310 # bashrc/#26952 bash_logout/#90488 ssh/#24762
311 append-cppflags \
312 -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
313 -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
314 -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
315 -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
316 -DNON_INTERACTIVE_LOGIN_SHELLS \
317 -DSSH_SOURCE_BASHRC \
318 $(use bashlogger && echo -DSYSLOG_HISTORY)
319
320 # Don't even think about building this statically without
321 # reading Bug 7714 first. If you still build it statically,
322 # don't come crying to us with bugs ;).
323 #use static && export LDFLAGS="${LDFLAGS} -static"
324 use nls || myconf+=( --disable-nls )
325
326 # Historically, we always used the builtin readline, but since
327 # our handling of SONAME upgrades has gotten much more stable
328 # in the PM (and the readline ebuild itself preserves the old
329 # libs during upgrades), linking against the system copy should
330 # be safe.
331 # Exact cached version here doesn't really matter as long as it
332 # is at least what's in the DEPEND up above.
333 export ac_cv_rl_version=6.2
334
335 # Force linking with system curses ... the bundled termcap lib
336 # sucks bad compared to ncurses. For the most part, ncurses
337 # is here because readline needs it. But bash itself calls
338 # ncurses in one or two small places :(.
339
340 use plugins && append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
341 tc-export AR #444070
342 econf \
343 --with-installed-readline=. \
344 --with-curses \
345 $(use_with afs) \
346 $(use_enable net net-redirections) \
347 --disable-profiling \
348 $(use_enable mem-scramble) \
349 $(use_with mem-scramble bash-malloc) \
350 $(use_enable readline) \
351 $(use_enable readline history) \
352 $(use_enable readline bang-history) \
353 "${myconf[@]}"
354 }
355
356 src_compile() {
357 emake
358
359 if use plugins ; then
360 emake -C examples/loadables all others
361 fi
362 }
363
364 src_install() {
365 emake install DESTDIR="${D}"
366
367 dodir /bin
368 mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die
369 dosym bash /bin/rbash
370
371 insinto /etc/bash
372 doins "${FILESDIR}"/{bashrc,bash_logout}
373 insinto /etc/skel
374 for f in bash{_logout,_profile,rc} ; do
375 newins "${FILESDIR}"/dot-${f} .${f}
376 done
377
378 local sed_args=(
379 -e "s:#${USERLAND}#@::"
380 -e '/#@/d'
381 )
382 if ! use readline ; then
383 sed_args+=( #432338
384 -e '/^shopt -s histappend/s:^:#:'
385 -e 's:use_color=true:use_color=false:'
386 )
387 fi
388 sed -i \
389 "${sed_args[@]}" \
390 "${ED}"/etc/skel/.bashrc \
391 "${ED}"/etc/bash/bashrc || die
392
393 if use plugins ; then
394 exeinto /usr/$(get_libdir)/bash
395 doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
396 insinto /usr/include/bash-plugins
397 doins *.h builtins/*.h examples/loadables/*.h include/*.h \
398 lib/{glob/glob.h,tilde/tilde.h}
399 fi
400
401 if use examples ; then
402 for d in examples/{functions,misc,scripts,scripts.noah,scripts.v2} ; do
403 exeinto /usr/share/doc/${PF}/${d}
404 insinto /usr/share/doc/${PF}/${d}
405 for f in ${d}/* ; do
406 if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
407 doexe ${f}
408 else
409 doins ${f}
410 fi
411 done
412 done
413 fi
414
415 doman doc/*.1
416 dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
417 dosym bash.info /usr/share/info/bashref.info
418 }
419
420 pkg_preinst() {
421 if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
422 mkdir -p "${EROOT}"/etc/bash
423 mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
424 fi
425
426 if [[ -L ${EROOT}/bin/sh ]]; then
427 # rewrite the symlink to ensure that its mtime changes. having /bin/sh
428 # missing even temporarily causes a fatal error with paludis.
429 local target=$(readlink "${EROOT}"/bin/sh)
430 local tmp=$(emktemp "${EROOT}"/bin)
431 ln -sf "${target}" "${tmp}"
432 mv -f "${tmp}" "${EROOT}"/bin/sh
433 fi
434 }
435
436 pkg_postinst() {
437 # If /bin/sh does not exist, provide it
438 if [[ ! -e ${EROOT}/bin/sh ]]; then
439 ln -sf bash "${EROOT}"/bin/sh
440 fi
441 }
442
443
444
445 1.1 app-shells/bash/bash-4.3_p25-r1.ebuild
446
447 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.3_p25-r1.ebuild?rev=1.1&view=markup
448 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.3_p25-r1.ebuild?rev=1.1&content-type=text/plain
449
450 Index: bash-4.3_p25-r1.ebuild
451 ===================================================================
452 # Copyright 1999-2014 Gentoo Foundation
453 # Distributed under the terms of the GNU General Public License v2
454 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.3_p25-r1.ebuild,v 1.1 2014/09/25 06:21:32 polynomial-c Exp $
455
456 EAPI="4"
457
458 inherit eutils flag-o-matic toolchain-funcs multilib
459
460 # Official patchlevel
461 # See ftp://ftp.cwru.edu/pub/bash/bash-4.3-patches/
462 PLEVEL=${PV##*_p}
463 MY_PV=${PV/_p*}
464 MY_PV=${MY_PV/_/-}
465 MY_P=${PN}-${MY_PV}
466 [[ ${PV} != *_p* ]] && PLEVEL=0
467 patches() {
468 local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
469 [[ ${plevel} -eq 0 ]] && return 1
470 eval set -- {1..${plevel}}
471 set -- $(printf "${pn}${pv/\.}-%03d " "$@")
472 if [[ ${opt} == -s ]] ; then
473 echo "${@/#/${DISTDIR}/}"
474 else
475 local u
476 for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
477 printf "${u}/${pn}-${pv}-patches/%s " "$@"
478 done
479 fi
480 }
481
482 # The version of readline this bash normally ships with.
483 READLINE_VER="6.3"
484
485 DESCRIPTION="The standard GNU Bourne again shell"
486 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
487 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
488 [[ ${PV} == *_rc* ]] && SRC_URI+=" ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
489
490 LICENSE="GPL-3"
491 SLOT="0"
492 #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
493 IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline vanilla"
494
495 DEPEND=">=sys-libs/ncurses-5.2-r2
496 readline? ( >=sys-libs/readline-${READLINE_VER} )
497 nls? ( virtual/libintl )"
498 RDEPEND="${DEPEND}
499 !<sys-apps/portage-2.1.6.7_p1
500 !<sys-apps/paludis-0.26.0_alpha5"
501 # we only need yacc when the .y files get patched (bash42-005)
502 DEPEND+=" virtual/yacc"
503
504 S=${WORKDIR}/${MY_P}
505
506 pkg_setup() {
507 if is-flag -malign-double ; then #7332
508 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
509 eerror "as it breaks LFS (struct stat64) on x86."
510 die "remove -malign-double from your CFLAGS mr ricer"
511 fi
512 if use bashlogger ; then
513 ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
514 ewarn "This will log ALL output you enter into the shell, you have been warned."
515 fi
516 }
517
518 src_unpack() {
519 unpack ${MY_P}.tar.gz
520 }
521
522 src_prepare() {
523 # Include official patches
524 [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
525
526 # Clean out local libs so we know we use system ones w/releases.
527 if [[ ${PV} != *_rc* ]] ; then
528 rm -rf lib/{readline,termcap}/*
529 touch lib/{readline,termcap}/Makefile.in # for config.status
530 sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
531 fi
532
533 # Avoid regenerating docs after patches #407985
534 sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
535 touch -r . doc/*
536
537 epatch "${FILESDIR}"/${PN}-4.3-compat-lvl.patch
538 epatch "${FILESDIR}"/${PN}-4.3-parse-time-keyword.patch
539 epatch "${FILESDIR}"/${PN}-4.3-append-process-segfault.patch
540 epatch "${FILESDIR}"/${PN}-4.3-term-cleanup.patch
541 epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
542
543 epatch_user
544 }
545
546 src_configure() {
547 local myconf=()
548
549 # For descriptions of these, see config-top.h
550 # bashrc/#26952 bash_logout/#90488 ssh/#24762
551 append-cppflags \
552 -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
553 -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
554 -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
555 -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
556 -DNON_INTERACTIVE_LOGIN_SHELLS \
557 -DSSH_SOURCE_BASHRC \
558 $(use bashlogger && echo -DSYSLOG_HISTORY)
559
560 # Don't even think about building this statically without
561 # reading Bug 7714 first. If you still build it statically,
562 # don't come crying to us with bugs ;).
563 #use static && export LDFLAGS="${LDFLAGS} -static"
564 use nls || myconf+=( --disable-nls )
565
566 # Historically, we always used the builtin readline, but since
567 # our handling of SONAME upgrades has gotten much more stable
568 # in the PM (and the readline ebuild itself preserves the old
569 # libs during upgrades), linking against the system copy should
570 # be safe.
571 # Exact cached version here doesn't really matter as long as it
572 # is at least what's in the DEPEND up above.
573 export ac_cv_rl_version=${READLINE_VER}
574
575 # Force linking with system curses ... the bundled termcap lib
576 # sucks bad compared to ncurses. For the most part, ncurses
577 # is here because readline needs it. But bash itself calls
578 # ncurses in one or two small places :(.
579
580 if [[ ${PV} != *_rc* ]] ; then
581 # Use system readline only with released versions.
582 myconf+=( --with-installed-readline=. )
583 fi
584
585 if use plugins; then
586 append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
587 else
588 # Disable the plugins logic by hand since bash doesn't
589 # provide a way of doing it.
590 export ac_cv_func_dl{close,open,sym}=no \
591 ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
592 sed -i \
593 -e '/LOCAL_LDFLAGS=/s:-rdynamic::' \
594 configure || die
595 fi
596 tc-export AR #444070
597 econf \
598 --docdir='$(datarootdir)'/doc/${PF} \
599 --htmldir='$(docdir)/html' \
600 --with-curses \
601 $(use_with afs) \
602 $(use_enable net net-redirections) \
603 --disable-profiling \
604 $(use_enable mem-scramble) \
605 $(use_with mem-scramble bash-malloc) \
606 $(use_enable readline) \
607 $(use_enable readline history) \
608 $(use_enable readline bang-history) \
609 "${myconf[@]}"
610 }
611
612 src_compile() {
613 emake
614
615 if use plugins ; then
616 emake -C examples/loadables all others
617 fi
618 }
619
620 src_install() {
621 local d f
622
623 default
624
625 dodir /bin
626 mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die
627 dosym bash /bin/rbash
628
629 insinto /etc/bash
630 doins "${FILESDIR}"/{bashrc,bash_logout}
631 insinto /etc/skel
632 for f in bash{_logout,_profile,rc} ; do
633 newins "${FILESDIR}"/dot-${f} .${f}
634 done
635
636 local sed_args=(
637 -e "s:#${USERLAND}#@::"
638 -e '/#@/d'
639 )
640 if ! use readline ; then
641 sed_args+=( #432338
642 -e '/^shopt -s histappend/s:^:#:'
643 -e 's:use_color=true:use_color=false:'
644 )
645 fi
646 sed -i \
647 "${sed_args[@]}" \
648 "${ED}"/etc/skel/.bashrc \
649 "${ED}"/etc/bash/bashrc || die
650
651 if use plugins ; then
652 exeinto /usr/$(get_libdir)/bash
653 doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
654 insinto /usr/include/bash-plugins
655 doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
656 fi
657
658 if use examples ; then
659 for d in examples/{functions,misc,scripts,scripts.noah,scripts.v2} ; do
660 exeinto /usr/share/doc/${PF}/${d}
661 insinto /usr/share/doc/${PF}/${d}
662 for f in ${d}/* ; do
663 if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
664 doexe ${f}
665 else
666 doins ${f}
667 fi
668 done
669 done
670 fi
671
672 doman doc/*.1
673 newdoc CWRU/changelog ChangeLog
674 dosym bash.info /usr/share/info/bashref.info
675 }
676
677 pkg_preinst() {
678 if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
679 mkdir -p "${EROOT}"/etc/bash
680 mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
681 fi
682
683 if [[ -L ${EROOT}/bin/sh ]] ; then
684 # rewrite the symlink to ensure that its mtime changes. having /bin/sh
685 # missing even temporarily causes a fatal error with paludis.
686 local target=$(readlink "${EROOT}"/bin/sh)
687 local tmp=$(emktemp "${EROOT}"/bin)
688 ln -sf "${target}" "${tmp}"
689 mv -f "${tmp}" "${EROOT}"/bin/sh
690 fi
691 }
692
693 pkg_postinst() {
694 # If /bin/sh does not exist, provide it
695 if [[ ! -e ${EROOT}/bin/sh ]] ; then
696 ln -sf bash "${EROOT}"/bin/sh
697 fi
698 }
699
700
701
702 1.1 app-shells/bash/bash-3.2_p52-r1.ebuild
703
704 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-3.2_p52-r1.ebuild?rev=1.1&view=markup
705 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-3.2_p52-r1.ebuild?rev=1.1&content-type=text/plain
706
707 Index: bash-3.2_p52-r1.ebuild
708 ===================================================================
709 # Copyright 1999-2014 Gentoo Foundation
710 # Distributed under the terms of the GNU General Public License v2
711 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-3.2_p52-r1.ebuild,v 1.1 2014/09/25 06:21:32 polynomial-c Exp $
712
713 EAPI="4"
714
715 inherit eutils flag-o-matic toolchain-funcs
716
717 # Official patchlevel
718 # See ftp://ftp.cwru.edu/pub/bash/bash-3.2-patches/
719 PLEVEL=${PV##*_p}
720 MY_PV=${PV/_p*}
721 MY_PV=${MY_PV/_/-}
722 MY_P=${PN}-${MY_PV}
723 [[ ${PV} != *_p* ]] && PLEVEL=0
724 patches() {
725 local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
726 [[ ${plevel} -eq 0 ]] && return 1
727 eval set -- {1..${plevel}}
728 set -- $(printf "${pn}${pv/\.}-%03d " "$@")
729 if [[ ${opt} == -s ]] ; then
730 echo "${@/#/${DISTDIR}/}"
731 else
732 local u
733 for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
734 printf "${u}/${pn}-${pv}-patches/%s " "$@"
735 done
736 fi
737 }
738
739 DESCRIPTION="The standard GNU Bourne again shell"
740 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
741 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
742
743 LICENSE="GPL-2"
744 SLOT="${MY_PV}"
745 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
746 IUSE="afs +net nls +readline"
747
748 DEPEND=">=sys-libs/ncurses-5.2-r2
749 readline? ( >=sys-libs/readline-6.2 )
750 nls? ( virtual/libintl )"
751 RDEPEND="${DEPEND}"
752
753 S=${WORKDIR}/${MY_P}
754
755 pkg_setup() {
756 if is-flag -malign-double ; then #7332
757 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
758 eerror "as it breaks LFS (struct stat64) on x86."
759 die "remove -malign-double from your CFLAGS mr ricer"
760 fi
761 }
762
763 src_unpack() {
764 unpack ${MY_P}.tar.gz
765 }
766
767 src_prepare() {
768 # Include official patches
769 [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
770
771 # Clean out local libs so we know we use system ones
772 rm -rf lib/{readline,termcap}/*
773 touch lib/{readline,termcap}/Makefile.in # for config.status
774 sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
775
776 epatch "${FILESDIR}"/autoconf-mktime-2.59.patch #220040
777 epatch "${FILESDIR}"/${PN}-3.1-gentoo.patch
778 epatch "${FILESDIR}"/${PN}-3.2-loadables.patch
779 epatch "${FILESDIR}"/${PN}-3.2-protos.patch
780 epatch "${FILESDIR}"/${PN}-3.2-session-leader.patch #231775
781 epatch "${FILESDIR}"/${PN}-3.2-parallel-build.patch #189671
782 epatch "${FILESDIR}"/${PN}-3.2-ldflags-for-build.patch #211947
783 epatch "${FILESDIR}"/${PN}-3.2-process-subst.patch
784 epatch "${FILESDIR}"/${PN}-3.2-ulimit.patch
785 epatch "${FILESDIR}"/${PN}-3.0-trap-fg-signals.patch
786 epatch "${FILESDIR}"/${PN}-3.2-dev-fd-test-as-user.patch #131875
787 epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
788
789 epatch_user
790 }
791
792 src_configure() {
793 local myconf=()
794
795 # Force pgrp synchronization
796 # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=81653
797 export bash_cv_pgrp_pipe=yes
798
799 # For descriptions of these, see config-top.h
800 # bashrc/#26952 bash_logout/#90488 ssh/#24762
801 append-cppflags \
802 -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
803 -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
804 -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
805 -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
806 -DNON_INTERACTIVE_LOGIN_SHELLS \
807 -DSSH_SOURCE_BASHRC
808
809 # Don't even think about building this statically without
810 # reading Bug 7714 first. If you still build it statically,
811 # don't come crying to us with bugs ;).
812 #use static && export LDFLAGS="${LDFLAGS} -static"
813 use nls || myconf+=( --disable-nls )
814
815 # Historically, we always used the builtin readline, but since
816 # our handling of SONAME upgrades has gotten much more stable
817 # in the PM (and the readline ebuild itself preserves the old
818 # libs during upgrades), linking against the system copy should
819 # be safe.
820 # Exact cached version here doesn't really matter as long as it
821 # is at least what's in the DEPEND up above.
822 export ac_cv_rl_version=6.2
823
824 # Force linking with system curses ... the bundled termcap lib
825 # sucks bad compared to ncurses. For the most part, ncurses
826 # is here because readline needs it. But bash itself calls
827 # ncurses in one or two small places :(.
828
829 tc-export AR #444070
830 econf \
831 --with-installed-readline=. \
832 --with-curses \
833 $(use_with afs) \
834 $(use_enable net net-redirections) \
835 --disable-profiling \
836 --without-gnu-malloc \
837 $(use_enable readline) \
838 $(use_enable readline history) \
839 $(use_enable readline bang-history) \
840 "${myconf[@]}"
841 }
842
843 src_install() {
844 into /
845 newbin bash bash-${SLOT}
846
847 newman doc/bash.1 bash-${SLOT}.1
848 newman doc/builtins.1 builtins-${SLOT}.1
849
850 insinto /usr/share/info
851 newins doc/bashref.info bash-${SLOT}.info
852 dosym bash-${SLOT}.info /usr/share/info/bashref-${SLOT}.info
853
854 dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
855 }
856
857
858
859 1.1 app-shells/bash/bash-4.1_p12-r1.ebuild
860
861 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.1_p12-r1.ebuild?rev=1.1&view=markup
862 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.1_p12-r1.ebuild?rev=1.1&content-type=text/plain
863
864 Index: bash-4.1_p12-r1.ebuild
865 ===================================================================
866 # Copyright 1999-2014 Gentoo Foundation
867 # Distributed under the terms of the GNU General Public License v2
868 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.1_p12-r1.ebuild,v 1.1 2014/09/25 06:21:32 polynomial-c Exp $
869
870 EAPI="4"
871
872 inherit eutils flag-o-matic toolchain-funcs
873
874 # Official patchlevel
875 # See ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/
876 PLEVEL=${PV##*_p}
877 MY_PV=${PV/_p*}
878 MY_PV=${MY_PV/_/-}
879 MY_P=${PN}-${MY_PV}
880 [[ ${PV} != *_p* ]] && PLEVEL=0
881 patches() {
882 local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
883 [[ ${plevel} -eq 0 ]] && return 1
884 eval set -- {1..${plevel}}
885 set -- $(printf "${pn}${pv/\.}-%03d " "$@")
886 if [[ ${opt} == -s ]] ; then
887 echo "${@/#/${DISTDIR}/}"
888 else
889 local u
890 for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
891 printf "${u}/${pn}-${pv}-patches/%s " "$@"
892 done
893 fi
894 }
895
896 DESCRIPTION="The standard GNU Bourne again shell"
897 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
898 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
899
900 LICENSE="GPL-3"
901 SLOT="${MY_PV}"
902 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
903 IUSE="afs mem-scramble +net nls +readline"
904
905 DEPEND=">=sys-libs/ncurses-5.2-r2
906 readline? ( >=sys-libs/readline-6.2 )
907 nls? ( virtual/libintl )"
908 RDEPEND="${DEPEND}"
909
910 S=${WORKDIR}/${MY_P}
911
912 pkg_setup() {
913 if is-flag -malign-double ; then #7332
914 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
915 eerror "as it breaks LFS (struct stat64) on x86."
916 die "remove -malign-double from your CFLAGS mr ricer"
917 fi
918 }
919
920 src_unpack() {
921 unpack ${MY_P}.tar.gz
922 }
923
924 src_prepare() {
925 # Include official patches
926 [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
927
928 # Clean out local libs so we know we use system ones
929 rm -rf lib/{readline,termcap}/*
930 touch lib/{readline,termcap}/Makefile.in # for config.status
931 sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
932
933 epatch "${FILESDIR}"/${PN}-4.1-fbsd-eaccess.patch #303411
934 sed -i '1i#define NEED_FPURGE_DECL' execute_cmd.c # needs fpurge() decl
935 epatch "${FILESDIR}"/${PN}-4.1-parallel-build.patch
936 epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
937
938 epatch_user
939 }
940
941 src_configure() {
942 local myconf=()
943
944 myconf+=( --without-lispdir ) #335896
945
946 # For descriptions of these, see config-top.h
947 # bashrc/#26952 bash_logout/#90488 ssh/#24762
948 append-cppflags \
949 -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
950 -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
951 -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
952 -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
953 -DNON_INTERACTIVE_LOGIN_SHELLS \
954 -DSSH_SOURCE_BASHRC
955
956 # Don't even think about building this statically without
957 # reading Bug 7714 first. If you still build it statically,
958 # don't come crying to us with bugs ;).
959 #use static && export LDFLAGS="${LDFLAGS} -static"
960 use nls || myconf+=( --disable-nls )
961
962 # Historically, we always used the builtin readline, but since
963 # our handling of SONAME upgrades has gotten much more stable
964 # in the PM (and the readline ebuild itself preserves the old
965 # libs during upgrades), linking against the system copy should
966 # be safe.
967 # Exact cached version here doesn't really matter as long as it
968 # is at least what's in the DEPEND up above.
969 export ac_cv_rl_version=6.2
970
971 # Force linking with system curses ... the bundled termcap lib
972 # sucks bad compared to ncurses. For the most part, ncurses
973 # is here because readline needs it. But bash itself calls
974 # ncurses in one or two small places :(.
975
976 tc-export AR #444070
977 econf \
978 --with-installed-readline=. \
979 --with-curses \
980 $(use_with afs) \
981 $(use_enable net net-redirections) \
982 --disable-profiling \
983 $(use_enable mem-scramble) \
984 $(use_with mem-scramble bash-malloc) \
985 $(use_enable readline) \
986 $(use_enable readline history) \
987 $(use_enable readline bang-history) \
988 "${myconf[@]}"
989 }
990
991 src_install() {
992 into /
993 newbin bash bash-${SLOT}
994
995 newman doc/bash.1 bash-${SLOT}.1
996 newman doc/builtins.1 builtins-${SLOT}.1
997
998 insinto /usr/share/info
999 newins doc/bashref.info bash-${SLOT}.info
1000 dosym bash-${SLOT}.info /usr/share/info/bashref-${SLOT}.info
1001
1002 dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
1003 }
1004
1005
1006
1007 1.1 app-shells/bash/bash-4.0_p39-r1.ebuild
1008
1009 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.0_p39-r1.ebuild?rev=1.1&view=markup
1010 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-shells/bash/bash-4.0_p39-r1.ebuild?rev=1.1&content-type=text/plain
1011
1012 Index: bash-4.0_p39-r1.ebuild
1013 ===================================================================
1014 # Copyright 1999-2014 Gentoo Foundation
1015 # Distributed under the terms of the GNU General Public License v2
1016 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.0_p39-r1.ebuild,v 1.1 2014/09/25 06:21:32 polynomial-c Exp $
1017
1018 EAPI="4"
1019
1020 inherit eutils flag-o-matic toolchain-funcs
1021
1022 # Official patchlevel
1023 # See ftp://ftp.cwru.edu/pub/bash/bash-4.0-patches/
1024 PLEVEL=${PV##*_p}
1025 MY_PV=${PV/_p*}
1026 MY_PV=${MY_PV/_/-}
1027 MY_P=${PN}-${MY_PV}
1028 [[ ${PV} != *_p* ]] && PLEVEL=0
1029 patches() {
1030 local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
1031 [[ ${plevel} -eq 0 ]] && return 1
1032 eval set -- {1..${plevel}}
1033 set -- $(printf "${pn}${pv/\.}-%03d " "$@")
1034 if [[ ${opt} == -s ]] ; then
1035 echo "${@/#/${DISTDIR}/}"
1036 else
1037 local u
1038 for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
1039 printf "${u}/${pn}-${pv}-patches/%s " "$@"
1040 done
1041 fi
1042 }
1043
1044 DESCRIPTION="The standard GNU Bourne again shell"
1045 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
1046 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
1047
1048 LICENSE="GPL-3"
1049 SLOT="${MY_PV}"
1050 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
1051 IUSE="afs mem-scramble +net nls +readline"
1052
1053 DEPEND=">=sys-libs/ncurses-5.2-r2
1054 readline? ( >=sys-libs/readline-6.2 )
1055 nls? ( virtual/libintl )"
1056 RDEPEND="${DEPEND}"
1057
1058 S=${WORKDIR}/${MY_P}
1059
1060 pkg_setup() {
1061 if is-flag -malign-double ; then #7332
1062 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
1063 eerror "as it breaks LFS (struct stat64) on x86."
1064 die "remove -malign-double from your CFLAGS mr ricer"
1065 fi
1066 }
1067
1068 src_unpack() {
1069 unpack ${MY_P}.tar.gz
1070 }
1071
1072 src_prepare() {
1073 # Include official patches
1074 [[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
1075
1076 # Clean out local libs so we know we use system ones
1077 rm -rf lib/{readline,termcap}/*
1078 touch lib/{readline,termcap}/Makefile.in # for config.status
1079 sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
1080
1081 epatch "${FILESDIR}"/${PN}-4.0-configure.patch #304901
1082 epatch "${FILESDIR}"/${PN}-4.x-deferred-heredocs.patch
1083 sed -i '1i#define NEED_FPURGE_DECL' execute_cmd.c # needs fpurge() decl
1084 epatch "${FILESDIR}"/${PN}-3.2-parallel-build.patch #189671
1085 epatch "${FILESDIR}"/${PN}-4.0-ldflags-for-build.patch #211947
1086 epatch "${FILESDIR}"/${PN}-4.0-negative-return.patch
1087 epatch "${FILESDIR}"/${PN}-4.0-parallel-build.patch #267613
1088 sed -i '/\.o: .*shell\.h/s:$: pathnames.h:' Makefile.in #267613
1089 epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
1090
1091 epatch_user
1092 }
1093
1094 src_configure() {
1095 local myconf=()
1096
1097 # For descriptions of these, see config-top.h
1098 # bashrc/#26952 bash_logout/#90488 ssh/#24762
1099 append-cppflags \
1100 -DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
1101 -DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
1102 -DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
1103 -DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
1104 -DNON_INTERACTIVE_LOGIN_SHELLS \
1105 -DSSH_SOURCE_BASHRC
1106
1107 # Don't even think about building this statically without
1108 # reading Bug 7714 first. If you still build it statically,
1109 # don't come crying to us with bugs ;).
1110 #use static && export LDFLAGS="${LDFLAGS} -static"
1111 use nls || myconf+=( --disable-nls )
1112
1113 # Historically, we always used the builtin readline, but since
1114 # our handling of SONAME upgrades has gotten much more stable
1115 # in the PM (and the readline ebuild itself preserves the old
1116 # libs during upgrades), linking against the system copy should
1117 # be safe.
1118 # Exact cached version here doesn't really matter as long as it
1119 # is at least what's in the DEPEND up above.
1120 export ac_cv_rl_version=6.2
1121
1122 # Force linking with system curses ... the bundled termcap lib
1123 # sucks bad compared to ncurses. For the most part, ncurses
1124 # is here because readline needs it. But bash itself calls
1125 # ncurses in one or two small places :(.
1126
1127 tc-export AR #444070
1128 econf \
1129 --with-installed-readline=. \
1130 --with-curses \
1131 $(use_with afs) \
1132 $(use_enable net net-redirections) \
1133 --disable-profiling \
1134 $(use_enable mem-scramble) \
1135 $(use_with mem-scramble bash-malloc) \
1136 $(use_enable readline) \
1137 $(use_enable readline history) \
1138 $(use_enable readline bang-history) \
1139 "${myconf[@]}"
1140 }
1141
1142 src_install() {
1143 into /
1144 newbin bash bash-${SLOT}
1145
1146 newman doc/bash.1 bash-${SLOT}.1
1147 newman doc/builtins.1 builtins-${SLOT}.1
1148
1149 insinto /usr/share/info
1150 newins doc/bashref.info bash-${SLOT}.info
1151 dosym bash-${SLOT}.info /usr/share/info/bashref-${SLOT}.info
1152
1153 dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
1154 }