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

  ViewVC Help
Powered by ViewVC 1.1.30