/[packages]/updates/5/ruby/current/SPECS/ruby.spec
ViewVC logotype

Contents of /updates/5/ruby/current/SPECS/ruby.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 400216 - (show annotations) (download)
Sun Feb 24 07:43:41 2013 UTC (11 years, 1 month ago) by fwang
Original Path: cauldron/ruby/current/SPECS/ruby.spec
File size: 15908 byte(s)
new version 1.9.3p392
1 %define subver 1.9
2 %define rubyapi 1.9.1
3 %define rubyver 1.9.3
4 %define patchversion p392
5 %define rel 1
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 %define build_gems 0
28
29 Summary: Object Oriented Script Language
30 Name: ruby
31 Version: %{rubyver}.%{patchversion}
32 Release: %mkrel %rel
33 License: Ruby or BSD
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) = %rubyapi
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 # Already fixed upstream:
75 # https://github.com/ruby/ruby/commit/f212df564a4e1025f9fb019ce727022a97bfff53
76 Patch7: ruby-1.9.3-bignum-test-fix.patch
77 # Allows to install RubyGems into custom directory, outside of Ruby's tree.
78 # http://redmine.ruby-lang.org/issues/5617
79 Patch8: ruby-1.9.3-custom-rubygems-location.patch
80 # Add support for installing binary extensions according to FHS.
81 # https://github.com/rubygems/rubygems/issues/210
82 Patch9: rubygems-1.8.11-binary-extensions.patch
83 # == FEDORA PATCHES ENDS ==
84 # Try to fix parallel build
85 Patch10: ruby-1.9.3-mkmf-parallel-install.patch
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} = %{version}
100 Requires: %{libname} = %{version}
101
102 %package tk
103 Summary: Tk extension for the powerful language Ruby
104 Group: Development/Ruby
105 Requires: %{name} = %{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 Conflicts: ruby < 1.9
167 BuildArch: noarch
168
169 %package bigdecimal
170 Summary: BigDecimal provides arbitrary-precision floating point decimal arithmetic
171 Group: Development/Ruby
172 Version: 1.1.0
173 License: GPL+ or Artistic
174 Requires: ruby(abi) = %{subver}
175 Requires: ruby(rubygems) >= %{rubygems_version}
176 Provides: rubygem(bigdecimal) = 1.1.0
177
178 %package io-console
179 Summary: IO/Console is a simple console utilizing library
180 Group: Development/Ruby
181 Version: 0.3
182 Requires: ruby(abi) = %{subver}
183 Requires: ruby(rubygems) >= %{rubygems_version}
184 Provides: rubygem(io-console) = 0.3
185
186 %description
187 Ruby is the interpreted scripting language for quick and
188 easy object-oriented programming. It has many features to
189 process text files and to do system management tasks (as in
190 Perl). It is simple, straight-forward, and extensible.
191
192 %description doc
193 Ruby is the interpreted scripting language for quick and
194 easy object-oriented programming. It has many features to
195 process text files and to do system management tasks (as in
196 Perl). It is simple, straight-forward, and extensible.
197
198 This package contains the Ruby's documentation
199
200 %description -n %{libname}
201 This package includes the libruby, necessary to run Ruby.
202
203 %description devel
204 Ruby is the interpreted scripting language for quick and
205 easy object-oriented programming. It has many features to
206 process text files and to do system management tasks (as in
207 Perl). It is simple, straight-forward, and extensible.
208
209 This package contains the Ruby's devel files.
210
211 %description tk
212 Ruby is the interpreted scripting language for quick and
213 easy object-oriented programming. It has many features to
214 process text files and to do system management tasks (as in
215 Perl). It is simple, straight-forward, and extensible.
216
217 This package contains the Tk extension for Ruby.
218
219 %description RubyGems
220 RubyGems is the Ruby standard for publishing and managing third party
221 libraries.
222
223 %description rake
224 Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
225 specified in standard Ruby syntax.
226
227 %description rdoc
228 RDoc produces HTML and command-line documentation for Ruby projects. RDoc
229 includes the 'rdoc' and 'ri' tools for generating and displaying online
230 documentation.
231
232 %description json
233 This is a implementation of the JSON specification according to RFC 4627.
234 You can think of it as a low fat alternative to XML, if you want to store
235 data to disk or transmit it over a network rather than use a verbose
236 markup language.
237
238 %description minitest
239 minitest/unit is a small and incredibly fast unit testing framework.
240
241 minitest/spec is a functionally complete spec engine.
242
243 minitest/benchmark is an awesome way to assert the performance of your
244 algorithms in a repeatable manner.
245
246 minitest/mock by Steven Baker, is a beautifully tiny mock object
247 framework.
248
249 minitest/pride shows pride in testing and adds coloring to your test
250 output.
251
252 %description irb
253 The irb is acronym for Interactive Ruby. It evaluates ruby expression
254 from the terminal.
255
256 %description bigdecimal
257 Ruby provides built-in support for arbitrary precision integer arithmetic.
258 For example:
259
260 42**13 -> 1265437718438866624512
261
262 BigDecimal provides similar support for very large or very accurate floating
263 point numbers. Decimal arithmetic is also useful for general calculation,
264 because it provides the correct answers people expect–whereas normal binary
265 floating point arithmetic often introduces subtle errors because of the
266 conversion between base 10 and base 2.
267
268 %description io-console
269 IO/Console provides very simple and portable access to console. It doesn't
270 provide higher layer features, such like curses and readline.
271
272 %prep
273 %setup -q -n ruby-%{rubyver}-%{patchversion}
274 %apply_patches
275 # When patching mkmf.rb the mkmf.rb.0010 gets installed
276 rm lib/mkmf.rb.0*
277
278 %build
279 autoconf
280 CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'`
281 %configure2_5x --enable-shared --disable-rpath --enable-pthread --disable-versioned-paths \
282 --with-rubylibprefix='%{ruby_libdir}' \
283 --with-archdir='%{ruby_libarchdir}' \
284 --with-sitedir='%{ruby_sitelibdir}' \
285 --with-sitearchdir='%{ruby_sitearchdir}' \
286 --with-vendordir='%{ruby_vendorlibdir}' \
287 --with-vendorarchdir='%{ruby_vendorarchdir}' \
288 --with-rubyhdrdir='%{_includedir}' \
289 --with-rubygemsdir='%{rubygems_dir}'
290 %make
291
292 %install
293 %makeinstall_std install-doc
294
295 install -d %buildroot%{_datadir}/emacs/site-lisp
296 cp -a misc/ruby-mode.el %buildroot%{_datadir}/emacs/site-lisp
297
298 install -d %buildroot%{_sysconfdir}/emacs/site-start.d
299 cat <<EOF >%buildroot%{_sysconfdir}/emacs/site-start.d/%{name}.el
300 (autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t)
301 (add-to-list 'auto-mode-alist '("\\\\.rb$" . ruby-mode))
302 (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode))
303 EOF
304
305 # Install the rpm macros
306 mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d
307 cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d
308
309 # drop gems if not wanted, so that we could split them out as seperated source rpm
310 %if !%build_gems
311 rm -f %{buildroot}%{_bindir}/{rake,rdoc,ri}
312 rm -f %{buildroot}%{_mandir}/man1/{rake,ri}.*
313 rm -fr %{buildroot}%{ruby_libdir}/{minitest,rake,rdoc,json,bigdecimal,io}
314 rm -fr %{buildroot}%{ruby_libarchdir}/{json,bigdecimal.so,io/console.so}
315 rm -fr %{buildroot}%{rubygems_dir}/%{rubyapi}
316 %if !%bootstrap
317 rm -f %{buildroot}%{_bindir}/gem
318 rm -fr %{buildroot}%{rubygems_dir}/rbconfig
319 rm -fr %{buildroot}%{rubygems_dir}/rubygems
320 rm -f %{buildroot}%{rubygems_dir}/rubygems.rb
321 rm -f %{buildroot}%{rubygems_dir}/ubygems.rb
322 %endif
323 %endif
324
325 %check
326 make test
327
328 %files
329 %{_bindir}/erb
330 %{_bindir}/ruby
331 %{_bindir}/testrb
332 %dir %{ruby_libdir}
333 %{ruby_libdir}/*.rb
334 %exclude %{ruby_libdir}/irb.rb
335 %exclude %{ruby_libdir}/multi-tk.rb
336 %exclude %{ruby_libdir}/remote-tk.rb
337 %exclude %{ruby_libdir}/tcltk.rb
338 %exclude %{ruby_libdir}/tk.rb
339 %exclude %{ruby_libdir}/tkafter.rb
340 %exclude %{ruby_libdir}/tkbgerror.rb
341 %exclude %{ruby_libdir}/tkcanvas.rb
342 %exclude %{ruby_libdir}/tkclass.rb
343 %exclude %{ruby_libdir}/tkconsole.rb
344 %exclude %{ruby_libdir}/tkdialog.rb
345 %exclude %{ruby_libdir}/tkentry.rb
346 %exclude %{ruby_libdir}/tkfont.rb
347 %exclude %{ruby_libdir}/tkmacpkg.rb
348 %exclude %{ruby_libdir}/tkmenubar.rb
349 %exclude %{ruby_libdir}/tkmngfocus.rb
350 %exclude %{ruby_libdir}/tkpalette.rb
351 %exclude %{ruby_libdir}/tkscrollbox.rb
352 %exclude %{ruby_libdir}/tktext.rb
353 %exclude %{ruby_libdir}/tkvirtevent.rb
354 %exclude %{ruby_libdir}/tkwinpkg.rb
355 %{ruby_libdir}/cgi
356 %{ruby_libdir}/date
357 %{ruby_libdir}/digest
358 %{ruby_libdir}/dl
359 %{ruby_libdir}/drb
360 %{ruby_libdir}/fiddle
361 %{ruby_libdir}/matrix
362 %{ruby_libdir}/net
363 %{ruby_libdir}/openssl
364 %{ruby_libdir}/optparse
365 %{ruby_libdir}/psych
366 %{ruby_libdir}/racc
367 %{ruby_libdir}/rbconfig
368 %{ruby_libdir}/rexml
369 %{ruby_libdir}/rinda
370 %{ruby_libdir}/ripper
371 %{ruby_libdir}/rss
372 %{ruby_libdir}/shell
373 %{ruby_libdir}/syck
374 %{ruby_libdir}/test
375 %{ruby_libdir}/uri
376 %{ruby_libdir}/webrick
377 %{ruby_libdir}/xmlrpc
378 %{ruby_libdir}/yaml
379 %dir %{ruby_libarchdir}
380 %{ruby_libarchdir}/continuation.so
381 %{ruby_libarchdir}/coverage.so
382 %{ruby_libarchdir}/curses.so
383 %{ruby_libarchdir}/date_core.so
384 %{ruby_libarchdir}/dbm.so
385 %dir %{ruby_libarchdir}/digest
386 %{ruby_libarchdir}/digest.so
387 %{ruby_libarchdir}/digest/*.so
388 %dir %{ruby_libarchdir}/dl
389 %{ruby_libarchdir}/dl.so
390 %{ruby_libarchdir}/dl/*.so
391 %dir %{ruby_libarchdir}/enc
392 %{ruby_libarchdir}/enc/*.so
393 %dir %{ruby_libarchdir}/enc/trans
394 %{ruby_libarchdir}/enc/trans/*.so
395 %{ruby_libarchdir}/etc.so
396 %{ruby_libarchdir}/fcntl.so
397 %{ruby_libarchdir}/fiber.so
398 %{ruby_libarchdir}/fiddle.so
399 %{ruby_libarchdir}/gdbm.so
400 %{ruby_libarchdir}/iconv.so
401 %dir %{ruby_libarchdir}/io
402 %{ruby_libarchdir}/io/nonblock.so
403 %{ruby_libarchdir}/io/wait.so
404 %dir %{ruby_libarchdir}/mathn
405 %{ruby_libarchdir}/mathn/*.so
406 %{ruby_libarchdir}/nkf.so
407 %{ruby_libarchdir}/objspace.so
408 %{ruby_libarchdir}/openssl.so
409 %{ruby_libarchdir}/pathname.so
410 %{ruby_libarchdir}/psych.so
411 %{ruby_libarchdir}/pty.so
412 %dir %{ruby_libarchdir}/racc
413 %{ruby_libarchdir}/racc/*.so
414 %{ruby_libarchdir}/rbconfig.rb
415 %{ruby_libarchdir}/readline.so
416 %{ruby_libarchdir}/ripper.so
417 %{ruby_libarchdir}/sdbm.so
418 %{ruby_libarchdir}/socket.so
419 %{ruby_libarchdir}/stringio.so
420 %{ruby_libarchdir}/strscan.so
421 %{ruby_libarchdir}/syck.so
422 %{ruby_libarchdir}/syslog.so
423 %{ruby_libarchdir}/zlib.so
424 %{_mandir}/man1/erb.1.*
425 %{_mandir}/man1/ruby.1.*
426 %{_datadir}/emacs/site-lisp/*
427 %config(noreplace) %{_sysconfdir}/emacs/site-start.d/*
428 %{_sysconfdir}/rpm/macros.d/%{name}.macros
429 %{_datadir}/ruby/site_ruby
430 %{_libdir}/ruby/site_ruby
431 %{_datadir}/ruby/vendor_ruby
432 %{_libdir}/ruby/vendor_ruby
433 %if %bootstrap
434 %{_bindir}/gem
435 %dir %{rubygems_dir}
436 %{rubygems_dir}/rbconfig
437 %{rubygems_dir}/rubygems
438 %{rubygems_dir}/rubygems.rb
439 %{rubygems_dir}/ubygems.rb
440 %endif
441
442 %files doc
443 %{_datadir}/ri
444 %{_datadir}/doc/ruby/html/*
445
446 %files -n %{libname}
447 %{_libdir}/libruby.so.%{subver}
448 %{_libdir}/libruby.so.%{rubyapi}
449
450 %files devel
451 %{_includedir}/*
452 %{_libdir}/libruby-static.a
453 %{_libdir}/libruby.so
454 %{_libdir}/pkgconfig/*.pc
455
456 %files tk
457 %{ruby_libarchdir}/tcltklib.so
458 %{ruby_libarchdir}/tkutil.so
459 %{ruby_libdir}/multi-tk.rb
460 %{ruby_libdir}/remote-tk.rb
461 %{ruby_libdir}/tcltk.rb
462 %{ruby_libdir}/tk.rb
463 %{ruby_libdir}/tkafter.rb
464 %{ruby_libdir}/tkbgerror.rb
465 %{ruby_libdir}/tkcanvas.rb
466 %{ruby_libdir}/tkclass.rb
467 %{ruby_libdir}/tkconsole.rb
468 %{ruby_libdir}/tkdialog.rb
469 %{ruby_libdir}/tkentry.rb
470 %{ruby_libdir}/tkfont.rb
471 %{ruby_libdir}/tkmacpkg.rb
472 %{ruby_libdir}/tkmenubar.rb
473 %{ruby_libdir}/tkmngfocus.rb
474 %{ruby_libdir}/tkpalette.rb
475 %{ruby_libdir}/tkscrollbox.rb
476 %{ruby_libdir}/tktext.rb
477 %{ruby_libdir}/tkvirtevent.rb
478 %{ruby_libdir}/tkwinpkg.rb
479 %{ruby_libdir}/tk
480 %{ruby_libdir}/tkextlib
481
482 %files irb
483 %{_bindir}/irb
484 %{ruby_libdir}/irb.rb
485 %{ruby_libdir}/irb
486 %{_mandir}/man1/irb.1*
487
488 %if %build_gems
489 %files RubyGems
490 %{_bindir}/gem
491 %dir %{rubygems_dir}
492 %{rubygems_dir}/rbconfig
493 %{rubygems_dir}/rubygems
494 %{rubygems_dir}/rubygems.rb
495 %{rubygems_dir}/ubygems.rb
496
497 %files minitest
498 %{ruby_libdir}/minitest
499 %{rubygems_dir}/%{rubyapi}/specifications/minitest-*.gemspec
500
501 %files rake
502 %{_bindir}/rake
503 %{_mandir}/man1/rake.1.*
504 %{ruby_libdir}/rake
505 %{rubygems_dir}/%{rubyapi}/gems/rake-*
506 %{rubygems_dir}/%{rubyapi}/specifications/rake-*.gemspec
507
508 %files rdoc
509 %{_bindir}/rdoc
510 %{_bindir}/ri
511 %{ruby_libdir}/rdoc
512 %{rubygems_dir}/%{rubyapi}/gems/rdoc-*
513 %{rubygems_dir}/%{rubyapi}/specifications/rdoc-*.gemspec
514 %{_mandir}/man1/ri.1.*
515
516 %files json
517 %dir %{ruby_libarchdir}/json
518 %dir %{ruby_libarchdir}/json/ext
519 %{ruby_libarchdir}/json/ext/*.so
520 %{ruby_libdir}/json
521 %{rubygems_dir}/%{rubyapi}/specifications/json-*.gemspec
522
523 %files bigdecimal
524 %{ruby_libdir}/bigdecimal
525 %{ruby_libarchdir}/bigdecimal.so
526 %{rubygems_dir}/%{rubyapi}/specifications/bigdecimal-*.gemspec
527
528 %files io-console
529 %{ruby_libdir}/io
530 %{ruby_libarchdir}/io/console.so
531 %{rubygems_dir}/%{rubyapi}/specifications/io-console-*.gemspec
532 %endif

  ViewVC Help
Powered by ViewVC 1.1.30