/[gentoo-x86]/app-shells/bash/bash-3.2_p51.ebuild
Gentoo

Contents of /app-shells/bash/bash-3.2_p51.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations) (download)
Mon May 16 10:36:26 2011 UTC (3 years, 4 months ago) by nyhm
Branch: MAIN
Changes since 1.2: +4 -2 lines
Rewrite /bin/sh symlink atomically, bug #367241

(Portage version: 2.2.0_alpha33/cvs/Linux x86_64)

1 # Copyright 1999-2011 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-3.2_p51.ebuild,v 1.2 2011/02/06 17:21:49 vapier Exp $
4
5 EAPI=1
6
7 inherit eutils flag-o-matic toolchain-funcs multilib
8
9 # Official patchlevel
10 # See ftp://ftp.cwru.edu/pub/bash/bash-3.2-patches/
11 PLEVEL=${PV##*_p}
12 MY_PV=${PV/_p*}
13 MY_P=${PN}-${MY_PV}
14 READLINE_VER=5.2
15 READLINE_PLEVEL=0 # both readline patches are also released as bash patches
16
17 DESCRIPTION="The standard GNU Bourne again shell"
18 HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
19 SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz
20 ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz
21 $(for ((i=1; i<=PLEVEL; i++)); do
22 printf 'ftp://ftp.cwru.edu/pub/bash/bash-%s-patches/bash%s-%03d\n' \
23 ${MY_PV} ${MY_PV/\.} ${i}
24 printf 'mirror://gnu/bash/bash-%s-patches/bash%s-%03d\n' \
25 ${MY_PV} ${MY_PV/\.} ${i}
26 done)
27 $(for ((i=1; i<=READLINE_PLEVEL; i++)); do
28 printf 'ftp://ftp.cwru.edu/pub/bash/readline-%s-patches/readline%s-%03d\n' \
29 ${READLINE_VER} ${READLINE_VER/\.} ${i}
30 printf 'mirror://gnu/bash/readline-%s-patches/readline%s-%03d\n' \
31 ${READLINE_VER} ${READLINE_VER/\.} ${i}
32 done)"
33
34 LICENSE="GPL-2"
35 SLOT="0"
36 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
37 IUSE="afs bashlogger +net nls plugins vanilla"
38
39 DEPEND=">=sys-libs/ncurses-5.2-r2
40 nls? ( virtual/libintl )"
41 RDEPEND="${DEPEND}
42 !<sys-apps/portage-2.1.5
43 !<sys-apps/paludis-0.26.0_alpha5"
44
45 S=${WORKDIR}/${MY_P}
46
47 pkg_setup() {
48 if is-flag -malign-double ; then #7332
49 eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
50 eerror "as it breaks LFS (struct stat64) on x86."
51 die "remove -malign-double from your CFLAGS mr ricer"
52 fi
53 }
54
55 src_unpack() {
56 unpack ${MY_P}.tar.gz
57 cd "${S}"
58
59 # Include official patches
60 local i
61 for ((i=1; i<=PLEVEL; i++)); do
62 epatch "${DISTDIR}"/${PN}${MY_PV/\.}-$(printf '%03d' ${i})
63 done
64 cd lib/readline
65 for ((i=1; i<=READLINE_PLEVEL; i++)); do
66 epatch "${DISTDIR}"/readline${READLINE_VER/\.}-$(printf '%03d' ${i})
67 done
68 cd ../..
69
70 if ! use vanilla ; then
71 epatch "${FILESDIR}"/autoconf-mktime-2.59.patch #220040
72 epatch "${FILESDIR}"/${PN}-3.1-gentoo.patch
73 epatch "${FILESDIR}"/${PN}-3.2-loadables.patch
74 epatch "${FILESDIR}"/${PN}-3.2-protos.patch
75 epatch "${FILESDIR}"/${PN}-3.2-session-leader.patch #231775
76 epatch "${FILESDIR}"/${PN}-3.2-parallel-build.patch #189671
77 epatch "${FILESDIR}"/${PN}-3.2-ldflags-for-build.patch #211947
78
79 # Fix process substitution on BSD.
80 epatch "${FILESDIR}"/${PN}-3.2-process-subst.patch
81
82 epatch "${FILESDIR}"/${PN}-3.2-ulimit.patch
83 # Don't barf on handled signals in scripts
84 epatch "${FILESDIR}"/${PN}-3.0-trap-fg-signals.patch
85 epatch "${FILESDIR}"/${PN}-3.2-dev-fd-test-as-user.patch #131875
86 # Log bash commands to syslog #91327
87 if use bashlogger ; then
88 echo
89 ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
90 ewarn "This will log ALL output you enter into the shell, you have been warned."
91 ebeep
92 epause
93 epatch "${FILESDIR}"/${PN}-3.1-bash-logger.patch
94 fi
95 fi
96
97 epatch "${FILESDIR}"/${PN}-3.0-configs.patch
98 }
99
100 src_compile() {
101 local myconf=
102
103 # Always use the buildin readline, else if we update readline
104 # bash gets borked as readline is usually not binary compadible
105 # between minor versions.
106 #myconf="${myconf} $(use_with !readline installed-readline)"
107 myconf="${myconf} --without-installed-readline"
108
109 # Don't even think about building this statically without
110 # reading Bug 7714 first. If you still build it statically,
111 # don't come crying to use with bugs ;).
112 #use static && export LDFLAGS="${LDFLAGS} -static"
113 use nls || myconf="${myconf} --disable-nls"
114
115 # Force linking with system curses ... the bundled termcap lib
116 # sucks bad compared to ncurses
117 myconf="${myconf} --with-curses"
118
119 # Default path is to use /usr/local/..... regardless. This little
120 # magic will set the default path to /usr/..... and keep us from
121 # worrying about the rest of the path getting out of sync with the
122 # ebuild code.
123 eval $(echo export $(ac_default_prefix=/usr; eval echo $(grep DEBUGGER_START_FILE= configure)))
124
125 use plugins && append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
126 econf \
127 $(use_with afs) \
128 $(use_enable net net-redirections) \
129 --disable-profiling \
130 --without-gnu-malloc \
131 ${myconf} || die
132 emake || die "make failed"
133
134 if use plugins ; then
135 emake -C examples/loadables all others || die
136 fi
137 }
138
139 src_install() {
140 emake install DESTDIR="${D}" || die
141
142 dodir /bin
143 mv "${D}"/usr/bin/bash "${D}"/bin/ || die
144 dosym bash /bin/rbash
145
146 insinto /etc/bash
147 doins "${FILESDIR}"/{bashrc,bash_logout}
148 insinto /etc/skel
149 for f in bash{_logout,_profile,rc} ; do
150 newins "${FILESDIR}"/dot-${f} .${f}
151 done
152
153 sed -i -e "s:#${USERLAND}#@::" "${D}"/etc/skel/.bashrc "${D}"/etc/bash/bashrc
154 sed -i -e '/#@/d' "${D}"/etc/skel/.bashrc "${D}"/etc/bash/bashrc
155
156 if use plugins ; then
157 exeinto /usr/$(get_libdir)/bash
158 doexe $(echo examples/loadables/*.o | sed 's:\.o::g') || die
159 fi
160
161 doman doc/*.1
162 dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
163 dosym bash.info /usr/share/info/bashref.info
164 }
165
166 pkg_preinst() {
167 if [[ -e ${ROOT}/etc/bashrc ]] && [[ ! -d ${ROOT}/etc/bash ]] ; then
168 mkdir -p "${ROOT}"/etc/bash
169 mv -f "${ROOT}"/etc/bashrc "${ROOT}"/etc/bash/
170 fi
171
172 if [[ -L ${ROOT}/bin/sh ]]; then
173 # rewrite the symlink to ensure that its mtime changes. having /bin/sh
174 # missing even temporarily causes a fatal error with paludis.
175 local target=$(readlink "${ROOT}"/bin/sh)
176 local tmp=$(emktemp "${ROOT}"/bin)
177 ln -sf "${target}" "${tmp}"
178 mv -f "${tmp}" "${ROOT}"/bin/sh
179 fi
180 }
181
182 pkg_postinst() {
183 # If /bin/sh does not exist, provide it
184 if [[ ! -e ${ROOT}/bin/sh ]]; then
185 ln -sf bash "${ROOT}"/bin/sh
186 fi
187 }

  ViewVC Help
Powered by ViewVC 1.1.20