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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 820880 - (show annotations) (download)
Thu Apr 30 20:42:10 2015 UTC (8 years, 11 months ago) by pterjan
File size: 15765 byte(s)
Add patch for CVE-2015-1855
1 %define subver 1.9
2 %define rubyapi 1.9.1
3 %define rubyver 1.9.3
4 %define patchversion p551
5 %define rel 1
6 %define subrel 1
7
8 %define libname %mklibname ruby %{subver}
9
10 %define ruby_libdir %{_datadir}/%{name}
11 %define ruby_libarchdir %{_libdir}/%{name}
12
13 # This is the local lib/arch and should not be used for packaging.
14 %define ruby_sitelibdir %{_datadir}/ruby/site_ruby
15 %define ruby_sitearchdir %{_libdir}/ruby/site_ruby
16
17 # This is the general location for libs/archs compatible with all
18 # or most of the Ruby versions available in the Fedora repositories.
19 %define ruby_vendorlibdir %{_datadir}/ruby/vendor_ruby
20 %define ruby_vendorarchdir %{_libdir}/ruby/vendor_ruby
21
22 # The RubyGems library has to stay out of Ruby directory three, since the
23 # RubyGems should be share by all Ruby implementations.
24 %define rubygems_dir %{_datadir}/ruby/gems
25 %define rubygems_version 1.8.23
26
27 %define bootstrap 0
28 %define build_gems 0
29
30 Summary: Object Oriented Script Language
31 Name: ruby
32 Version: %{rubyver}.%{patchversion}
33 Release: %mkrel %rel
34 License: Ruby or BSD
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) = %rubyapi
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 # Fix the uninstaller, so that it doesn't say that gem doesn't exist
71 # when it exists outside of the GEM_HOME (already fixed in the upstream)
72 Patch5: ruby-1.9.3-rubygems-1.8.11-uninstaller.patch
73 # Allows to install RubyGems into custom directory, outside of Ruby's tree.
74 # http://redmine.ruby-lang.org/issues/5617
75 Patch8: ruby-1.9.3-custom-rubygems-location.patch
76 # Add support for installing binary extensions according to FHS.
77 # https://github.com/rubygems/rubygems/issues/210
78 Patch9: rubygems-1.8.11-binary-extensions.patch
79 # == FEDORA PATCHES ENDS ==
80 # Try to fix parallel build
81 Patch10: ruby-1.9.3-mkmf-parallel-install.patch
82
83 Patch11: ruby-1.9.3-CVE-2014-4975.patch
84 Patch12: CVE-2015-1855.patch
85
86 %package -n %{libname}
87 Summary: Libraries necessary to run Ruby
88 Group: Development/Ruby
89
90 %package doc
91 Summary: Documentation for the powerful language Ruby
92 Group: Development/Ruby
93 BuildArch: noarch
94
95 %package devel
96 Summary: Development file for the powerful language Ruby
97 Group: Development/Ruby
98 Requires: %{name} = %{version}
99 Requires: %{libname} = %{version}
100
101 %package tk
102 Summary: Tk extension for the powerful language Ruby
103 Group: Development/Ruby
104 Requires: %{name} = %{version}
105
106 %package RubyGems
107 Summary: The Ruby standard for packaging ruby libraries
108 Group: Development/Ruby
109 Version: %{rubygems_version}
110 Requires: ruby(abi) = %{subver}
111 Provides: gem = %{rubygems_version}
112 Provides: rubygems = %{rubygems_version}
113 Provides: ruby(rubygems) = %{rubygems_version}
114 Conflicts: rpm-mageia-setup-build < 1.159
115 BuildArch: noarch
116
117 %define rake_ver 0.9.2.2
118 %package rake
119 Summary: Simple ruby build program with capabilities similar to make
120 Group: Development/Ruby
121 Version: %{rake_ver}
122 Requires: ruby(abi) = %{subver}
123 Provides: rubygem(rake) = %{rake_ver}
124 BuildArch: noarch
125
126 %define minitest_ver 2.5.1
127 %package minitest
128 Summary: Minitest provides a complete suite of testing facilities
129 Group: Development/Ruby
130 Version: %{minitest_ver}
131 License: MIT
132 Requires: ruby(abi) = %{subver}
133 Requires: ruby(rubygems) >= %{rubygems_version}
134 Provides: rubygem(minitest) = %{minitest_ver}
135 BuildArch: noarch
136
137 %define json_ver 1.5.4
138 %package json
139 Summary: This is a JSON implementation as a Ruby extension in C
140 Group: Development/Ruby
141 Version: %{json_ver}
142 License: Ruby or GPLv2
143 Requires: ruby(abi) = %{subver}
144 Requires: ruby(rubygems) >= %{rubygems_version}
145 Provides: rubygem(json) = %{json_ver}
146
147 %define rdoc_ver 3.9.4
148 %package rdoc
149 Summary: A tool to generate HTML and command-line documentation for Ruby projects
150 Group: Development/Ruby
151 Version: %{rdoc_ver}
152 License: GPLv2 and Ruby and MIT
153 Requires: ruby(abi) = %{subver}
154 Requires: ruby(rubygems) >= %{rubygems_version}
155 Requires: ruby(irb) = %{version}
156 Provides: rdoc = %{rdoc_ver}
157 Provides: ri = %{rdoc_ver}
158 BuildArch: noarch
159
160 %package irb
161 Summary: The Interactive Ruby
162 Group: Development/Ruby
163 Provides: irb = %{version}-%{release}
164 Provides: ruby(irb) = %{version}-%{release}
165 Conflicts: ruby < 1.9
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 # When patching mkmf.rb the mkmf.rb.0010 gets installed
275 rm lib/mkmf.rb.0*
276
277 %build
278 autoconf
279 CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'`
280 %configure2_5x --enable-shared --disable-rpath --enable-pthread --disable-versioned-paths \
281 --with-rubylibprefix='%{ruby_libdir}' \
282 --with-archdir='%{ruby_libarchdir}' \
283 --with-sitedir='%{ruby_sitelibdir}' \
284 --with-sitearchdir='%{ruby_sitearchdir}' \
285 --with-vendordir='%{ruby_vendorlibdir}' \
286 --with-vendorarchdir='%{ruby_vendorarchdir}' \
287 --with-rubyhdrdir='%{_includedir}' \
288 --with-rubygemsdir='%{rubygems_dir}'
289 %make
290
291 %install
292 %makeinstall_std install-doc
293
294 install -d %buildroot%{_datadir}/emacs/site-lisp
295 cp -a misc/ruby-mode.el %buildroot%{_datadir}/emacs/site-lisp
296
297 install -d %buildroot%{_sysconfdir}/emacs/site-start.d
298 cat <<EOF >%buildroot%{_sysconfdir}/emacs/site-start.d/%{name}.el
299 (autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t)
300 (add-to-list 'auto-mode-alist '("\\\\.rb$" . ruby-mode))
301 (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode))
302 EOF
303
304 # Install the rpm macros
305 mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d
306 cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d
307
308 # drop gems if not wanted, so that we could split them out as seperated source rpm
309 %if !%build_gems
310 rm -f %{buildroot}%{_bindir}/{rake,rdoc,ri}
311 rm -f %{buildroot}%{_mandir}/man1/{rake,ri}.*
312 rm -fr %{buildroot}%{ruby_libdir}/{minitest,rake,rdoc,json,bigdecimal,io}
313 rm -fr %{buildroot}%{ruby_libarchdir}/{json,bigdecimal.so,io/console.so}
314 rm -fr %{buildroot}%{rubygems_dir}/%{rubyapi}
315 %if !%bootstrap
316 rm -f %{buildroot}%{_bindir}/gem
317 rm -fr %{buildroot}%{rubygems_dir}/rbconfig
318 rm -fr %{buildroot}%{rubygems_dir}/rubygems
319 rm -f %{buildroot}%{rubygems_dir}/rubygems.rb
320 rm -f %{buildroot}%{rubygems_dir}/ubygems.rb
321 %endif
322 %endif
323
324 %check
325 make test
326
327 %files
328 %{_bindir}/erb
329 %{_bindir}/ruby
330 %{_bindir}/testrb
331 %dir %{ruby_libdir}
332 %{ruby_libdir}/*.rb
333 %exclude %{ruby_libdir}/irb.rb
334 %exclude %{ruby_libdir}/multi-tk.rb
335 %exclude %{ruby_libdir}/remote-tk.rb
336 %exclude %{ruby_libdir}/tcltk.rb
337 %exclude %{ruby_libdir}/tk.rb
338 %exclude %{ruby_libdir}/tkafter.rb
339 %exclude %{ruby_libdir}/tkbgerror.rb
340 %exclude %{ruby_libdir}/tkcanvas.rb
341 %exclude %{ruby_libdir}/tkclass.rb
342 %exclude %{ruby_libdir}/tkconsole.rb
343 %exclude %{ruby_libdir}/tkdialog.rb
344 %exclude %{ruby_libdir}/tkentry.rb
345 %exclude %{ruby_libdir}/tkfont.rb
346 %exclude %{ruby_libdir}/tkmacpkg.rb
347 %exclude %{ruby_libdir}/tkmenubar.rb
348 %exclude %{ruby_libdir}/tkmngfocus.rb
349 %exclude %{ruby_libdir}/tkpalette.rb
350 %exclude %{ruby_libdir}/tkscrollbox.rb
351 %exclude %{ruby_libdir}/tktext.rb
352 %exclude %{ruby_libdir}/tkvirtevent.rb
353 %exclude %{ruby_libdir}/tkwinpkg.rb
354 %{ruby_libdir}/cgi
355 %{ruby_libdir}/date
356 %{ruby_libdir}/digest
357 %{ruby_libdir}/dl
358 %{ruby_libdir}/drb
359 %{ruby_libdir}/fiddle
360 %{ruby_libdir}/matrix
361 %{ruby_libdir}/net
362 %{ruby_libdir}/openssl
363 %{ruby_libdir}/optparse
364 %{ruby_libdir}/psych
365 %{ruby_libdir}/racc
366 %{ruby_libdir}/rbconfig
367 %{ruby_libdir}/rexml
368 %{ruby_libdir}/rinda
369 %{ruby_libdir}/ripper
370 %{ruby_libdir}/rss
371 %{ruby_libdir}/shell
372 %{ruby_libdir}/syck
373 %{ruby_libdir}/test
374 %{ruby_libdir}/uri
375 %{ruby_libdir}/webrick
376 %{ruby_libdir}/xmlrpc
377 %{ruby_libdir}/yaml
378 %dir %{ruby_libarchdir}
379 %{ruby_libarchdir}/continuation.so
380 %{ruby_libarchdir}/coverage.so
381 %{ruby_libarchdir}/curses.so
382 %{ruby_libarchdir}/date_core.so
383 %{ruby_libarchdir}/dbm.so
384 %dir %{ruby_libarchdir}/digest
385 %{ruby_libarchdir}/digest.so
386 %{ruby_libarchdir}/digest/*.so
387 %dir %{ruby_libarchdir}/dl
388 %{ruby_libarchdir}/dl.so
389 %{ruby_libarchdir}/dl/*.so
390 %dir %{ruby_libarchdir}/enc
391 %{ruby_libarchdir}/enc/*.so
392 %dir %{ruby_libarchdir}/enc/trans
393 %{ruby_libarchdir}/enc/trans/*.so
394 %{ruby_libarchdir}/etc.so
395 %{ruby_libarchdir}/fcntl.so
396 %{ruby_libarchdir}/fiber.so
397 %{ruby_libarchdir}/fiddle.so
398 %{ruby_libarchdir}/gdbm.so
399 %{ruby_libarchdir}/iconv.so
400 %dir %{ruby_libarchdir}/io
401 %{ruby_libarchdir}/io/nonblock.so
402 %{ruby_libarchdir}/io/wait.so
403 %dir %{ruby_libarchdir}/mathn
404 %{ruby_libarchdir}/mathn/*.so
405 %{ruby_libarchdir}/nkf.so
406 %{ruby_libarchdir}/objspace.so
407 %{ruby_libarchdir}/openssl.so
408 %{ruby_libarchdir}/pathname.so
409 %{ruby_libarchdir}/psych.so
410 %{ruby_libarchdir}/pty.so
411 %dir %{ruby_libarchdir}/racc
412 %{ruby_libarchdir}/racc/*.so
413 %{ruby_libarchdir}/rbconfig.rb
414 %{ruby_libarchdir}/readline.so
415 %{ruby_libarchdir}/ripper.so
416 %{ruby_libarchdir}/sdbm.so
417 %{ruby_libarchdir}/socket.so
418 %{ruby_libarchdir}/stringio.so
419 %{ruby_libarchdir}/strscan.so
420 %{ruby_libarchdir}/syck.so
421 %{ruby_libarchdir}/syslog.so
422 %{ruby_libarchdir}/zlib.so
423 %{_mandir}/man1/erb.1.*
424 %{_mandir}/man1/ruby.1.*
425 %{_datadir}/emacs/site-lisp/*
426 %config(noreplace) %{_sysconfdir}/emacs/site-start.d/*
427 %{_sysconfdir}/rpm/macros.d/%{name}.macros
428 %{_datadir}/ruby/site_ruby
429 %{_libdir}/ruby/site_ruby
430 %{_datadir}/ruby/vendor_ruby
431 %{_libdir}/ruby/vendor_ruby
432 %if %bootstrap
433 %{_bindir}/gem
434 %dir %{rubygems_dir}
435 %{rubygems_dir}/rbconfig
436 %{rubygems_dir}/rubygems
437 %{rubygems_dir}/rubygems.rb
438 %{rubygems_dir}/ubygems.rb
439 %endif
440
441 %files doc
442 %{_datadir}/ri
443 %{_datadir}/doc/ruby/html/*
444
445 %files -n %{libname}
446 %{_libdir}/libruby.so.%{subver}
447 %{_libdir}/libruby.so.%{rubyapi}
448
449 %files devel
450 %{_includedir}/*
451 %{_libdir}/libruby-static.a
452 %{_libdir}/libruby.so
453 %{_libdir}/pkgconfig/*.pc
454
455 %files tk
456 %{ruby_libarchdir}/tcltklib.so
457 %{ruby_libarchdir}/tkutil.so
458 %{ruby_libdir}/multi-tk.rb
459 %{ruby_libdir}/remote-tk.rb
460 %{ruby_libdir}/tcltk.rb
461 %{ruby_libdir}/tk.rb
462 %{ruby_libdir}/tkafter.rb
463 %{ruby_libdir}/tkbgerror.rb
464 %{ruby_libdir}/tkcanvas.rb
465 %{ruby_libdir}/tkclass.rb
466 %{ruby_libdir}/tkconsole.rb
467 %{ruby_libdir}/tkdialog.rb
468 %{ruby_libdir}/tkentry.rb
469 %{ruby_libdir}/tkfont.rb
470 %{ruby_libdir}/tkmacpkg.rb
471 %{ruby_libdir}/tkmenubar.rb
472 %{ruby_libdir}/tkmngfocus.rb
473 %{ruby_libdir}/tkpalette.rb
474 %{ruby_libdir}/tkscrollbox.rb
475 %{ruby_libdir}/tktext.rb
476 %{ruby_libdir}/tkvirtevent.rb
477 %{ruby_libdir}/tkwinpkg.rb
478 %{ruby_libdir}/tk
479 %{ruby_libdir}/tkextlib
480
481 %files irb
482 %{_bindir}/irb
483 %{ruby_libdir}/irb.rb
484 %{ruby_libdir}/irb
485 %{_mandir}/man1/irb.1*
486
487 %if %build_gems
488 %files RubyGems
489 %{_bindir}/gem
490 %dir %{rubygems_dir}
491 %{rubygems_dir}/rbconfig
492 %{rubygems_dir}/rubygems
493 %{rubygems_dir}/rubygems.rb
494 %{rubygems_dir}/ubygems.rb
495
496 %files minitest
497 %{ruby_libdir}/minitest
498 %{rubygems_dir}/%{rubyapi}/specifications/minitest-*.gemspec
499
500 %files rake
501 %{_bindir}/rake
502 %{_mandir}/man1/rake.1.*
503 %{ruby_libdir}/rake
504 %{rubygems_dir}/%{rubyapi}/gems/rake-*
505 %{rubygems_dir}/%{rubyapi}/specifications/rake-*.gemspec
506
507 %files rdoc
508 %{_bindir}/rdoc
509 %{_bindir}/ri
510 %{ruby_libdir}/rdoc
511 %{rubygems_dir}/%{rubyapi}/gems/rdoc-*
512 %{rubygems_dir}/%{rubyapi}/specifications/rdoc-*.gemspec
513 %{_mandir}/man1/ri.1.*
514
515 %files json
516 %dir %{ruby_libarchdir}/json
517 %dir %{ruby_libarchdir}/json/ext
518 %{ruby_libarchdir}/json/ext/*.so
519 %{ruby_libdir}/json
520 %{rubygems_dir}/%{rubyapi}/specifications/json-*.gemspec
521
522 %files bigdecimal
523 %{ruby_libdir}/bigdecimal
524 %{ruby_libarchdir}/bigdecimal.so
525 %{rubygems_dir}/%{rubyapi}/specifications/bigdecimal-*.gemspec
526
527 %files io-console
528 %{ruby_libdir}/io
529 %{ruby_libarchdir}/io/console.so
530 %{rubygems_dir}/%{rubyapi}/specifications/io-console-*.gemspec
531 %endif

  ViewVC Help
Powered by ViewVC 1.1.30