/[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 293416 - (show annotations) (download)
Thu Sep 13 03:46:18 2012 UTC (11 years, 7 months ago) by fwang
Original Path: cauldron/ruby/current/SPECS/ruby.spec
File size: 15496 byte(s)
update file list
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 %define build_gems 0
28
29 Summary: Object Oriented Script Language
30 Name: ruby
31 Epoch: 1
32 Version: %{rubyver}.%{patchversion}
33 Release: %mkrel %rel
34 License: Ruby or GPLv2
35 Group: Development/Ruby
36 BuildRequires: autoconf
37 BuildRequires: byacc
38 BuildRequires: doxygen
39 BuildRequires: ncurses-devel
40 BuildRequires: readline-devel
41 BuildRequires: tcl-devel tk-devel
42 BuildRequires: db-devel
43 BuildRequires: gdbm-devel >= 1.8.3
44 BuildRequires: openssl-devel
45 BuildRequires: zlib-devel
46 BuildRequires: libffi-devel
47 BuildRequires: yaml-devel
48 BuildRequires: rpm-mageia-setup >= 1.158
49 Obsoletes: ruby-rexml
50 Provides: ruby-rexml
51 # explicit file provides (since such requires are automatically added by find-requires)
52 Provides: /usr/bin/ruby
53 Provides: ruby(abi) = %subver
54
55 Source0: http://ftp.ruby-lang.org/pub/ruby/%{subver}/ruby-%{rubyver}-%{patchversion}.tar.bz2
56 Source3: ruby.macros
57 URL: http://www.ruby-lang.org/
58 %if !%bootstrap
59 Requires: rubygems >= %{rubygems_version}
60 BuildRequires: ruby
61 %endif
62
63 # == FEDORA PATCHES BEGINS ==
64 # http://redmine.ruby-lang.org/issues/5231
65 Patch0: ruby-1.9.3-disable-versioned-paths.patch
66 # TODO: Should be submitted upstream?
67 Patch1: ruby-1.9.3-arch-specific-dir.patch
68 # http://redmine.ruby-lang.org/issues/5281
69 Patch2: ruby-1.9.3-added-site-and-vendor-arch-flags.patch
70 # http://redmine.ruby-lang.org/issues/5465
71 Patch4: ruby-1.9.3-fix-s390x-build.patch
72 # Fix the uninstaller, so that it doesn't say that gem doesn't exist
73 # when it exists outside of the GEM_HOME (already fixed in the upstream)
74 Patch5: ruby-1.9.3-rubygems-1.8.11-uninstaller.patch
75 # http://redmine.ruby-lang.org/issues/5135 - see comment 29
76 Patch6: ruby-1.9.3-webrick-test-fix.patch
77 # Already fixed upstream:
78 # https://github.com/ruby/ruby/commit/f212df564a4e1025f9fb019ce727022a97bfff53
79 Patch7: ruby-1.9.3-bignum-test-fix.patch
80 # Allows to install RubyGems into custom directory, outside of Ruby's tree.
81 # http://redmine.ruby-lang.org/issues/5617
82 Patch8: ruby-1.9.3-custom-rubygems-location.patch
83 # Add support for installing binary extensions according to FHS.
84 # https://github.com/rubygems/rubygems/issues/210
85 Patch9: rubygems-1.8.11-binary-extensions.patch
86 # == FEDORA PATCHES ENDS ==
87
88 %package -n %{libname}
89 Summary: Libraries necessary to run Ruby
90 Group: Development/Ruby
91
92 %package doc
93 Summary: Documentation for the powerful language Ruby
94 Group: Development/Ruby
95 BuildArch: noarch
96
97 %package devel
98 Summary: Development file for the powerful language Ruby
99 Group: Development/Ruby
100 Requires: %{name} = %{epoch}:%{version}
101 Requires: %{libname} = %{epoch}:%{version}
102
103 %package tk
104 Summary: Tk extension for the powerful language Ruby
105 Group: Development/Ruby
106 Requires: %{name} = %{epoch}:%{version}
107
108 %package RubyGems
109 Summary: The Ruby standard for packaging ruby libraries
110 Group: Development/Ruby
111 Version: %{rubygems_version}
112 Requires: ruby(abi) = %{subver}
113 Provides: gem = %{rubygems_version}
114 Provides: rubygems = %{rubygems_version}
115 Provides: ruby(rubygems) = %{rubygems_version}
116 Conflicts: rpm-mageia-setup-build < 1.159
117 BuildArch: noarch
118
119 %define rake_ver 0.9.2.2
120 %package rake
121 Summary: Simple ruby build program with capabilities similar to make
122 Group: Development/Ruby
123 Version: %{rake_ver}
124 Requires: ruby(abi) = %{subver}
125 Provides: rubygem(rake) = %{rake_ver}
126 BuildArch: noarch
127
128 %define minitest_ver 2.5.1
129 %package minitest
130 Summary: Minitest provides a complete suite of testing facilities
131 Group: Development/Ruby
132 Version: %{minitest_ver}
133 License: MIT
134 Requires: ruby(abi) = %{subver}
135 Requires: ruby(rubygems) >= %{rubygems_version}
136 Provides: rubygem(minitest) = %{minitest_ver}
137 BuildArch: noarch
138
139 %define json_ver 1.5.4
140 %package json
141 Summary: This is a JSON implementation as a Ruby extension in C
142 Group: Development/Ruby
143 Version: %{json_ver}
144 License: Ruby or GPLv2
145 Requires: ruby(abi) = %{subver}
146 Requires: ruby(rubygems) >= %{rubygems_version}
147 Provides: rubygem(json) = %{json_ver}
148
149 %define rdoc_ver 3.9.4
150 %package rdoc
151 Summary: A tool to generate HTML and command-line documentation for Ruby projects
152 Group: Development/Ruby
153 Version: %{rdoc_ver}
154 License: GPLv2 and Ruby and MIT
155 Requires: ruby(abi) = %{subver}
156 Requires: ruby(rubygems) >= %{rubygems_version}
157 Requires: ruby(irb) = %{version}
158 Provides: rdoc = %{rdoc_ver}
159 Provides: ri = %{rdoc_ver}
160 BuildArch: noarch
161
162 %package irb
163 Summary: The Interactive Ruby
164 Group: Development/Ruby
165 Provides: irb = %{version}-%{release}
166 Provides: ruby(irb) = %{version}-%{release}
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
276 %build
277 autoconf
278 CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'`
279 %configure2_5x --enable-shared --disable-rpath --enable-pthread --disable-versioned-paths \
280 --with-rubylibprefix='%{ruby_libdir}' \
281 --with-archdir='%{ruby_libarchdir}' \
282 --with-sitedir='%{ruby_sitelibdir}' \
283 --with-sitearchdir='%{ruby_sitearchdir}' \
284 --with-vendordir='%{ruby_vendorlibdir}' \
285 --with-vendorarchdir='%{ruby_vendorarchdir}' \
286 --with-rubyhdrdir='%{_includedir}' \
287 --with-rubygemsdir='%{rubygems_dir}'
288 %make
289
290 %install
291 %makeinstall_std install-doc
292
293 install -d %buildroot%{_datadir}/emacs/site-lisp
294 cp -a misc/ruby-mode.el %buildroot%{_datadir}/emacs/site-lisp
295
296 install -d %buildroot%{_sysconfdir}/emacs/site-start.d
297 cat <<EOF >%buildroot%{_sysconfdir}/emacs/site-start.d/%{name}.el
298 (autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t)
299 (add-to-list 'auto-mode-alist '("\\\\.rb$" . ruby-mode))
300 (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode))
301 EOF
302
303 # Install the rpm macros
304 mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d
305 cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d
306
307 # drop gems if not wanted, so that we could split them out as seperated source rpm
308 %if !%build_gems
309 rm -f %{buildroot}%{_bindir}/{gem,rake,rdoc,ri}
310 rm -f %{buildroot}%{_mandir}/man1/{rake,ri}.1.*
311 rm -fr %{buildroot}%{ruby_libdir}/{minitest,rake,rdoc,json,bigdecimal,io}
312 rm -fr %{buildroot}%{ruby_libarchdir}/{json,bigdecimal.so,io/console.so}
313 rm -fr %{buildroot}%{rubygems_dir}
314 %endif
315
316 %check
317 make test
318
319 %files
320 %{_bindir}/erb
321 %{_bindir}/ruby
322 %{_bindir}/testrb
323 %dir %{ruby_libdir}
324 %{ruby_libdir}/*.rb
325 %exclude %{ruby_libdir}/irb.rb
326 %exclude %{ruby_libdir}/multi-tk.rb
327 %exclude %{ruby_libdir}/remote-tk.rb
328 %exclude %{ruby_libdir}/tcltk.rb
329 %exclude %{ruby_libdir}/tk.rb
330 %exclude %{ruby_libdir}/tkafter.rb
331 %exclude %{ruby_libdir}/tkbgerror.rb
332 %exclude %{ruby_libdir}/tkcanvas.rb
333 %exclude %{ruby_libdir}/tkclass.rb
334 %exclude %{ruby_libdir}/tkconsole.rb
335 %exclude %{ruby_libdir}/tkdialog.rb
336 %exclude %{ruby_libdir}/tkentry.rb
337 %exclude %{ruby_libdir}/tkfont.rb
338 %exclude %{ruby_libdir}/tkmacpkg.rb
339 %exclude %{ruby_libdir}/tkmenubar.rb
340 %exclude %{ruby_libdir}/tkmngfocus.rb
341 %exclude %{ruby_libdir}/tkpalette.rb
342 %exclude %{ruby_libdir}/tkscrollbox.rb
343 %exclude %{ruby_libdir}/tktext.rb
344 %exclude %{ruby_libdir}/tkvirtevent.rb
345 %exclude %{ruby_libdir}/tkwinpkg.rb
346 %{ruby_libdir}/cgi
347 %{ruby_libdir}/date
348 %{ruby_libdir}/digest
349 %{ruby_libdir}/dl
350 %{ruby_libdir}/drb
351 %{ruby_libdir}/fiddle
352 %{ruby_libdir}/matrix
353 %{ruby_libdir}/net
354 %{ruby_libdir}/openssl
355 %{ruby_libdir}/optparse
356 %{ruby_libdir}/psych
357 %{ruby_libdir}/racc
358 %{ruby_libdir}/rbconfig
359 %{ruby_libdir}/rexml
360 %{ruby_libdir}/rinda
361 %{ruby_libdir}/ripper
362 %{ruby_libdir}/rss
363 %{ruby_libdir}/shell
364 %{ruby_libdir}/syck
365 %{ruby_libdir}/test
366 %{ruby_libdir}/uri
367 %{ruby_libdir}/webrick
368 %{ruby_libdir}/xmlrpc
369 %{ruby_libdir}/yaml
370 %dir %{ruby_libarchdir}
371 %{ruby_libarchdir}/continuation.so
372 %{ruby_libarchdir}/coverage.so
373 %{ruby_libarchdir}/curses.so
374 %{ruby_libarchdir}/date_core.so
375 %{ruby_libarchdir}/dbm.so
376 %dir %{ruby_libarchdir}/digest
377 %{ruby_libarchdir}/digest.so
378 %{ruby_libarchdir}/digest/*.so
379 %dir %{ruby_libarchdir}/dl
380 %{ruby_libarchdir}/dl.so
381 %{ruby_libarchdir}/dl/*.so
382 %dir %{ruby_libarchdir}/enc
383 %{ruby_libarchdir}/enc/*.so
384 %dir %{ruby_libarchdir}/enc/trans
385 %{ruby_libarchdir}/enc/trans/*.so
386 %{ruby_libarchdir}/etc.so
387 %{ruby_libarchdir}/fcntl.so
388 %{ruby_libarchdir}/fiber.so
389 %{ruby_libarchdir}/fiddle.so
390 %{ruby_libarchdir}/gdbm.so
391 %{ruby_libarchdir}/iconv.so
392 %dir %{ruby_libarchdir}/io
393 %{ruby_libarchdir}/io/nonblock.so
394 %{ruby_libarchdir}/io/wait.so
395 %dir %{ruby_libarchdir}/mathn
396 %{ruby_libarchdir}/mathn/*.so
397 %{ruby_libarchdir}/nkf.so
398 %{ruby_libarchdir}/objspace.so
399 %{ruby_libarchdir}/openssl.so
400 %{ruby_libarchdir}/pathname.so
401 %{ruby_libarchdir}/psych.so
402 %{ruby_libarchdir}/pty.so
403 %dir %{ruby_libarchdir}/racc
404 %{ruby_libarchdir}/racc/*.so
405 %{ruby_libarchdir}/rbconfig.rb
406 %{ruby_libarchdir}/readline.so
407 %{ruby_libarchdir}/ripper.so
408 %{ruby_libarchdir}/sdbm.so
409 %{ruby_libarchdir}/socket.so
410 %{ruby_libarchdir}/stringio.so
411 %{ruby_libarchdir}/strscan.so
412 %{ruby_libarchdir}/syck.so
413 %{ruby_libarchdir}/syslog.so
414 %{ruby_libarchdir}/zlib.so
415 %{_mandir}/man1/erb.1.*
416 %{_mandir}/man1/ri.1.*
417 %{_mandir}/man1/ruby.1.*
418 %{_datadir}/emacs/site-lisp/*
419 %config(noreplace) %{_sysconfdir}/emacs/site-start.d/*
420 %{_sysconfdir}/rpm/macros.d/%{name}.macros
421 %{_datadir}/ruby/site_ruby
422 %{_libdir}/ruby/site_ruby
423 %{_datadir}/ruby/vendor_ruby
424 %{_libdir}/ruby/vendor_ruby
425
426 %files doc
427 %{_datadir}/ri
428 %{_datadir}/doc/ruby/html/*
429
430 %files -n %{libname}
431 %{_libdir}/libruby.so.%{subver}
432 %{_libdir}/libruby.so.%{rubyapi}
433
434 %files devel
435 %{_includedir}/*
436 %{_libdir}/libruby-static.a
437 %{_libdir}/libruby.so
438 %{_libdir}/pkgconfig/*.pc
439
440 %files tk
441 %{ruby_libarchdir}/tcltklib.so
442 %{ruby_libarchdir}/tkutil.so
443 %{ruby_libdir}/multi-tk.rb
444 %{ruby_libdir}/remote-tk.rb
445 %{ruby_libdir}/tcltk.rb
446 %{ruby_libdir}/tk.rb
447 %{ruby_libdir}/tkafter.rb
448 %{ruby_libdir}/tkbgerror.rb
449 %{ruby_libdir}/tkcanvas.rb
450 %{ruby_libdir}/tkclass.rb
451 %{ruby_libdir}/tkconsole.rb
452 %{ruby_libdir}/tkdialog.rb
453 %{ruby_libdir}/tkentry.rb
454 %{ruby_libdir}/tkfont.rb
455 %{ruby_libdir}/tkmacpkg.rb
456 %{ruby_libdir}/tkmenubar.rb
457 %{ruby_libdir}/tkmngfocus.rb
458 %{ruby_libdir}/tkpalette.rb
459 %{ruby_libdir}/tkscrollbox.rb
460 %{ruby_libdir}/tktext.rb
461 %{ruby_libdir}/tkvirtevent.rb
462 %{ruby_libdir}/tkwinpkg.rb
463 %{ruby_libdir}/tk
464 %{ruby_libdir}/tkextlib
465
466 %files irb
467 %{_bindir}/irb
468 %{ruby_libdir}/irb.rb
469 %{ruby_libdir}/irb
470 %{_mandir}/man1/irb.1*
471
472 %if %build_gems
473 %files RubyGems
474 %{_bindir}/gem
475 %dir %{rubygems_dir}
476 %{rubygems_dir}/rbconfig
477 %{rubygems_dir}/rubygems
478 %{rubygems_dir}/rubygems.rb
479 %{rubygems_dir}/ubygems.rb
480
481 %files minitest
482 %{ruby_libdir}/minitest
483 %{rubygems_dir}/%{rubyapi}/specifications/minitest-*.gemspec
484
485 %files rake
486 %{_bindir}/rake
487 %{_mandir}/man1/rake.1.*
488 %{ruby_libdir}/rake
489 %{rubygems_dir}/%{rubyapi}/gems/rake-*
490 %{rubygems_dir}/%{rubyapi}/specifications/rake-*.gemspec
491
492 %files rdoc
493 %{_bindir}/rdoc
494 %{_bindir}/ri
495 %{ruby_libdir}/rdoc
496 %{rubygems_dir}/%{rubyapi}/gems/rdoc-*
497 %{rubygems_dir}/%{rubyapi}/specifications/rdoc-*.gemspec
498 %{_mandir}/man1/ri.1.*
499
500 %files json
501 %dir %{ruby_libarchdir}/json
502 %dir %{ruby_libarchdir}/json/ext
503 %{ruby_libarchdir}/json/ext/*.so
504 %{ruby_libdir}/json
505 %{rubygems_dir}/%{rubyapi}/specifications/json-*.gemspec
506
507 %files bigdecimal
508 %{ruby_libdir}/bigdecimal
509 %{ruby_libarchdir}/bigdecimal.so
510 %{rubygems_dir}/%{rubyapi}/specifications/bigdecimal-*.gemspec
511
512 %files io-console
513 %{ruby_libdir}/io
514 %{ruby_libarchdir}/io/console.so
515 %{rubygems_dir}/%{rubyapi}/specifications/io-console-*.gemspec
516 %endif

  ViewVC Help
Powered by ViewVC 1.1.30