]> git.pld-linux.org Git - packages/ruby.git/blame_incremental - ruby.spec
- provide bare json/rake/rubygems to satisfy new rubydeps generator
[packages/ruby.git] / ruby.spec
... / ...
CommitLineData
1#
2# TODO:
3# - include ext/ in docs
4# - replace ri with fastri
5# - patch ri to search multiple indexes (one per package), so RPMs can
6# install ri docs
7#
8# Conditional build:
9%bcond_without doc # skip (time-consuming) docs generating; intended for speed up test builds
10%bcond_without emacs # skip building package with ruby-mode for emacs
11%bcond_without tk # skip building package with Tk bindings
12%bcond_without batteries # Don't include rubygems, json or rake
13%bcond_with bootstrap # build bootstrap version
14#
15%define ruby_ver 1.9
16%define basever 1.9.3
17%define patchlevel 194
18%define doc_version 1_9_3
19%define json_ver 1.5.4
20%define rake_ver 0.9.2.2
21%define rubygems_ver 1.8.11
22%define minitest_ver 2.5.1
23%define rdoc_ver 3.9.4
24Summary: Ruby - interpreted scripting language
25Summary(ja.UTF-8): オブジェクト指向言語Rubyインタプリタ
26Summary(pl.UTF-8): Ruby - interpretowany język skryptowy
27Summary(pt_BR.UTF-8): Linguagem de script orientada a objeto
28Summary(zh_CN.UTF-8): ruby - 一种快速高效的面向对象脚本编程语言
29Name: ruby
30Version: %{basever}.%{patchlevel}
31Release: 4
32Epoch: 1
33License: The Ruby License
34Group: Development/Languages
35Source0: ftp://ftp.ruby-lang.org/pub/ruby/%{name}-%{basever}-p%{patchlevel}.tar.bz2
36# Source0-md5: 2278eff4cfed3cbc0653bc73085caa34
37Source1: http://www.ruby-doc.org/download/%{name}-doc-bundle.tar.gz
38# Source1-md5: ad1af0043be98ba1a4f6d0185df63876
39Source2: http://www.ruby-doc.org/downloads/%{name}_%{doc_version}_stdlib_rdocs.tgz
40# Source2-md5: ec622612428672c432b6f65dd31a84b5
41Source3: http://www.ruby-doc.org/downloads/%{name}_%{doc_version}_core_rdocs.tgz
42# Source3-md5: 1892aadde51d36106c513bced2193dff
43Source100: ftp://ftp.ruby-lang.org/pub/ruby/1.8/%{name}-1.8.7-p330.tar.gz
44# Source100-md5: 50a49edb787211598d08e756e733e42e
45Source4: rdoc.1
46Source5: testrb.1
47Source6: %{name}-mode-init.el
48Patch0: %{name}-lib64.patch
49Patch1: %{name}-ffs.patch
50Patch2: fix-bison-invocation.patch
51URL: http://www.ruby-lang.org/
52BuildRequires: autoconf >= 2.60
53BuildRequires: automake
54BuildRequires: bison
55BuildRequires: db-devel
56%{?with_emacs:BuildRequires: emacs}
57BuildRequires: gdbm-devel >= 1.8.3
58BuildRequires: libffi-devel
59BuildRequires: ncurses-devel
60BuildRequires: openssl-devel
61BuildRequires: pkgconfig
62BuildRequires: readline-devel >= 4.2
63%{!?with_bootstrap:BuildRequires: ruby-modules}
64BuildRequires: sed >= 4.0
65BuildRequires: yaml-devel
66%if %{with tk}
67BuildRequires: tk-devel
68%endif
69Requires(post,postun): /sbin/ldconfig
70Provides: ruby(ver) = %{ruby_ver}
71Obsoletes: rdoc
72Obsoletes: ruby-REXML
73Obsoletes: ruby-doc < 1.8.4
74Obsoletes: ruby-fastthread
75%if %{with batteries}
76Provides: json = %{json_ver}
77Provides: rake = %{rake_ver}
78Provides: rubygems = %{rubygems_ver}
79Provides: ruby-json = %{json_ver}
80Provides: ruby-rake = %{rake_ver}
81Provides: ruby-rubygems = %{rubygems_ver}
82Obsoletes: ruby-json
83Obsoletes: ruby-rake
84Obsoletes: ruby-rubygems
85%endif
86Conflicts: ruby-activesupport < 2.3.11-2
87Conflicts: ruby-activesupport2 < 2.3.11-2
88BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89
90# bleh, some nasty (gcc or ruby) bug still not fixed
91# (SEGV or "unexpected break" on miniruby run during build)
92%define specflags_ia64 -O0
93
94# ruby needs frame pointers for correct exception handling
95%define specflags_ia32 -fno-omit-frame-pointer
96
97%description
98Ruby is the interpreted scripting language for quick and easy
99object-oriented programming. It has many features to process text
100files and to do system management tasks (as in Perl). It is simple,
101straight-forward, extensible, and portable.
102
103This package contains only shared library and ruby interpreter. To get
104full-functional ruby environment install ruby-modules package.
105
106%description -l ja.UTF-8
107Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です.Rubyは最初
108から純粋なオブジェクト指向言語として設計されていますから,オブジェクト
109指向プログラミングを手軽に行う事が出来ます.もちろん通常の手続き型のプ ログラミングも可能です.
110
111%description -l pl.UTF-8
112Ruby to interpretowany język skryptowy, w sam raz dla łatwego i
113szybkiego pisania zorientowanych obiektowo programów. Ma wiele funkcji
114ułatwiających przetwarzanie plików tekstowych i wykonywanie prac
115związanych z zarządzaniem systemu (podobnie jak Perl). Jest prosty,
116rozszerzalny i przenośny.
117
118Ten pakiet zawiera tylko bibliotekę dzieloną i interpreter ruby.
119Zainstaluj pakiet ruby-modules, jeżeli potrzebujesz w pełni
120funkcjonalnego środowiska ruby.
121
122%description -l pt_BR.UTF-8
123Ruby é uma linguagem de script interpretada de programação orientada a
124objeto. Possui diversas características para processamento de texto. É
125simples, extensível e direta.
126
127%package modules
128Summary: Ruby standard modules and utilities
129Summary(pl.UTF-8): Standardowe moduły i narzędzia dla języka Ruby
130Group: Development/Languages
131Requires: %{name} = %{epoch}:%{version}-%{release}
132Provides: ruby-modules(ver) = %{ruby_ver}
133Obsoletes: ruby-minitest
134
135%description modules
136Ruby standard modules and utilities:
137- erb - Tiny eRuby
138- rdoc - documentation tool for source code
139- irb - interactive Ruby
140- ri - Ruby interactive reference
141- testrb - automatic runner for Test::Unit of Ruby
142
143%description modules -l pl.UTF-8
144Standardowe moduły i narzędzia Ruby:
145- erb - mały eRuby
146- rdoc - narzędzie do dokumentowania kodu źródłowego
147- irb - interaktywny Ruby
148- ri - interaktywna dokumentacja Ruby
149- testrb - automatyczny runner dla Ruby Test::Unit
150
151%package tk
152Summary: Ruby/Tk bindings
153Summary(pl.UTF-8): Wiązania Ruby/Tk
154Group: Development/Languages
155Requires: %{name}-modules = %{epoch}:%{version}-%{release}
156
157%description tk
158This pachage contains Ruby/Tk bindings.
159
160%description tk -l pl.UTF-8
161Ten pakiet zawiera wiązania Ruby/Tk.
162
163%package devel
164Summary: Ruby development libraries
165Summary(pl.UTF-8): Biblioteki programistyczne interpretera języka Ruby
166Group: Development/Languages
167Requires: %{name}-modules = %{epoch}:%{version}-%{release}
168
169%description devel
170Ruby development libraries.
171
172%description devel -l pl.UTF-8
173Biblioteki programistyczne interpretera języka Ruby.
174
175%package static
176Summary: Ruby static libraries
177Summary(pl.UTF-8): Biblioteki statyczne Ruby
178Group: Development/Languages
179Requires: %{name}-devel = %{epoch}:%{version}-%{release}
180
181%description static
182Ruby static libraries.
183
184%description static -l pl.UTF-8
185Biblioteki statyczne Ruby.
186
187%package doc
188Summary: Ruby HTML documentation
189Summary(pl.UTF-8): Dokumentacja HTML do Ruby
190Group: Documentation
191
192%description doc
193Ruby HTML documentation: FAQ, guide, core and standard library.
194
195%description doc -l pl.UTF-8
196Dokumentacja HTML do Ruby: FAQ, przewodnik, dokumentacja dla core i
197stdlib.
198
199%package doc-ri
200Summary: Ruby ri documentation
201Summary(pl.UTF-8): Dokumentacja Ruby w formacie ri
202Group: Documentation
203Requires: %{name}-modules = %{epoch}:%{version}-%{release}
204
205%description doc-ri
206Ruby ri documentation.
207
208%description doc-ri -l pl.UTF-8
209Dokumentacja Ruby w formacie ri.
210
211%package examples
212Summary: Ruby examples
213Summary(pl.UTF-8): Przykłady dla języka Ruby
214Group: Development/Languages
215
216%description examples
217Ruby examples.
218
219%description examples -l pl.UTF-8
220Przykłady programów w języku Ruby.
221
222%package emacs-mode
223Summary: Ruby mode and debugger for Emacs
224Summary(pl.UTF-8): Tryb Ruby i debugger dla Emacsa
225Group: Development/Tools
226Requires: %{name}-modules = %{epoch}:%{version}-%{release}
227Requires: emacs-common
228
229%description emacs-mode
230Ruby mode and debugger for Emacs.
231
232%description emacs-mode -l pl.UTF-8
233Tryb Ruby i debugger dla Emacsa.
234
235%prep
236%if %{with bootstrap}
237%setup -q -n %{name}-%{basever}-p%{patchlevel} -a1 -a2 -a3 -a100
238%else
239%setup -q -n %{name}-%{basever}-p%{patchlevel} -a1 -a2 -a3
240%endif
241%patch0 -p1
242%patch1 -p1
243%patch2 -p1
244
245# must be regenerated with new bison
246%{__rm} parse.{c,h}
247
248find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
249
250find -type f '(' -name '*.rb' -o -name '*.cgi' -o -name '*.test' \
251 -o -name 'ruby.1' -o -name '*.html' -o -name '*.tcl' ')' \
252 | xargs %{__sed} -i 's,/usr/local/bin/,%{_bindir}/,'
253
254%build
255cp -f /usr/share/automake/config.sub .
256
257# build ruby-1.8.7 first
258%if %{with bootstrap}
259cd %{name}-1.8.7-p330
260%configure
261%{__make}
262cd ..
263%endif
264
265%{__autoconf}
266%configure \
267 %{?with_bootstrap:--with-baseruby=%{name}-1.8.7-p330/miniruby} \
268 --enable-shared \
269 --enable-pthread \
270 --with-ruby-version=minor
271
272%{__make} -j1 %{?with_bootstrap:BASERUBY="ruby-1.8.7-p330/miniruby -I./ruby-1.8.7-p330/lib"}
273
274%if %{with doc}
275%{__make} -j1 rdoc
276%endif
277
278%install
279rm -rf $RPM_BUILD_ROOT
280install -d $RPM_BUILD_ROOT{%{ruby_rdocdir},%{_examplesdir}/%{name}-%{version}} \
281 $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/tasks
282
283%{__make} install \
284 DESTDIR=$RPM_BUILD_ROOT
285
286cp -Rf sample/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
287cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1
288cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/man1
289
290%if %{without batteries}
291# packaged separately
292%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/{rubygems,rake,json,tasks}
293%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/*-linux*/json
294%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/{rake,rubygems,json}.rb
295%{__rm} $RPM_BUILD_ROOT%{_bindir}/{gem,rake}
296%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/rake*
297%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/ri/%{ruby_ver}/system/JSON
298%endif
299
300# ruby emacs mode - borrowed from FC-4
301%if %{with emacs}
302install -d $RPM_BUILD_ROOT%{_emacs_lispdir}/{%{name}-mode,site-start.d}
303cp -a misc/*.el $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode
304%{__rm} $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode/rubydb2x.el*
305install -p %{SOURCE6} $RPM_BUILD_ROOT%{_emacs_lispdir}/site-start.d
306cat << 'EOF' > path.el
307(setq load-path (cons "." load-path) byte-compile-warnings nil)
308EOF
309emacs --no-site-file -q -batch -l path.el -f batch-byte-compile $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode/*.el
310%{__rm} path.el*
311%endif
312
313%clean
314rm -rf $RPM_BUILD_ROOT
315
316%post -p /sbin/ldconfig
317%postun -p /sbin/ldconfig
318
319%files
320%defattr(644,root,root,755)
321%doc NEWS LEGAL README README.EXT ChangeLog ToDo
322%attr(755,root,root) %{_bindir}/ruby
323%if %{with batteries}
324%attr(755,root,root) %{_bindir}/gem
325%attr(755,root,root) %{_bindir}/rake
326%endif
327%attr(755,root,root) %{_libdir}/libruby.so.*.*.*
328%attr(755,root,root) %ghost %{_libdir}/libruby.so.1.9
329%{_mandir}/man1/ruby.1*
330%if %{with batteries}
331%{_mandir}/man1/rake.1*
332%endif
333%dir %{_libdir}/%{name}
334%dir %{_libdir}/%{name}/%{ruby_ver}
335%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*
336%dir %{_libdir}/%{name}/site_ruby
337%dir %{_libdir}/%{name}/site_ruby/%{ruby_ver}
338%dir %{_libdir}/%{name}/site_ruby/%{ruby_ver}/*-linux*
339%dir %{_libdir}/%{name}/vendor_ruby
340%dir %{_libdir}/%{name}/vendor_ruby/%{ruby_ver}
341%dir %{_libdir}/%{name}/vendor_ruby/%{ruby_ver}/*-linux*
342%dir %{_datadir}/ri
343%dir %{_datadir}/ri/%{ruby_ver}
344%dir %{_datadir}/ri/%{ruby_ver}/system
345%dir %{ruby_rdocdir}
346
347%files devel
348%defattr(644,root,root,755)
349%attr(755,root,root) %{_libdir}/libruby.so
350%{_includedir}/%{name}-%{ruby_ver}
351%{_pkgconfigdir}/ruby-%{ruby_ver}.pc
352
353%files static
354%defattr(644,root,root,755)
355%{_libdir}/libruby-static.a
356
357%if %{with tk}
358%files tk
359%defattr(644,root,root,755)
360%{_libdir}/%{name}/%{ruby_ver}/tcltk.rb
361%{_libdir}/%{name}/%{ruby_ver}/tk*.rb
362%{_libdir}/%{name}/%{ruby_ver}/tk
363%{_libdir}/%{name}/%{ruby_ver}/tkextlib
364%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/t*.so
365%endif
366
367%files modules
368%defattr(644,root,root,755)
369%attr(755,root,root) %{_bindir}/erb
370%attr(755,root,root) %{_bindir}/irb
371%attr(755,root,root) %{_bindir}/rdoc
372%attr(755,root,root) %{_bindir}/ri
373%attr(755,root,root) %{_bindir}/testrb
374%{_libdir}/%{name}/%{ruby_ver}/bigdecimal
375%{_libdir}/%{name}/%{ruby_ver}/cgi
376%{_libdir}/%{name}/%{ruby_ver}/date
377%{_libdir}/%{name}/%{ruby_ver}/digest
378%{_libdir}/%{name}/%{ruby_ver}/dl
379%{_libdir}/%{name}/%{ruby_ver}/drb
380%{_libdir}/%{name}/%{ruby_ver}/fiddle
381%{_libdir}/%{name}/%{ruby_ver}/io
382%{_libdir}/%{name}/%{ruby_ver}/irb
383%{_libdir}/%{name}/%{ruby_ver}/matrix
384%{_libdir}/%{name}/%{ruby_ver}/minitest
385%{_libdir}/%{name}/%{ruby_ver}/net
386%{_libdir}/%{name}/%{ruby_ver}/openssl
387%{_libdir}/%{name}/%{ruby_ver}/optparse
388%if %{with batteries}
389%{_libdir}/%{name}/%{ruby_ver}/json
390%{_libdir}/%{name}/%{ruby_ver}/rake
391%{_libdir}/%{name}/%{ruby_ver}/rubygems
392%dir %{_libdir}/%{name}/%{ruby_ver}/tasks
393%endif
394%{_libdir}/%{name}/%{ruby_ver}/psych
395%{_libdir}/%{name}/%{ruby_ver}/racc
396%{_libdir}/%{name}/%{ruby_ver}/rbconfig
397%{_libdir}/%{name}/%{ruby_ver}/rdoc
398%{_libdir}/%{name}/%{ruby_ver}/rexml
399%{_libdir}/%{name}/%{ruby_ver}/rinda
400%{_libdir}/%{name}/%{ruby_ver}/ripper
401%{_libdir}/%{name}/%{ruby_ver}/rss
402%{_libdir}/%{name}/%{ruby_ver}/shell
403%{_libdir}/%{name}/%{ruby_ver}/syck
404%{_libdir}/%{name}/%{ruby_ver}/test
405%{_libdir}/%{name}/%{ruby_ver}/uri
406%{_libdir}/%{name}/%{ruby_ver}/webrick
407%{_libdir}/%{name}/%{ruby_ver}/xmlrpc
408%{_libdir}/%{name}/%{ruby_ver}/yaml
409%{_libdir}/%{name}/%{ruby_ver}/[A-Za-s]*.rb
410%{_libdir}/%{name}/%{ruby_ver}/tempfile.rb
411%{_libdir}/%{name}/%{ruby_ver}/thread.rb
412%{_libdir}/%{name}/%{ruby_ver}/thwait.rb
413%{_libdir}/%{name}/%{ruby_ver}/time.rb
414%{_libdir}/%{name}/%{ruby_ver}/timeout.rb
415%{_libdir}/%{name}/%{ruby_ver}/tmpdir.rb
416%{_libdir}/%{name}/%{ruby_ver}/tracer.rb
417%{_libdir}/%{name}/%{ruby_ver}/tsort.rb
418%{_libdir}/%{name}/%{ruby_ver}/[u-z]*.rb
419%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/[a-s]*.so
420%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/[u-z]*.so
421%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/digest
422%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/digest/*.so
423%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/dl
424%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/dl/callback.so
425%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc
426%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc/*.so
427%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc/trans
428%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc/trans/*.so
429%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/io
430%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/io/*.so
431%if %{with batteries}
432%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/json
433%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/json/ext
434%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/json/ext/*.so
435%endif
436%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/mathn
437%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/mathn/*.so
438%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/racc
439%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/racc/*.so
440%{_libdir}/%{name}/%{ruby_ver}/*-linux*/rbconfig.rb
441%dir %{_libdir}/%{name}/gems
442%dir %{_libdir}/%{name}/gems/%{ruby_ver}
443%dir %{_libdir}/%{name}/gems/%{ruby_ver}/gems
444%dir %{_libdir}/%{name}/gems/%{ruby_ver}/specifications
445%{_libdir}/%{name}/gems/%{ruby_ver}/specifications/io-console-*.gemspec
446%{_libdir}/%{name}/gems/%{ruby_ver}/specifications/bigdecimal-*.gemspec
447%if %{with batteries}
448%dir %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rake-%{rake_ver}
449%dir %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rake-%{rake_ver}/bin
450%attr(755,root,root) %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rake-%{rake_ver}/bin/rake
451%dir %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rdoc-%{rdoc_ver}
452%dir %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rdoc-%{rdoc_ver}/bin
453%attr(755,root,root) %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rdoc-%{rdoc_ver}/bin/rdoc
454%attr(755,root,root) %{_libdir}/%{name}/gems/%{ruby_ver}/gems/rdoc-%{rdoc_ver}/bin/ri
455%{_libdir}/%{name}/gems/%{ruby_ver}/specifications/minitest-%{minitest_ver}.gemspec
456%{_libdir}/%{name}/gems/%{ruby_ver}/specifications/rake-%{rake_ver}.gemspec
457%{_libdir}/%{name}/gems/%{ruby_ver}/specifications/rdoc-%{rdoc_ver}.gemspec
458%{_libdir}/%{name}/gems/%{ruby_ver}/specifications/json-%{json_ver}.gemspec
459%endif
460%{_mandir}/man1/erb.1*
461%{_mandir}/man1/irb.1*
462%{_mandir}/man1/rdoc.1*
463%{_mandir}/man1/ri.1*
464%{_mandir}/man1/testrb.1*
465
466%files doc
467%defattr(644,root,root,755)
468%doc ruby-doc-bundle/*
469%{?with_doc:%doc ruby_%{doc_version}_stdlib}
470%{?with_doc:%doc ruby_%{doc_version}_core}
471
472%if %{with doc}
473%files doc-ri
474%defattr(644,root,root,755)
475%{_datadir}/ri/%{ruby_ver}/system/*
476%endif
477
478%files examples
479%defattr(644,root,root,755)
480%{_examplesdir}/%{name}-%{version}
481
482%if %{with emacs}
483%files emacs-mode
484%defattr(644,root,root,755)
485%doc misc/*
486%dir %{_emacs_lispdir}/%{name}-mode
487%{_emacs_lispdir}/%{name}-mode/*.elc
488%{_emacs_lispdir}/site-start.d/*.el
489%endif
This page took 0.037078 seconds and 4 git commands to generate.