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

  ViewVC Help
Powered by ViewVC 1.1.30