Gentoo Archives: gentoo-commits

From: "Hans de Graaff (graaff)" <graaff@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-lang/ruby: ruby-2.0.0_p353-r2.ebuild ChangeLog
Date: Sun, 23 Feb 2014 10:24:45
Message-Id: 20140223102438.D088D2004C@flycatcher.gentoo.org
1 graaff 14/02/23 10:24:38
2
3 Modified: ChangeLog
4 Added: ruby-2.0.0_p353-r2.ebuild
5 Log:
6 Backport support for uclibc, fixing bug 484534.
7
8 (Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key 0x8883FA56A308A8D7!)
9
10 Revision Changes Path
11 1.640 dev-lang/ruby/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ruby/ChangeLog?rev=1.640&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ruby/ChangeLog?rev=1.640&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ruby/ChangeLog?r1=1.639&r2=1.640
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/dev-lang/ruby/ChangeLog,v
20 retrieving revision 1.639
21 retrieving revision 1.640
22 diff -u -r1.639 -r1.640
23 --- ChangeLog 26 Jan 2014 13:06:16 -0000 1.639
24 +++ ChangeLog 23 Feb 2014 10:24:38 -0000 1.640
25 @@ -1,6 +1,11 @@
26 # ChangeLog for dev-lang/ruby
27 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/ruby/ChangeLog,v 1.639 2014/01/26 13:06:16 ago Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/ruby/ChangeLog,v 1.640 2014/02/23 10:24:38 graaff Exp $
30 +
31 +*ruby-2.0.0_p353-r2 (23 Feb 2014)
32 +
33 + 23 Feb 2014; Hans de Graaff <graaff@g.o> +ruby-2.0.0_p353-r2.ebuild:
34 + Backport support for uclibc, fixing bug 484534.
35
36 26 Jan 2014; Agostino Sarubbo <ago@g.o> ruby-2.0.0_p353.ebuild:
37 Stable for alpha, wrt bug #483254
38
39
40
41 1.1 dev-lang/ruby/ruby-2.0.0_p353-r2.ebuild
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ruby/ruby-2.0.0_p353-r2.ebuild?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lang/ruby/ruby-2.0.0_p353-r2.ebuild?rev=1.1&content-type=text/plain
45
46 Index: ruby-2.0.0_p353-r2.ebuild
47 ===================================================================
48 # Copyright 1999-2014 Gentoo Foundation
49 # Distributed under the terms of the GNU General Public License v2
50 # $Header: /var/cvsroot/gentoo-x86/dev-lang/ruby/ruby-2.0.0_p353-r2.ebuild,v 1.1 2014/02/23 10:24:38 graaff Exp $
51
52 EAPI=5
53
54 #PATCHSET=1
55
56 inherit autotools eutils flag-o-matic multilib versionator
57
58 RUBYPL=$(get_version_component_range 4)
59
60 MY_P="${PN}-$(get_version_component_range 1-3)-${RUBYPL:-0}"
61 S=${WORKDIR}/${MY_P}
62
63 SLOT=$(get_version_component_range 1-2)
64 MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
65 RUBYVERSION=2.0.0
66
67 if [[ -n ${PATCHSET} ]]; then
68 if [[ ${PVR} == ${PV} ]]; then
69 PATCHSET="${PV}-r0.${PATCHSET}"
70 else
71 PATCHSET="${PVR}.${PATCHSET}"
72 fi
73 else
74 PATCHSET="${PVR}"
75 fi
76
77 DESCRIPTION="An object-oriented scripting language"
78 HOMEPAGE="http://www.ruby-lang.org/"
79 SRC_URI="mirror://ruby/2.0/${MY_P}.tar.bz2
80 http://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
81
82 LICENSE="|| ( Ruby-BSD BSD-2 )"
83 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
84 IUSE="berkdb debug doc examples gdbm ipv6 +rdoc rubytests socks5 ssl tk xemacs ncurses +readline"
85
86 RDEPEND="
87 berkdb? ( sys-libs/db )
88 gdbm? ( sys-libs/gdbm )
89 ssl? ( dev-libs/openssl )
90 socks5? ( >=net-proxy/dante-1.1.13 )
91 tk? (
92 <dev-lang/tcl-8.6[threads]
93 <dev-lang/tk-8.6[threads]
94 )
95 ncurses? ( sys-libs/ncurses )
96 readline? ( sys-libs/readline )
97 dev-libs/libyaml
98 virtual/libffi
99 sys-libs/zlib
100 >=app-admin/eselect-ruby-20100402
101 !<dev-ruby/rdoc-3.9.4
102 !<dev-ruby/rubygems-1.8.10-r1"
103
104 DEPEND="${RDEPEND}"
105 PDEPEND="
106 >=dev-ruby/rubygems-2.0.2[ruby_targets_ruby20]
107 >=dev-ruby/json-1.7.7[ruby_targets_ruby20]
108 >=dev-ruby/rake-0.9.6[ruby_targets_ruby20]
109 rdoc? ( >=dev-ruby/rdoc-4.0.0[ruby_targets_ruby20] )
110 xemacs? ( app-xemacs/ruby-modes )"
111
112 src_prepare() {
113 EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
114 epatch "${WORKDIR}/patches"
115
116 # We can no longer unbundle all of rake because rubygems now depends
117 # on this. We leave the actual rake code around to bootstrap
118 # rubygems, but remove the bits that would cause a file collision.
119 einfo "Unbundling gems..."
120 cd "$S"
121 rm -r \
122 {bin,lib}/rake lib/rake.rb man/rake.1 \
123 bin/gem || die "removal failed"
124
125 # Fix a hardcoded lib path in configure script
126 sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
127 configure.in || die "sed failed"
128
129 eautoreconf
130 }
131
132 src_configure() {
133 local myconf=
134
135 # -fomit-frame-pointer makes ruby segfault, see bug #150413.
136 filter-flags -fomit-frame-pointer
137 # In many places aliasing rules are broken; play it safe
138 # as it's risky with newer compilers to leave it as it is.
139 append-flags -fno-strict-aliasing
140 # SuperH needs this
141 use sh && append-flags -mieee
142
143 # Socks support via dante
144 if use socks5 ; then
145 # Socks support can't be disabled as long as SOCKS_SERVER is
146 # set and socks library is present, so need to unset
147 # SOCKS_SERVER in that case.
148 unset SOCKS_SERVER
149 fi
150
151 # Increase GC_MALLOC_LIMIT if set (default is 8000000)
152 if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
153 append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
154 fi
155
156 # ipv6 hack, bug 168939. Needs --enable-ipv6.
157 use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
158
159 # if use libedit; then
160 # einfo "Using libedit to provide readline extension"
161 # myconf="${myconf} --enable-libedit --with-readline"
162 # elif use readline; then
163 # einfo "Using readline to provide readline extension"
164 # myconf="${myconf} --with-readline"
165 # else
166 # myconf="${myconf} --without-readline"
167 # fi
168 myconf="${myconf} $(use_with readline)"
169
170 INSTALL="${EPREFIX}/usr/bin/install -c" econf \
171 --program-suffix=${MY_SUFFIX} \
172 --with-soname=ruby${MY_SUFFIX} \
173 --docdir=${EPREFIX}/usr/share/doc/${P} \
174 --enable-shared \
175 --enable-pthread \
176 --enable-psych \
177 --disable-rpath \
178 $(use_enable socks5 socks) \
179 $(use_enable doc install-doc) \
180 --enable-ipv6 \
181 $(use_enable debug) \
182 $(use_with berkdb dbm) \
183 $(use_with gdbm) \
184 $(use_with ssl openssl) \
185 $(use_with tk) \
186 $(use_with ncurses curses) \
187 ${myconf} \
188 --enable-option-checking=no \
189 || die "econf failed"
190 }
191
192 src_compile() {
193 emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
194 }
195
196 src_test() {
197 emake -j1 V=1 test || die "make test failed"
198
199 elog "Ruby's make test has been run. Ruby also ships with a make check"
200 elog "that cannot be run until after ruby has been installed."
201 elog
202 if use rubytests; then
203 elog "You have enabled rubytests, so they will be installed to"
204 elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
205 elog "than root, and you must place them into a writeable directory."
206 elog "Then call: "
207 elog
208 elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
209 else
210 elog "Enable the rubytests USE flag to install the make check tests"
211 fi
212 }
213
214 src_install() {
215 # Remove the remaining bundled gems. We do this late in the process
216 # since they are used during the build to e.g. create the
217 # documentation.
218 rm -rf ext/json || die
219
220 # Ruby is involved in the install process, we don't want interference here.
221 unset RUBYOPT
222
223 local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
224
225 LD_LIBRARY_PATH="${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
226 RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
227 for d in $(find "${S}/ext" -type d) ; do
228 RUBYLIB="${RUBYLIB}:$d"
229 done
230 export LD_LIBRARY_PATH RUBYLIB
231
232 emake V=1 DESTDIR="${D}" install || die "make install failed"
233
234 # Remove installed rubygems copy
235 rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
236 rm -r "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
237 rm -r "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
238
239 if use doc; then
240 make DESTDIR="${D}" install-doc || die "make install-doc failed"
241 fi
242
243 if use examples; then
244 insinto /usr/share/doc/${PF}
245 doins -r sample
246 fi
247
248 dosym "libruby${MY_SUFFIX}$(get_libname ${PV%_*})" \
249 "/usr/$(get_libdir)/libruby$(get_libname ${PV%.*})"
250 dosym "libruby${MY_SUFFIX}$(get_libname ${PV%_*})" \
251 "/usr/$(get_libdir)/libruby$(get_libname ${PV%_*})"
252
253 dodoc ChangeLog NEWS doc/NEWS* README* || die
254
255 if use rubytests; then
256 pushd test
257 insinto /usr/share/${PN}-${SLOT}/test
258 doins -r .
259 popd
260 fi
261 }
262
263 pkg_postinst() {
264 if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
265 eselect ruby set ruby${MY_SUFFIX}
266 fi
267
268 elog
269 elog "To switch between available Ruby profiles, execute as root:"
270 elog "\teselect ruby set ruby(18|19|...)"
271 elog
272 }
273
274 pkg_postrm() {
275 eselect ruby cleanup
276 }