-%bcond_with brokendocs # Attempt to build docs
-%define ruby_ridir %{_datadir}/ri/1.8/system
+#
+# Conditional build:
+%bcond_without doc # skip generating docs (which is time-consuming). Intended for speed up test builds
+%bcond_without emacs # skip building package with ruby-mode for emacs
+%bcond_without tk # skip building package with Tk bindings
+#
+%define ruby_ver 1.9
+%define stdlibdoc_version 0.10.1
+%define patchlevel 378
+%define basever 1.9.1
Summary: Ruby - interpreted scripting language
-Summary(ja): ¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ìRuby¥¤¥ó¥¿¥×¥ê¥¿
-Summary(pl): Ruby - interpretowany jêzyk skryptowy
-Summary(pt_BR): Linguagem de script orientada a objeto
-Summary(zh_CN): ruby - Ò»ÖÖ¿ìËÙ¸ßЧµÄÃæÏò¶ÔÏó½Å±¾±à³ÌÓïÑÔ
+Summary(ja.UTF-8): ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88æ\8c\87å\90\91è¨\80èª\9eRubyã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿
+Summary(pl.UTF-8): Ruby - interpretowany język skryptowy
+Summary(pt_BR.UTF-8): Linguagem de script orientada a objeto
+Summary(zh_CN.UTF-8): ruby - 一种快速高效的面向对象脚本编程语言
Name: ruby
-Version: 1.8.3
-Release: 1
+Version: %{basever}.%{patchlevel}
+Release: 3
Epoch: 1
License: The Ruby License
Group: Development/Languages
-#Source0: ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz
-Source0: ftp://ftp.ruby-lang.org/pub/ruby/%{name}-%{version}.tar.gz
-# Source0-md5: 63d6c2bddd6af86664e338b31f3189a6
-Source1: http://www.ibiblio.org/pub/languages/ruby/doc/%{name}-texi-1.4-en.tar.gz
-# Source1-md5: 839fda4af52b5c5c6d21f879f7fc62bf
-Source2: http://www.math.sci.hokudai.ac.jp/~gotoken/ruby/%{name}-uguide-981227.tar.gz
-# Source2-md5: 24eadcd067278901da9ad70efb146b07
-Source3: http://www.ibiblio.org/pub/languages/ruby/doc/%{name}faq-990927.tar.gz
-# Source3-md5: 634c25b14e19925d10af3720d72e8741
-Source4: irb.1
-Source5: http://www.geocities.jp/kosako3/oniguruma/archive/onigd2_5_0.tar.gz
-# Source5-md5: 40cb52605c7292373d8dfd11015cb687
-%define stdlibdoc_version 0.9.13
-Source6: http://www.ruby-doc.org/downloads/stdlib/%{name}-doc-stdlib-%{stdlibdoc_version}.tgz
-# Source6-md5: 39dab8db652dad23ad8951f851549f06
-Source7: http://www.ruby-doc.org/downloads/Ruby-1.8.1_ri_data.zip
-# Source7-md5: 96e97cdfa55ed197e0e6c39159394c82
-Source8: macros.%{name}
-Patch0: %{name}-info.patch
-Patch1: %{name}-LIB_PREFIX.patch
-#Patch3: %{name}-mkmf-shared.patch
+Source0: ftp://ftp.ruby-lang.org/pub/ruby/%{name}-%{basever}-p%{patchlevel}.tar.bz2
+# Source0-md5: 5922459622a23612eb9b68a3586cb5f8
+Source1: http://www.ruby-doc.org/download/%{name}-doc-bundle.tar.gz
+# Source1-md5: ad1af0043be98ba1a4f6d0185df63876
+Source2: http://www.ruby-doc.org/download/stdlib/%{name}-doc-stdlib-%{stdlibdoc_version}.tgz
+# Source2-md5: 5437c281b44e7a4af142d2bd35eba407
+Source3: rdoc.1
+Source4: testrb.1
+Source5: %{name}-mode-init.el
+Patch0: %{name}-mkmf-shared.patch
+Patch1: %{name}-lib64.patch
URL: http://www.ruby-lang.org/
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: bison
BuildRequires: db-devel
+%{?with_emacs:BuildRequires: emacs}
BuildRequires: gdbm-devel >= 1.8.3
BuildRequires: ncurses-devel
+BuildRequires: openssl-devel
BuildRequires: readline-devel >= 4.2
-BuildRequires: texinfo
+BuildRequires: ruby-modules
+BuildRequires: sed >= 4.0
+%if %{with tk}
BuildRequires: tk-devel
-BuildRequires: unzip
+%endif
Requires(post,postun): /sbin/ldconfig
-Obsoletes: ruby-doc
+Provides: ruby(ver) = %{ruby_ver}
Obsoletes: rdoc
Obsoletes: ruby-REXML
+Obsoletes: ruby-doc < 1.8.4
+Obsoletes: ruby-fastthread
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _ulibdir %{_prefix}/lib
-
# bleh, some nasty (gcc or ruby) bug still not fixed
# (SEGV or "unexpected break" on miniruby run during build)
%define specflags_ia64 -O0
+# ruby needs frame pointers for correct exception handling
+%define specflags_ia32 -fno-omit-frame-pointer
+
%description
Ruby is the interpreted scripting language for quick and easy
object-oriented programming. It has many features to process text
files and to do system management tasks (as in Perl). It is simple,
straight-forward, extensible, and portable.
-%description -l ja
-Ruby¤Ï¥·¥ó¥×¥ë¤«¤Ä¶¯ÎϤʥª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥¹¥¯¥ê¥×¥È¸À¸ì¤Ç¤¹¡¥Ruby¤ÏºÇ½é
-¤«¤é½ã¿è¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤È¤·¤ÆÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¤«¤é¡¤¥ª¥Ö¥¸¥§¥¯¥È
-»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤ò¼ê·Ú¤Ë¹Ô¤¦»ö¤¬½ÐÍè¤Þ¤¹¡¥¤â¤Á¤í¤óÄ̾ï¤Î¼ê³¤·¿¤Î¥×
-¥í¥°¥é¥ß¥ó¥°¤â²Äǽ¤Ç¤¹¡¥
-
-%description -l pl
-Ruby to interpretowany jêzyk skryptowy, w sam raz dla ³atwego i
-szybkiego pisania zorientowanych obiektowo programów. Ma wiele funkcji
-u³atwiaj±cych przetwarzanie plików tekstowych i wykonywanie prac
-zwi±zanych z zarz±dzaniem systemu (podobnie jak Perl). Jest prosty,
-rozszerzalny i przeno¶ny.
-
-%description -l pt_BR
-Ruby é uma linguagem de script interpretada de programação orientada a
-objeto. Possui diversas características para processamento de texto. É
-simples, extensível e direta.
+This package contains only shared library and ruby interpreter. To get
+full-functional ruby environment install ruby-modules package.
+
+%description -l ja.UTF-8
+Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です.Rubyは最初
+から純粋なオブジェクト指向言語として設計されていますから,オブジェクト
+指向プログラミングを手軽に行う事が出来ます.もちろん通常の手続き型のプ
+ログラミングも可能です.
+
+%description -l pl.UTF-8
+Ruby to interpretowany język skryptowy, w sam raz dla łatwego i
+szybkiego pisania zorientowanych obiektowo programów. Ma wiele funkcji
+ułatwiających przetwarzanie plików tekstowych i wykonywanie prac
+związanych z zarządzaniem systemu (podobnie jak Perl). Jest prosty,
+rozszerzalny i przenośny.
+
+Ten pakiet zawiera tylko bibliotekę dzieloną i interpreter ruby.
+Zainstaluj pakiet ruby-modules, jeżeli potrzebujesz w pełni
+funkcjonalnego środowiska ruby.
+
+%description -l pt_BR.UTF-8
+Ruby é uma linguagem de script interpretada de programação orientada a
+objeto. Possui diversas características para processamento de texto. É
+simples, extensível e direta.
+
+%package modules
+Summary: Ruby standard modules and utilities
+Summary(pl.UTF-8): Standardowe moduły i narzędzia dla języka Ruby
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Provides: ruby-modules(ver) = %{ruby_ver}
+
+%description modules
+Ruby standard modules and utilities:
+- erb - Tiny eRuby
+- rdoc - documentation tool for source code
+- irb - interactive Ruby
+- ri - Ruby interactive reference
+- testrb - automatic runner for Test::Unit of Ruby
+
+%description modules -l pl.UTF-8
+Standardowe moduły i narzędzia Ruby:
+- erb - mały eRuby
+- rdoc - narzędzie do dokumentowania kodu źródłowego
+- irb - interaktywny Ruby
+- ri - interaktywna dokumentacja Ruby
+- testrb - automatyczny runner dla Ruby Test::Unit
%package tk
Summary: Ruby/Tk bindings
-Summary(pl): Wi±zania Ruby/Tk
+Summary(pl.UTF-8): Wiązania Ruby/Tk
Group: Development/Languages
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name}-modules = %{epoch}:%{version}-%{release}
%description tk
This pachage contains Ruby/Tk bindings.
-%description tk -l pl
-Ten pakiet zawiera wi±zania Ruby/Tk.
+%description tk -l pl.UTF-8
+Ten pakiet zawiera wiązania Ruby/Tk.
%package devel
Summary: Ruby development libraries
-Summary(pl): Biblioteki programistyczne interpretera jêzyka Ruby
+Summary(pl.UTF-8): Biblioteki programistyczne interpretera języka Ruby
Group: Development/Languages
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name}-modules = %{epoch}:%{version}-%{release}
%description devel
Ruby development libraries.
-%description devel -l pl
-Biblioteki programistyczne interpretera jêzyka Ruby.
+%description devel -l pl.UTF-8
+Biblioteki programistyczne interpretera języka Ruby.
%package static
Summary: Ruby static libraries
-Summary(pl): Biblioteki statyczne Ruby
+Summary(pl.UTF-8): Biblioteki statyczne Ruby
Group: Development/Languages
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%description static
Ruby static libraries.
-%description devel -l pl
+%description static -l pl.UTF-8
Biblioteki statyczne Ruby.
+%package doc
+Summary: Ruby HTML documentation
+Summary(pl.UTF-8): Dokumentacja HTML do Ruby
+Group: Documentation
+
+%description doc
+Ruby HTML documentation: FAQ, guide, core and standard library.
+
+%description doc -l pl.UTF-8
+Dokumentacja HTML do Ruby: FAQ, przewodnik, dokumentacja dla core i
+stdlib.
+
+%package doc-ri
+Summary: Ruby ri documentation
+Summary(pl.UTF-8): Dokumentacja Ruby w formacie ri
+Group: Documentation
+Requires: %{name}-modules = %{epoch}:%{version}-%{release}
+
+%description doc-ri
+Ruby ri documentation.
+
+%description doc-ri -l pl.UTF-8
+Dokumentacja Ruby w formacie ri.
+
+%package examples
+Summary: Ruby examples
+Summary(pl.UTF-8): Przykłady dla języka Ruby
+Group: Development/Languages
+
+%description examples
+Ruby examples.
+
+%description examples -l pl.UTF-8
+Przykłady programów w języku Ruby.
+
+%package emacs-mode
+Summary: Ruby mode and debugger for Emacs
+Summary(pl.UTF-8): Tryb Ruby i debugger dla Emacsa
+Group: Development/Tools
+Requires: %{name}-modules = %{epoch}:%{version}-%{release}
+Requires: emacs-common
+
+%description emacs-mode
+Ruby mode and debugger for Emacs.
+
+%description emacs-mode -l pl.UTF-8
+Tryb Ruby i debugger dla Emacsa.
+
%prep
-%setup -q -a1 -a2 -a3 -a5 -a6 -a7
+%setup -q -n %{name}-%{basever}-p%{patchlevel} -a1 -a2
%patch0 -p1
%patch1 -p1
-#%patch3 -p1
-find . -name '*.rb' -or -name '*.cgi' -or -name '*.test' | xargs perl -pi -e "s#/usr/local/bin#bin#"
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
+find -type f '(' -name '*.rb' -o -name '*.cgi' -o -name '*.test' \
+ -o -name 'ruby.1' -o -name '*.html' -o -name '*.tcl' ')' \
+ | xargs %{__sed} -i 's,/usr/local/bin/,%{_bindir}/,'
%build
cp -f /usr/share/automake/config.sub .
-cd oniguruma
-%configure \
- --with-rubydir=..
-%{__make} 18
-cd ..
-
%{__autoconf}
%configure \
--enable-shared \
--enable-pthread \
- --with-X11-lib=/usr/X11R6/%{_lib}
-
-%{__make}
-%{__make} info -C %{name}-texi-1.4-en
-
-mkdir rdoc
-
-RUBYLIB="lib:`find ext/ -type d | tr '\n' ':'`"
-export RUBYLIB
-
-LD_LIBRARY_PATH=. ./ruby bin/rdoc --inline-source --op rdoc/core \
- array.c bignum.c class.c compar.c dir.c dln.c dmyext.c enum.c \
- error.c eval.c file.c gc.c hash.c inits.c io.c lex.c main.c marshal.c \
- math.c numeric.c object.c pack.c parse.c prec.c process.c random.c range.c \
- re.c regex.c ruby.c signal.c sprintf.c st.c string.c struct.c time.c util.c \
- variable.c version.c \
- lib/English.rb lib/abbrev.rb lib/base64.rb lib/benchmark.rb lib/cgi.rb \
- lib/cgi/session.rb lib/complex.rb lib/date.rb lib/fileutils.rb lib/find.rb \
- lib/generator.rb lib/logger.rb lib/matrix.rb lib/observer.rb \
- lib/pathname.rb lib/set.rb lib/shellwords.rb lib/singleton.rb \
- lib/tempfile.rb lib/test/unit.rb lib/thread.rb lib/thwait.rb \
- lib/time.rb lib/yaml.rb
-
-mv ruby-doc-stdlib-%{stdlibdoc_version}/stdlib rdoc/stdlib
-
-mv ri/1.8/site ri/1.8/system
-
-%if %{with brokendocs}
-LD_LIBRARY_PATH=. ./ruby bin/rdoc --ri -o ri/1.8/system \
- array.c bignum.c class.c compar.c dir.c dln.c \
- dmyext.c enum.c error.c eval.c file.c gc.c hash.c inits.c io.c lex.c main.c \
- marshal.c math.c numeric.c object.c pack.c parse.c prec.c process.c \
- random.c range.c re.c regex.c ruby.c signal.c sprintf.c st.c string.c \
- struct.c time.c util.c variable.c version.c \
- lib/English.rb lib/abbrev.rb lib/base64.rb lib/benchmark.rb lib/cgi.rb \
- lib/cgi/session.rb lib/complex.rb lib/date.rb lib/fileutils.rb lib/find.rb \
- lib/generator.rb lib/logger.rb lib/matrix.rb lib/observer.rb lib/pathname.rb \
- lib/set.rb lib/shellwords.rb lib/singleton.rb lib/tempfile.rb \
- lib/test/unit.rb lib/thread.rb lib/thwait.rb lib/time.rb lib/yaml.rb
+ --with-ruby-version=minor \
+ --enable-frame-address
+
+%{__make} -j1
+
+%if %{with doc}
+%{__make} -j1 rdoc
%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1,%{_examplesdir}/%{name}-%{version},%{ruby_ridir},%{_libdir}/rpm,%{_datadir}/%{name}}
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-cp -a sample/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-install %{name}-texi-1.4-en/ruby.info* $RPM_BUILD_ROOT%{_infodir}
-install %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1
-
-mv -f ruby-uguide guide
-mv -f rubyfaq faq
-
-cp -a ri/1.8/system/* $RPM_BUILD_ROOT%{ruby_ridir}
-
-install %{SOURCE8} $RPM_BUILD_ROOT%{_libdir}/rpm
+cp -Rf sample/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1
+cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1
+
+# packaged separately
+rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/{rubygems,rake,json,minitest}
+rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/*-linux*/json
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/%{ruby_ver}/{rake,rubygems,json}.rb
+rm $RPM_BUILD_ROOT%{_bindir}/{gem,rake}
+rm $RPM_BUILD_ROOT%{_mandir}/man1/rake*
+
+# ruby emacs mode - borrowed from FC-4
+%if %{with emacs}
+install -d $RPM_BUILD_ROOT%{_emacs_lispdir}/{%{name}-mode,site-start.d}
+cp -a misc/*.el $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode
+rm -f $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode/rubydb2x.el*
+install -p %{SOURCE5} $RPM_BUILD_ROOT%{_emacs_lispdir}/site-start.d
+cat << 'EOF' > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+emacs --no-site-file -q -batch -l path.el -f batch-byte-compile $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode/*.el
+rm -f path.el*
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
-/sbin/ldconfig
-
-%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir %{_infodir} >/dev/null 2>&1
-/sbin/ldconfig
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
-%doc guide faq misc README README.EXT ChangeLog ToDo
-%doc rdoc
-%attr(755,root,root) %{_bindir}/*
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
-%dir %{_datadir}/%{name}
+%doc NEWS LEGAL README README.EXT ChangeLog ToDo
+%attr(755,root,root) %{_bindir}/ruby
+%attr(755,root,root) %{_libdir}/libruby.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libruby.so.1.9
+%{_mandir}/man1/ruby.1*
%dir %{_libdir}/%{name}
-%dir %{_libdir}/%{name}/1.8
-%{_libdir}/%{name}/1.8/bigdecimal
-%{_libdir}/%{name}/1.8/cgi
-%{_libdir}/%{name}/1.8/date
-%{_libdir}/%{name}/1.8/dl
-%{_libdir}/%{name}/1.8/drb
-%{_libdir}/%{name}/1.8/io
-%{_libdir}/%{name}/1.8/irb
-%{_libdir}/%{name}/1.8/net
-%{_libdir}/%{name}/1.8/openssl
-%{_libdir}/%{name}/1.8/optparse
-%{_libdir}/%{name}/1.8/racc
-%{_libdir}/%{name}/1.8/rdoc
-%{_libdir}/%{name}/1.8/rexml
-%{_libdir}/%{name}/1.8/rinda
-%{_libdir}/%{name}/1.8/rss
-%{_libdir}/%{name}/1.8/runit
-%{_libdir}/%{name}/1.8/shell
-%{_libdir}/%{name}/1.8/soap
-%{_libdir}/%{name}/1.8/test
-%{_libdir}/%{name}/1.8/uri
-%{_libdir}/%{name}/1.8/webrick
-%{_libdir}/%{name}/1.8/wsdl
-%{_libdir}/%{name}/1.8/xmlrpc
-%{_libdir}/%{name}/1.8/xsd
-%{_libdir}/%{name}/1.8/yaml
-%{_libdir}/%{name}/1.8/[A-Za-s]*.rb
-%{_libdir}/%{name}/1.8/tempfile.rb
-%{_libdir}/%{name}/1.8/thread.rb
-%{_libdir}/%{name}/1.8/thwait.rb
-%{_libdir}/%{name}/1.8/time.rb
-%{_libdir}/%{name}/1.8/timeout.rb
-%{_libdir}/%{name}/1.8/tmpdir.rb
-%{_libdir}/%{name}/1.8/tracer.rb
-%{_libdir}/%{name}/1.8/tsort.rb
-%{_libdir}/%{name}/1.8/[u-z]*.rb
-%dir %{_libdir}/%{name}/1.8/*-linux*
-%dir %{_libdir}/%{name}/1.8/*-linux*/digest
-%dir %{_libdir}/%{name}/1.8/*-linux*/io
-%dir %{_libdir}/%{name}/1.8/*-linux*/racc
-%attr(755,root,root) %{_libdir}/%{name}/1.8/*-linux*/[a-s]*.so
-%attr(755,root,root) %{_libdir}/%{name}/1.8/*-linux*/[u-z]*.so
-%attr(755,root,root) %{_libdir}/%{name}/1.8/*-linux*/digest/*.so
-%attr(755,root,root) %{_libdir}/%{name}/1.8/*-linux*/io/*.so
-%attr(755,root,root) %{_libdir}/%{name}/1.8/*-linux*/racc/*.so
-%{_libdir}/%{name}/1.8/*-linux*/rbconfig.rb
-%dir %{_ulibdir}/%{name}/site_ruby
-%dir %{_ulibdir}/%{name}/site_ruby/1.8
-%dir %{_ulibdir}/%{name}/site_ruby/1.8/*-linux*
-%{_datadir}/ri
-%{_mandir}/*/*
-%{_infodir}/*.info*
-%{_examplesdir}/%{name}-%{version}
+%dir %{_libdir}/%{name}/%{ruby_ver}
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*
+%dir %{_libdir}/%{name}/site_ruby
+%dir %{_libdir}/%{name}/site_ruby/%{ruby_ver}
+%dir %{_libdir}/%{name}/site_ruby/%{ruby_ver}/*-linux*
+%dir %{_libdir}/%{name}/vendor_ruby
+%dir %{_libdir}/%{name}/vendor_ruby/%{ruby_ver}
+%dir %{_libdir}/%{name}/vendor_ruby/%{ruby_ver}/*-linux*
+%dir %{_datadir}/ri
+%dir %{_datadir}/ri/%{ruby_ver}
+%dir %{_datadir}/ri/%{ruby_ver}/system
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/%{name}/1.8/*/*.h
-%{_libdir}/rpm/macros.ruby
+%attr(755,root,root) %{_libdir}/libruby.so
+%{_includedir}/%{name}-%{ruby_ver}
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libruby-static.a
+%if %{with tk}
%files tk
%defattr(644,root,root,755)
-%{_libdir}/%{name}/1.8/tcltk.rb
-%{_libdir}/%{name}/1.8/tk*.rb
-%{_libdir}/%{name}/1.8/tk
-%{_libdir}/%{name}/1.8/tkextlib
-%attr(755,root,root) %{_libdir}/%{name}/1.8/*-linux*/t*.so
+%{_libdir}/%{name}/%{ruby_ver}/tcltk.rb
+%{_libdir}/%{name}/%{ruby_ver}/tk*.rb
+%{_libdir}/%{name}/%{ruby_ver}/tk
+%{_libdir}/%{name}/%{ruby_ver}/tkextlib
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/t*.so
+%endif
+
+%files modules
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/erb
+%attr(755,root,root) %{_bindir}/irb
+%attr(755,root,root) %{_bindir}/rdoc
+%attr(755,root,root) %{_bindir}/ri
+%attr(755,root,root) %{_bindir}/testrb
+%{_libdir}/%{name}/%{ruby_ver}/bigdecimal
+%{_libdir}/%{name}/%{ruby_ver}/cgi
+%{_libdir}/%{name}/%{ruby_ver}/date
+%{_libdir}/%{name}/%{ruby_ver}/digest
+%{_libdir}/%{name}/%{ruby_ver}/dl
+%{_libdir}/%{name}/%{ruby_ver}/drb
+%{_libdir}/%{name}/%{ruby_ver}/io
+%{_libdir}/%{name}/%{ruby_ver}/irb
+%{_libdir}/%{name}/%{ruby_ver}/net
+%{_libdir}/%{name}/%{ruby_ver}/openssl
+%{_libdir}/%{name}/%{ruby_ver}/optparse
+%{_libdir}/%{name}/%{ruby_ver}/racc
+%{_libdir}/%{name}/%{ruby_ver}/rbconfig
+%{_libdir}/%{name}/%{ruby_ver}/rdoc
+%{_libdir}/%{name}/%{ruby_ver}/rexml
+%{_libdir}/%{name}/%{ruby_ver}/rinda
+%{_libdir}/%{name}/%{ruby_ver}/ripper
+%{_libdir}/%{name}/%{ruby_ver}/rss
+%{_libdir}/%{name}/%{ruby_ver}/shell
+%{_libdir}/%{name}/%{ruby_ver}/test
+%{_libdir}/%{name}/%{ruby_ver}/uri
+%{_libdir}/%{name}/%{ruby_ver}/webrick
+%{_libdir}/%{name}/%{ruby_ver}/xmlrpc
+%{_libdir}/%{name}/%{ruby_ver}/yaml
+%{_libdir}/%{name}/%{ruby_ver}/[A-Za-s]*.rb
+%{_libdir}/%{name}/%{ruby_ver}/tempfile.rb
+%{_libdir}/%{name}/%{ruby_ver}/thread.rb
+%{_libdir}/%{name}/%{ruby_ver}/thwait.rb
+%{_libdir}/%{name}/%{ruby_ver}/time.rb
+%{_libdir}/%{name}/%{ruby_ver}/timeout.rb
+%{_libdir}/%{name}/%{ruby_ver}/tmpdir.rb
+%{_libdir}/%{name}/%{ruby_ver}/tracer.rb
+%{_libdir}/%{name}/%{ruby_ver}/tsort.rb
+%{_libdir}/%{name}/%{ruby_ver}/[u-z]*.rb
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/digest
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc/trans
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/io
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/mathn
+%dir %{_libdir}/%{name}/%{ruby_ver}/*-linux*/racc
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/[a-s]*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/[u-z]*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/digest/*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc/*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/enc/trans/*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/io/*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/mathn/*.so
+%attr(755,root,root) %{_libdir}/%{name}/%{ruby_ver}/*-linux*/racc/*.so
+%{_libdir}/%{name}/%{ruby_ver}/*-linux*/rbconfig.rb
+%{_mandir}/man1/erb.1*
+%{_mandir}/man1/irb.1*
+%{_mandir}/man1/rdoc.1*
+%{_mandir}/man1/ri.1*
+%{_mandir}/man1/testrb.1*
+
+%files doc
+%defattr(644,root,root,755)
+%doc ruby-doc-bundle/*
+%{?with_doc:%doc ruby-doc-stdlib-%{stdlibdoc_version}/stdlib}
+
+%if %{with doc}
+%files doc-ri
+%defattr(644,root,root,755)
+%{_datadir}/ri/%{ruby_ver}/system/*
+%endif
+
+%files examples
+%defattr(644,root,root,755)
+%{_examplesdir}/%{name}-%{version}
+
+%if %{with emacs}
+%files emacs-mode
+%defattr(644,root,root,755)
+%doc misc/*
+%dir %{_emacs_lispdir}/%{name}-mode
+%{_emacs_lispdir}/%{name}-mode/*.elc
+%{_emacs_lispdir}/site-start.d/*.el
+%endif