/[packages]/cauldron/ruby/current/SPECS/ruby.spec
ViewVC logotype

Contents of /cauldron/ruby/current/SPECS/ruby.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 293395 - (show annotations) (download)
Thu Sep 13 01:43:53 2012 UTC (11 years, 7 months ago) by fwang
File size: 15221 byte(s)
br ruby when not doing bootstrap build
1 %define subver 1.9
2 %define rubyapi 1.9.1
3 %define rubyver 1.9.3
4 %define patchversion p194
5 %define rel 9
6
7 %define libname %mklibname ruby %{subver}
8
9 %define ruby_libdir %{_datadir}/%{name}
10 %define ruby_libarchdir %{_libdir}/%{name}
11
12 # This is the local lib/arch and should not be used for packaging.
13 %define ruby_sitelibdir %{_datadir}/ruby/site_ruby
14 %define ruby_sitearchdir %{_libdir}/ruby/site_ruby
15
16 # This is the general location for libs/archs compatible with all
17 # or most of the Ruby versions available in the Fedora repositories.
18 %define ruby_vendorlibdir %{_datadir}/ruby/vendor_ruby
19 %define ruby_vendorarchdir %{_libdir}/ruby/vendor_ruby
20
21 # The RubyGems library has to stay out of Ruby directory three, since the
22 # RubyGems should be share by all Ruby implementations.
23 %define rubygems_dir %{_datadir}/ruby/gems
24 %define rubygems_version 1.8.23
25
26 %define bootstrap 0
27
28 Summary: Object Oriented Script Language
29 Name: ruby
30 Epoch: 1
31 Version: %{rubyver}.%{patchversion}
32 Release: %mkrel %rel
33 License: Ruby or GPLv2
34 Group: Development/Ruby
35 BuildRequires: autoconf
36 BuildRequires: byacc
37 BuildRequires: doxygen
38 BuildRequires: ncurses-devel
39 BuildRequires: readline-devel
40 BuildRequires: tcl-devel tk-devel
41 BuildRequires: db-devel
42 BuildRequires: gdbm-devel >= 1.8.3
43 BuildRequires: openssl-devel
44 BuildRequires: zlib-devel
45 BuildRequires: libffi-devel
46 BuildRequires: yaml-devel
47 BuildRequires: rpm-mageia-setup >= 1.158
48 Obsoletes: ruby-rexml
49 Provides: ruby-rexml
50 # explicit file provides (since such requires are automatically added by find-requires)
51 Provides: /usr/bin/ruby
52 Provides: ruby(abi) = %subver
53
54 Source0: http://ftp.ruby-lang.org/pub/ruby/%{subver}/ruby-%{rubyver}-%{patchversion}.tar.bz2
55 Source3: ruby.macros
56 URL: http://www.ruby-lang.org/
57 %if !%bootstrap
58 Requires: rubygems >= %{rubygems_version}
59 BuildRequires: ruby
60 %endif
61
62 # == FEDORA PATCHES BEGINS ==
63 # http://redmine.ruby-lang.org/issues/5231
64 Patch0: ruby-1.9.3-disable-versioned-paths.patch
65 # TODO: Should be submitted upstream?
66 Patch1: ruby-1.9.3-arch-specific-dir.patch
67 # http://redmine.ruby-lang.org/issues/5281
68 Patch2: ruby-1.9.3-added-site-and-vendor-arch-flags.patch
69 # http://redmine.ruby-lang.org/issues/5465
70 Patch4: ruby-1.9.3-fix-s390x-build.patch
71 # Fix the uninstaller, so that it doesn't say that gem doesn't exist
72 # when it exists outside of the GEM_HOME (already fixed in the upstream)
73 Patch5: ruby-1.9.3-rubygems-1.8.11-uninstaller.patch
74 # http://redmine.ruby-lang.org/issues/5135 - see comment 29
75 Patch6: ruby-1.9.3-webrick-test-fix.patch
76 # Already fixed upstream:
77 # https://github.com/ruby/ruby/commit/f212df564a4e1025f9fb019ce727022a97bfff53
78 Patch7: ruby-1.9.3-bignum-test-fix.patch
79 # Allows to install RubyGems into custom directory, outside of Ruby's tree.
80 # http://redmine.ruby-lang.org/issues/5617
81 Patch8: ruby-1.9.3-custom-rubygems-location.patch
82 # Add support for installing binary extensions according to FHS.
83 # https://github.com/rubygems/rubygems/issues/210
84 Patch9: rubygems-1.8.11-binary-extensions.patch
85 # == FEDORA PATCHES ENDS ==
86
87 %package -n %{libname}
88 Summary: Libraries necessary to run Ruby
89 Group: Development/Ruby
90
91 %package doc
92 Summary: Documentation for the powerful language Ruby
93 Group: Development/Ruby
94 BuildArch: noarch
95
96 %package devel
97 Summary: Development file for the powerful language Ruby
98 Group: Development/Ruby
99 Requires: %{name} = %{epoch}:%{version}
100 Requires: %{libname} = %{epoch}:%{version}
101
102 %package tk
103 Summary: Tk extension for the powerful language Ruby
104 Group: Development/Ruby
105 Requires: %{name} = %{epoch}:%{version}
106
107 %package RubyGems
108 Summary: The Ruby standard for packaging ruby libraries
109 Group: Development/Ruby
110 Version: %{rubygems_version}
111 Requires: ruby(abi) = %{subver}
112 Provides: gem = %{rubygems_version}
113 Provides: rubygems = %{rubygems_version}
114 Provides: ruby(rubygems) = %{rubygems_version}
115 Conflicts: rpm-mageia-setup-build < 1.159
116 BuildArch: noarch
117
118 %define rake_ver 0.9.2.2
119 %package rake
120 Summary: Simple ruby build program with capabilities similar to make
121 Group: Development/Ruby
122 Version: %{rake_ver}
123 Requires: ruby(abi) = %{subver}
124 Provides: rubygem(rake) = %{rake_ver}
125 BuildArch: noarch
126
127 %define minitest_ver 2.5.1
128 %package minitest
129 Summary: Minitest provides a complete suite of testing facilities
130 Group: Development/Ruby
131 Version: %{minitest_ver}
132 License: MIT
133 Requires: ruby(abi) = %{subver}
134 Requires: ruby(rubygems) >= %{rubygems_version}
135 Provides: rubygem(minitest) = %{minitest_ver}
136 BuildArch: noarch
137
138 %define json_ver 1.5.4
139 %package json
140 Summary: This is a JSON implementation as a Ruby extension in C
141 Group: Development/Ruby
142 Version: %{json_ver}
143 License: Ruby or GPLv2
144 Requires: ruby(abi) = %{subver}
145 Requires: ruby(rubygems) >= %{rubygems_version}
146 Provides: rubygem(json) = %{json_ver}
147
148 %define rdoc_ver 3.9.4
149 %package rdoc
150 Summary: A tool to generate HTML and command-line documentation for Ruby projects
151 Group: Development/Ruby
152 Version: %{rdoc_ver}
153 License: GPLv2 and Ruby and MIT
154 Requires: ruby(abi) = %{subver}
155 Requires: ruby(rubygems) >= %{rubygems_version}
156 Requires: ruby(irb) = %{version}
157 Provides: rdoc = %{rdoc_ver}
158 Provides: ri = %{rdoc_ver}
159 BuildArch: noarch
160
161 %package irb
162 Summary: The Interactive Ruby
163 Group: Development/Ruby
164 Provides: irb = %{version}-%{release}
165 Provides: ruby(irb) = %{version}-%{release}
166 BuildArch: noarch
167
168 %package bigdecimal
169 Summary: BigDecimal provides arbitrary-precision floating point decimal arithmetic
170 Group: Development/Ruby
171 Version: 1.1.0
172 License: GPL+ or Artistic
173 Requires: ruby(abi) = %{subver}
174 Requires: ruby(rubygems) >= %{rubygems_version}
175 Provides: rubygem(bigdecimal) = 1.1.0
176
177 %package io-console
178 Summary: IO/Console is a simple console utilizing library
179 Group: Development/Ruby
180 Version: 0.3
181 Requires: ruby(abi) = %{subver}
182 Requires: ruby(rubygems) >= %{rubygems_version}
183 Provides: rubygem(io-console) = 0.3
184
185 %description
186 Ruby is the interpreted scripting language for quick and
187 easy object-oriented programming. It has many features to
188 process text files and to do system management tasks (as in
189 Perl). It is simple, straight-forward, and extensible.
190
191 %description doc
192 Ruby is the interpreted scripting language for quick and
193 easy object-oriented programming. It has many features to
194 process text files and to do system management tasks (as in
195 Perl). It is simple, straight-forward, and extensible.
196
197 This package contains the Ruby's documentation
198
199 %description -n %{libname}
200 This package includes the libruby, necessary to run Ruby.
201
202 %description devel
203 Ruby is the interpreted scripting language for quick and
204 easy object-oriented programming. It has many features to
205 process text files and to do system management tasks (as in
206 Perl). It is simple, straight-forward, and extensible.
207
208 This package contains the Ruby's devel files.
209
210 %description tk
211 Ruby is the interpreted scripting language for quick and
212 easy object-oriented programming. It has many features to
213 process text files and to do system management tasks (as in
214 Perl). It is simple, straight-forward, and extensible.
215
216 This package contains the Tk extension for Ruby.
217
218 %description RubyGems
219 RubyGems is the Ruby standard for publishing and managing third party
220 libraries.
221
222 %description rake
223 Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
224 specified in standard Ruby syntax.
225
226 %description rdoc
227 RDoc produces HTML and command-line documentation for Ruby projects. RDoc
228 includes the 'rdoc' and 'ri' tools for generating and displaying online
229 documentation.
230
231 %description json
232 This is a implementation of the JSON specification according to RFC 4627.
233 You can think of it as a low fat alternative to XML, if you want to store
234 data to disk or transmit it over a network rather than use a verbose
235 markup language.
236
237 %description minitest
238 minitest/unit is a small and incredibly fast unit testing framework.
239
240 minitest/spec is a functionally complete spec engine.
241
242 minitest/benchmark is an awesome way to assert the performance of your
243 algorithms in a repeatable manner.
244
245 minitest/mock by Steven Baker, is a beautifully tiny mock object
246 framework.
247
248 minitest/pride shows pride in testing and adds coloring to your test
249 output.
250
251 %description irb
252 The irb is acronym for Interactive Ruby. It evaluates ruby expression
253 from the terminal.
254
255 %description bigdecimal
256 Ruby provides built-in support for arbitrary precision integer arithmetic.
257 For example:
258
259 42**13 -> 1265437718438866624512
260
261 BigDecimal provides similar support for very large or very accurate floating
262 point numbers. Decimal arithmetic is also useful for general calculation,
263 because it provides the correct answers people expect–whereas normal binary
264 floating point arithmetic often introduces subtle errors because of the
265 conversion between base 10 and base 2.
266
267 %description io-console
268 IO/Console provides very simple and portable access to console. It doesn't
269 provide higher layer features, such like curses and readline.
270
271 %prep
272 %setup -q -n ruby-%{rubyver}-%{patchversion}
273 %apply_patches
274
275 %build
276 autoconf
277 CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'`
278 %configure2_5x --enable-shared --disable-rpath --enable-pthread --disable-versioned-paths \
279 --with-rubylibprefix='%{ruby_libdir}' \
280 --with-archdir='%{ruby_libarchdir}' \
281 --with-sitedir='%{ruby_sitelibdir}' \
282 --with-sitearchdir='%{ruby_sitearchdir}' \
283 --with-vendordir='%{ruby_vendorlibdir}' \
284 --with-vendorarchdir='%{ruby_vendorarchdir}' \
285 --with-rubyhdrdir='%{_includedir}' \
286 %if %bootstrap
287 --disable-rubygems \
288 %else
289 --with-rubygemsdir='%{rubygems_dir}' \
290 %endif
291
292 %make
293
294 %install
295 %makeinstall_std install-doc
296
297 install -d %buildroot%{_datadir}/emacs/site-lisp
298 cp -a misc/ruby-mode.el %buildroot%{_datadir}/emacs/site-lisp
299
300 install -d %buildroot%{_sysconfdir}/emacs/site-start.d
301 cat <<EOF >%buildroot%{_sysconfdir}/emacs/site-start.d/%{name}.el
302 (autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t)
303 (add-to-list 'auto-mode-alist '("\\\\.rb$" . ruby-mode))
304 (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode))
305 EOF
306
307 # Install the rpm macros
308 mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d
309 cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d
310
311 %check
312 make test
313
314 %files
315 %{_bindir}/erb
316 %{_bindir}/rake
317 %{_bindir}/rdoc
318 %{_bindir}/ri
319 %{_bindir}/ruby
320 %{_bindir}/testrb
321 %dir %{ruby_libdir}
322 %{ruby_libdir}/*.rb
323 %exclude %{ruby_libdir}/irb.rb
324 %exclude %{ruby_libdir}/multi-tk.rb
325 %exclude %{ruby_libdir}/remote-tk.rb
326 %exclude %{ruby_libdir}/tcltk.rb
327 %exclude %{ruby_libdir}/tk.rb
328 %exclude %{ruby_libdir}/tkafter.rb
329 %exclude %{ruby_libdir}/tkbgerror.rb
330 %exclude %{ruby_libdir}/tkcanvas.rb
331 %exclude %{ruby_libdir}/tkclass.rb
332 %exclude %{ruby_libdir}/tkconsole.rb
333 %exclude %{ruby_libdir}/tkdialog.rb
334 %exclude %{ruby_libdir}/tkentry.rb
335 %exclude %{ruby_libdir}/tkfont.rb
336 %exclude %{ruby_libdir}/tkmacpkg.rb
337 %exclude %{ruby_libdir}/tkmenubar.rb
338 %exclude %{ruby_libdir}/tkmngfocus.rb
339 %exclude %{ruby_libdir}/tkpalette.rb
340 %exclude %{ruby_libdir}/tkscrollbox.rb
341 %exclude %{ruby_libdir}/tktext.rb
342 %exclude %{ruby_libdir}/tkvirtevent.rb
343 %exclude %{ruby_libdir}/tkwinpkg.rb
344 %{ruby_libdir}/cgi
345 %{ruby_libdir}/date
346 %{ruby_libdir}/digest
347 %{ruby_libdir}/dl
348 %{ruby_libdir}/drb
349 %{ruby_libdir}/fiddle
350 %{ruby_libdir}/matrix
351 %{ruby_libdir}/net
352 %{ruby_libdir}/openssl
353 %{ruby_libdir}/optparse
354 %{ruby_libdir}/psych
355 %{ruby_libdir}/racc
356 %{ruby_libdir}/rbconfig
357 %{ruby_libdir}/rexml
358 %{ruby_libdir}/rinda
359 %{ruby_libdir}/ripper
360 %{ruby_libdir}/rss
361 %{ruby_libdir}/shell
362 %{ruby_libdir}/syck
363 %{ruby_libdir}/test
364 %{ruby_libdir}/uri
365 %{ruby_libdir}/webrick
366 %{ruby_libdir}/xmlrpc
367 %{ruby_libdir}/yaml
368 %dir %{ruby_libarchdir}
369 %{ruby_libarchdir}/bigdecimal.so
370 %{ruby_libarchdir}/continuation.so
371 %{ruby_libarchdir}/coverage.so
372 %{ruby_libarchdir}/curses.so
373 %{ruby_libarchdir}/date_core.so
374 %{ruby_libarchdir}/dbm.so
375 %dir %{ruby_libarchdir}/digest
376 %{ruby_libarchdir}/digest.so
377 %{ruby_libarchdir}/digest/*.so
378 %dir %{ruby_libarchdir}/dl
379 %{ruby_libarchdir}/dl.so
380 %{ruby_libarchdir}/dl/*.so
381 %dir %{ruby_libarchdir}/enc
382 %{ruby_libarchdir}/enc/*.so
383 %dir %{ruby_libarchdir}/enc/trans
384 %{ruby_libarchdir}/enc/trans/*.so
385 %{ruby_libarchdir}/etc.so
386 %{ruby_libarchdir}/fcntl.so
387 %{ruby_libarchdir}/fiber.so
388 %{ruby_libarchdir}/fiddle.so
389 %{ruby_libarchdir}/gdbm.so
390 %{ruby_libarchdir}/iconv.so
391 %dir %{ruby_libarchdir}/io
392 %{ruby_libarchdir}/io/nonblock.so
393 %{ruby_libarchdir}/io/wait.so
394 %dir %{ruby_libarchdir}/mathn
395 %{ruby_libarchdir}/mathn/*.so
396 %{ruby_libarchdir}/nkf.so
397 %{ruby_libarchdir}/objspace.so
398 %{ruby_libarchdir}/openssl.so
399 %{ruby_libarchdir}/pathname.so
400 %{ruby_libarchdir}/psych.so
401 %{ruby_libarchdir}/pty.so
402 %dir %{ruby_libarchdir}/racc
403 %{ruby_libarchdir}/racc/*.so
404 %{ruby_libarchdir}/rbconfig.rb
405 %{ruby_libarchdir}/readline.so
406 %{ruby_libarchdir}/ripper.so
407 %{ruby_libarchdir}/sdbm.so
408 %{ruby_libarchdir}/socket.so
409 %{ruby_libarchdir}/stringio.so
410 %{ruby_libarchdir}/strscan.so
411 %{ruby_libarchdir}/syck.so
412 %{ruby_libarchdir}/syslog.so
413 %{ruby_libarchdir}/zlib.so
414 %{_mandir}/man1/erb.1.*
415 %{_mandir}/man1/ri.1.*
416 %{_mandir}/man1/ruby.1.*
417 %{_datadir}/emacs/site-lisp/*
418 %config(noreplace) %{_sysconfdir}/emacs/site-start.d/*
419 %{_sysconfdir}/rpm/macros.d/%{name}.macros
420 %{_datadir}/ruby/site_ruby
421 %{_libdir}/ruby/site_ruby
422 %{_datadir}/ruby/vendor_ruby
423 %{_libdir}/ruby/vendor_ruby
424
425 %files doc
426 %{_datadir}/ri
427 %{_datadir}/doc/ruby/html/*
428
429 %files -n %{libname}
430 %{_libdir}/libruby.so.%{subver}
431 %{_libdir}/libruby.so.%{rubyapi}
432
433 %files devel
434 %{_includedir}/*
435 %{_libdir}/libruby-static.a
436 %{_libdir}/libruby.so
437 %{_libdir}/pkgconfig/*.pc
438
439 %files tk
440 %{ruby_libarchdir}/tcltklib.so
441 %{ruby_libarchdir}/tkutil.so
442 %{ruby_libdir}/multi-tk.rb
443 %{ruby_libdir}/remote-tk.rb
444 %{ruby_libdir}/tcltk.rb
445 %{ruby_libdir}/tk.rb
446 %{ruby_libdir}/tkafter.rb
447 %{ruby_libdir}/tkbgerror.rb
448 %{ruby_libdir}/tkcanvas.rb
449 %{ruby_libdir}/tkclass.rb
450 %{ruby_libdir}/tkconsole.rb
451 %{ruby_libdir}/tkdialog.rb
452 %{ruby_libdir}/tkentry.rb
453 %{ruby_libdir}/tkfont.rb
454 %{ruby_libdir}/tkmacpkg.rb
455 %{ruby_libdir}/tkmenubar.rb
456 %{ruby_libdir}/tkmngfocus.rb
457 %{ruby_libdir}/tkpalette.rb
458 %{ruby_libdir}/tkscrollbox.rb
459 %{ruby_libdir}/tktext.rb
460 %{ruby_libdir}/tkvirtevent.rb
461 %{ruby_libdir}/tkwinpkg.rb
462 %{ruby_libdir}/tk
463 %{ruby_libdir}/tkextlib
464
465 %if !%bootstrap
466 %files RubyGems
467 %{_bindir}/gem
468 %dir %{rubygems_dir}
469 %{rubygems_dir}/rbconfig
470 %{rubygems_dir}/rubygems
471 %{rubygems_dir}/rubygems.rb
472 %{rubygems_dir}/ubygems.rb
473
474 %files minitest
475 %{ruby_libdir}/minitest
476 %{rubygems_dir}/%{rubyapi}/specifications/minitest-*.gemspec
477
478 %files rake
479 %{_bindir}/rake
480 %{_mandir}/man1/rake.1.*
481 %{ruby_libdir}/rake
482 %{rubygems_dir}/%{rubyapi}/gems/rake-*
483 %{rubygems_dir}/%{rubyapi}/specifications/rake-*.gemspec
484
485 %files rdoc
486 %{_bindir}/rdoc
487 %{_bindir}/ri
488 %{ruby_libdir}/rdoc
489 %{rubygems_dir}/%{rubyapi}/gems/rdoc-*
490 %{rubygems_dir}/%{rubyapi}/specifications/rdoc-*.gemspec
491 %{_mandir}/man1/ri.1.*
492
493 %files json
494 %dir %{ruby_libarchdir}/json
495 %dir %{ruby_libarchdir}/json/ext
496 %{ruby_libarchdir}/json/ext/*.so
497 %{ruby_libdir}/json
498 %{rubygems_dir}/%{rubyapi}/specifications/json-*.gemspec
499
500 %files bigdecimal
501 %{ruby_libdir}/bigdecimal
502 %{ruby_libarchdir}/bigdecimal.so
503 %{rubygems_dir}/%{rubyapi}/specifications/bigdecimal-*.gemspec
504
505 %files io-console
506 %{ruby_libdir}/io
507 %{ruby_libarchdir}/io/console.so
508 %{rubygems_dir}/%{rubyapi}/specifications/io-console-*.gemspec
509 %endif
510
511 %files irb
512 %{_bindir}/irb
513 %{ruby_libdir}/irb.rb
514 %{ruby_libdir}/irb
515 %{_mandir}/man1/irb.1*

  ViewVC Help
Powered by ViewVC 1.1.30