# TODO:
# - include ext/ in docs
# - replace ri with fastri
-# - patch ri to search multiple indexes (one per package), so RPMs can
-# install ri docs
-# - drop emacs
-#* Mon Jul 12 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.299-3
-#- updated packaged based on feedback (from mtasaka)
-#- added comments to all patches / sources
-#- obsoleted ruby-mode, as it's now provided by the emacs package itself
-#- readded missing documentation
-#- various small compatability/regression fixes
-#* Thu Jun 24 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.299-1
-#- integrate more of jmeyering's and mtaska's feedback
-#- removed emacs bits that are now shipped with the emacs package
-#- various patch and spec cleanup
-#- rebased to ruby 1.8.7 patch 299, removed patches no longer needed:
-# ruby-1.8.7-openssl-1.0.patch, ruby-1.8.7-rb_gc_guard_ptr-optimization.patch
-
+# - patch ri to search multiple indexes (one per package), so RPMs can install ri docs
+# - fix inconsistencies with versioned vs not-versioned dirs (see dirname hacks in configure)
+# - custom-rubygems-location.patch
#
# Conditional build:
%bcond_without doc # skip (time-consuming) docs generating; 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
%bcond_without batteries # Don't include rubygems, json or rake
-%bcond_without verpath # LOAD_PATH with version number
%bcond_with bootstrap # build bootstrap version
-%define ruby_ver 1.9
+%define ruby_version 1.9
%define basever 1.9.3
%define patchlevel 392
%define doc_version 1_9_3
Summary(zh_CN.UTF-8): ruby - 一种快速高效的面向对象脚本编程语言
Name: ruby
Version: %{basever}.%{patchlevel}
-Release: 0.1
+# NOTE: do not decrease Release, when updating Version,
+# unless rdoc_ver, rubygems_ver *both* are increased as well
+Release: 2
Epoch: 1
-License: The Ruby License
+# Public Domain for example for: include/ruby/st.h, strftime.c, ...
+License: (Ruby or BSD) and Public Domain
Group: Development/Languages
-Source0: ftp://ftp.ruby-lang.org/pub/ruby/%{ruby_ver}/%{name}-%{basever}-p%{patchlevel}.tar.bz2
+Source0: ftp://ftp.ruby-lang.org/pub/ruby/%{ruby_version}/%{name}-%{basever}-p%{patchlevel}.tar.bz2
# Source0-md5: a810d64e2255179d2f334eb61fb8519c
Source1: http://www.ruby-doc.org/download/%{name}-doc-bundle.tar.gz
# Source1-md5: ad1af0043be98ba1a4f6d0185df63876
BuildRequires: automake
BuildRequires: bison
BuildRequires: db-devel
-%{?with_emacs:BuildRequires: emacs}
BuildRequires: gdbm-devel >= 1.8.3
BuildRequires: libffi-devel
BuildRequires: ncurses-devel
BuildRequires: tk-devel
%endif
Requires(post,postun): /sbin/ldconfig
-Provides: ruby(ver) = %{ruby_ver}
+Provides: ruby(ver) = %{ruby_version}
Obsoletes: rdoc
Obsoletes: ruby-REXML
Obsoletes: ruby-doc < 1.8.4
Provides: rake = %{rake_ver}
Provides: ruby-json = %{json_ver}
Provides: ruby-rake = %{rake_ver}
-Provides: ruby-rubygems = %{rubygems_ver}
-Provides: rubygems = %{rubygems_ver}
Obsoletes: ruby-json
Obsoletes: ruby-rake
-Obsoletes: ruby-rubygems
%endif
Conflicts: ruby-activesupport < 2.3.11-2
Conflicts: ruby-activesupport2 < 2.3.11-2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define ruby_ridir %{_datadir}/ri/%{ruby_version}/system
%define gem_dir %{_datadir}/%{name}/gems/%{ruby_version}
# The RubyGems library has to stay out of Ruby directory three, since the
# RubyGems should be share by all Ruby implementations.
-%define rubygems_dir %{_datadir}/rubygems
+%define rubygems_dir %{_datadir}/rubygems
-%define ruby_libdir %{_datadir}/%{name}
-%define ruby_libarchdir %{_libdir}/%{name}
+%define ruby_archdir %{_libdir}/%{name}/%{ruby_version}
+%define ruby_libdir %{_datadir}/%{name}/%{ruby_version}
# This is the local lib/arch and should not be used for packaging.
-%define ruby_sitedir site_ruby
-%define ruby_sitelibdir %{_prefix}/local/share/%{name}/%{ruby_sitedir}
-%define ruby_sitearchdir %{_prefix}/local/%{_lib}/%{name}/%{ruby_sitedir}
+%define sitedir site_ruby
+%define ruby_sitedir %{_prefix}/local/share/%{name}/%{sitedir}
+%define ruby_sitearchdir %{_prefix}/local/%{_lib}/%{name}/%{sitedir}/%{ruby_version}
+%define ruby_sitelibdir %{_prefix}/local/share/%{name}/%{sitedir}/%{ruby_version}
# This is the general location for libs/archs compatible with all
# or most of the Ruby versions available in the PLD repositories.
-%define ruby_vendordir vendor_ruby
-%define ruby_vendorlibdir %{_datadir}/%{name}/%{ruby_vendordir}
-%define ruby_vendorarchdir %{_libdir}/%{name}/%{ruby_vendordir}
+%define vendordir vendor_ruby
+%define ruby_vendordir %{_datadir}/%{name}/%{vendordir}
+%define ruby_vendorarchdir %{_libdir}/%{name}/%{vendordir}/%{ruby_version}
+%define ruby_vendorlibdir %{_datadir}/%{name}/%{vendordir}/%{ruby_version}
# TODO: drop legacy loadpaths after all ruby modules rebuilt in Th
-%define legacy_libdir %{_libdir}/%{name}/%{ruby_version}
-%define legacy_archdir %{_libdir}/%{name}/%{ruby_version}/%{_arch}-linux
-%define legacy_sitedir %{_libdir}/%{name}/%{ruby_sitedir}
-%define legacy_sitelibdir %{_libdir}/%{name}/%{ruby_sitedir}/%{ruby_version}
-%define legacy_sitearchdir %{_libdir}/%{name}/%{ruby_sitedir}/%{ruby_version}/%{_arch}-linux
-%define legacy_vendordir %{_libdir}/%{name}/%{ruby_vendordir}
-%define legacy_vendorlibdir %{_libdir}/%{name}/%{ruby_vendordir}/%{ruby_version}
-%define legacy_vendorarchdir %{_libdir}/%{name}/%{ruby_vendordir}/%{ruby_version}/%{_arch}-linux
-
-%define legacy_siteloadpath %{legacy_sitelibdir}:%{legacy_sitearchdir}:%{legacy_sitedir}
-%define legacy_vendorloadpath %{legacy_vendorlibdir}:%{legacy_vendorarchdir}:%{legacy_vendordir}
-%define legacy_loadpath %{legacy_libdir}:%{legacy_archdir}
-%define legacy_loadpaths %{legacy_siteloadpath}:%{legacy_vendorloadpath}:%{legacy_loadpath}
+%define legacy_libdir %{_libdir}/%{name}/%{ruby_version}
+%define legacy_archdir %{_libdir}/%{name}/%{ruby_version}/%{_arch}-linux
+%define legacy_sitedir %{_libdir}/%{name}/%{sitedir}
+%define legacy_sitelibdir %{_libdir}/%{name}/%{sitedir}/%{ruby_version}
+%define legacy_sitearchdir %{_libdir}/%{name}/%{sitedir}/%{ruby_version}/%{_arch}-linux
+%define legacy_vendordir %{_libdir}/%{name}/%{vendordir}
+%define legacy_vendorlibdir %{_libdir}/%{name}/%{vendordir}/%{ruby_version}
+%define legacy_vendorarchdir%{_libdir}/%{name}/%{vendordir}/%{ruby_version}/%{_arch}-linux
+
+%define legacy_siteloadpath %{legacy_sitelibdir}\\0%{legacy_sitearchdir}\\0%{legacy_sitedir}
+%define legacy_vendorloadpath %{legacy_vendorarchdir}
+%define legacy_loadpath %{legacy_archdir}
+%define legacy_loadpaths %{legacy_siteloadpath}\\0%{legacy_vendorloadpath}\\0%{legacy_loadpath}
# bleh, some nasty (gcc or ruby) bug still not fixed
# (SEGV or "unexpected break" on miniruby run during build)
Summary(pl.UTF-8): Standardowe moduły i narzędzia dla języka Ruby
Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
-# workaround for autodep generator net getting version properly
-Provides: ruby(abi) = %{ruby_ver}
-Provides: ruby-modules(ver) = %{ruby_ver}
+Suggests: ruby-rubygems
+# workaround for autodep generator not getting version properly
+Provides: ruby(abi) = %{ruby_version}
+Provides: ruby-modules(ver) = %{ruby_version}
Obsoletes: ruby-minitest
%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
%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.
+# IMPORTANT: keep this as last package, as we reset Epoch
+%package rdoc
+Summary: A tool to generate HTML and command-line documentation for Ruby projects
+Version: %{rdoc_ver}
+Epoch: 0
+License: GPL v2 and Ruby and MIT
+Group: Development/Libraries
+Requires: %{name}-modules = 1:%{basever}.%{patchlevel}-%{release}
+
+%description rdoc
+RDoc produces HTML and command-line documentation for Ruby projects.
+RDoc includes the 'rdoc' and 'ri' tools for generating and displaying
+online documentation.
+
+%package rubygems
+Summary: The Ruby standard for packaging ruby libraries
+Version: %{rubygems_ver}
+License: Ruby or MIT
+Group: Development/Libraries
+Requires: %{name}-modules = 1:%{basever}.%{patchlevel}-%{release}
+Requires: %{name}-rdoc >= %{rdoc_ver}
+Provides: rubygems = %{rubygems_ver}
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
-%description emacs-mode -l pl.UTF-8
-Tryb Ruby i debugger dla Emacsa.
+%description rubygems
+RubyGems is the Ruby standard for publishing and managing third party
+libraries.
%prep
%if %{with bootstrap}
%{__autoconf}
%configure \
%{?with_bootstrap:--with-baseruby=%{name}-1.8.7-p330/miniruby} \
- --with-rubylibprefix=%{ruby_libdir} \
- --with-archdir=%{ruby_libarchdir} \
- --with-sitedir=%{ruby_sitelibdir} \
+ --with-rubylibprefix=%(dirname %{ruby_libdir}) \
+ --with-archdir=%{ruby_archdir} \
+ --with-sitedir=%(dirname %{ruby_sitelibdir}) \
--with-sitearchdir=%{ruby_sitearchdir} \
- --with-vendordir=%{ruby_vendorlibdir} \
+ --with-vendordir=%(dirname %{ruby_vendorlibdir}) \
--with-vendorarchdir=%{ruby_vendorarchdir} \
--with-rubygemsdir=%{rubygems_dir} \
- --with-search-path=%{legacy_loadpaths} \
+ --with-search-path="%{legacy_loadpaths}" \
--enable-shared \
--enable-pthread \
--disable-install-doc \
- %{!?with_verpath:--disable-versioned-paths} \
--with-ruby-version=minor
%{__make} -j1 main \
%{?with_bootstrap:BASERUBY="ruby-1.8.7-p330/miniruby -I./ruby-1.8.7-p330/lib"}
%if %{with doc}
-%{__make} -j1 docs
+%{__make} -j1 rdoc
%endif
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{ruby_rdocdir},%{_examplesdir}/%{name}-%{version}} \
- $RPM_BUILD_ROOT%{ruby_libdir}/%{ruby_version}/tasks
+ $RPM_BUILD_ROOT%{ruby_libdir}/tasks \
+ $RPM_BUILD_ROOT{%{ruby_vendorarchdir},%{ruby_ridir}} \
+ $RPM_BUILD_ROOT{%{legacy_archdir},%{legacy_sitelibdir},%{legacy_sitearchdir},%{legacy_vendorarchdir}} \
%{__make} install %{?with_doc:install-doc} \
DESTDIR=$RPM_BUILD_ROOT
cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1
cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/man1
+%{__rm} -rf $RPM_BUILD_ROOT%{_docdir}/%{name}/html
+
%if %{without batteries}
# packaged separately
-%{__rm} -r $RPM_BUILD_ROOT%{ruby_libdir}/%{ruby_version}/{rubygems,rake,json,tasks}
-%{__rm} -r $RPM_BUILD_ROOT%{ruby_libarchdir}/json
-%{__rm} $RPM_BUILD_ROOT%{ruby_libdir}/%{ruby_version}/{rake,rubygems,json}.rb
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_libdir}/{rubygems,rake,json,tasks}
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_archdir}/json
+%{__rm} $RPM_BUILD_ROOT%{ruby_libdir}/{rake,rubygems,json}.rb
%{__rm} $RPM_BUILD_ROOT%{_bindir}/{gem,rake}
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/rake*
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/ri/%{ruby_ver}/system/JSON
-%endif
-
-# 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} $RPM_BUILD_ROOT%{_emacs_lispdir}/%{name}-mode/rubydb2x.el*
-install -p %{SOURCE6} $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} path.el*
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/ri/%{ruby_version}/system/JSON
%endif
+%if %{with doc}
# too much .ri
-rm -rf $RPM_BUILD_ROOT%{_datadir}/ri
-rm -rf $RPM_BUILD_ROOT%{_docdir}/ruby/html
-#rm -rf $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode
+%{__rm} $RPM_BUILD_ROOT%{ruby_ridir}/cache.ri
+%{__rm} $RPM_BUILD_ROOT%{ruby_ridir}/created.rid
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
%doc NEWS LEGAL README README.EXT ChangeLog ToDo
%attr(755,root,root) %{_bindir}/ruby
%if %{with batteries}
-%attr(755,root,root) %{_bindir}/gem
%attr(755,root,root) %{_bindir}/rake
%endif
%attr(755,root,root) %{_libdir}/libruby.so.*.*.*
%if %{with batteries}
%{_mandir}/man1/rake.1*
%endif
-#%dir %{_libdir}/%{name}
-#%dir %{_libdir}/%{name}/%{ruby_ver}
-#%dir %{ruby_libarchdir}
-#%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
+
+%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/%{vendordir}
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/%{vendordir}
+
+%dir %{ruby_libdir}
+%dir %{ruby_archdir}
+%dir %{ruby_vendorlibdir}
+%dir %{ruby_vendorarchdir}
+
+%dir %{_datadir}/ri
+%dir %{_datadir}/ri/%{ruby_version}
+%dir %{ruby_ridir}
+
%dir %{ruby_rdocdir}
+# legacy dirs. when everything rebuilt in Th not using these dirs. drop them
+%dir %{legacy_archdir}
+%dir %{legacy_sitedir}
+%dir %{legacy_sitelibdir}
+%dir %{legacy_sitearchdir}
+%dir %{legacy_vendorarchdir}
+
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libruby.so
-%{_includedir}/%{name}-%{ruby_ver}
-%{_pkgconfigdir}/ruby-%{ruby_ver}.pc
+%{_includedir}/%{name}-%{ruby_version}
+%{_pkgconfigdir}/ruby-%{ruby_version}.pc
%files static
%defattr(644,root,root,755)
%if %{with tk}
%files tk
%defattr(644,root,root,755)
-%{ruby_libdir}/%{ruby_version}/tcltk.rb
-%{ruby_libdir}/%{ruby_version}/tk*.rb
-%{ruby_libdir}/%{ruby_version}/tk
-%{ruby_libdir}/%{ruby_version}/tkextlib
-%attr(755,root,root) %{ruby_libarchdir}/t*.so
+%{ruby_libdir}/tcltk.rb
+%{ruby_libdir}/tk*.rb
+%{ruby_libdir}/tk
+%{ruby_libdir}/tkextlib
+%attr(755,root,root) %{ruby_archdir}/t*.so
%endif
-%files modules
+%files rdoc
%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
-%{ruby_libdir}/%{ruby_version}/bigdecimal
-%{ruby_libdir}/%{ruby_version}/cgi
-%{ruby_libdir}/%{ruby_version}/date
-%{ruby_libdir}/%{ruby_version}/digest
-%{ruby_libdir}/%{ruby_version}/dl
-%{ruby_libdir}/%{ruby_version}/drb
-%{ruby_libdir}/%{ruby_version}/fiddle
-%{ruby_libdir}/%{ruby_version}/io
-%{ruby_libdir}/%{ruby_version}/irb
-%{ruby_libdir}/%{ruby_version}/matrix
-%{ruby_libdir}/%{ruby_version}/minitest
-%{ruby_libdir}/%{ruby_version}/net
-%{ruby_libdir}/%{ruby_version}/openssl
-%{ruby_libdir}/%{ruby_version}/optparse
-%if %{with batteries}
-%{ruby_libdir}/%{ruby_version}/json
-%{ruby_libdir}/%{ruby_version}/rake
-%{ruby_libdir}/%{ruby_version}/rubygems
-%dir %{ruby_libdir}/%{ruby_version}/tasks
-%endif
-%{ruby_libdir}/%{ruby_version}/psych
-%{ruby_libdir}/%{ruby_version}/racc
-%{ruby_libdir}/%{ruby_version}/rbconfig
-%{ruby_libdir}/%{ruby_version}/rdoc
-%{ruby_libdir}/%{ruby_version}/rexml
-%{ruby_libdir}/%{ruby_version}/rinda
-%{ruby_libdir}/%{ruby_version}/ripper
-%{ruby_libdir}/%{ruby_version}/rss
-%{ruby_libdir}/%{ruby_version}/shell
-%{ruby_libdir}/%{ruby_version}/syck
-%{ruby_libdir}/%{ruby_version}/test
-%{ruby_libdir}/%{ruby_version}/uri
-%{ruby_libdir}/%{ruby_version}/webrick
-%{ruby_libdir}/%{ruby_version}/xmlrpc
-%{ruby_libdir}/%{ruby_version}/yaml
-%{ruby_libdir}/%{ruby_version}/[A-Za-s]*.rb
-%{ruby_libdir}/%{ruby_version}/tempfile.rb
-%{ruby_libdir}/%{ruby_version}/thread.rb
-%{ruby_libdir}/%{ruby_version}/thwait.rb
-%{ruby_libdir}/%{ruby_version}/time.rb
-%{ruby_libdir}/%{ruby_version}/timeout.rb
-%{ruby_libdir}/%{ruby_version}/tmpdir.rb
-%{ruby_libdir}/%{ruby_version}/tracer.rb
-%{ruby_libdir}/%{ruby_version}/tsort.rb
-%{ruby_libdir}/%{ruby_version}/[u-z]*.rb
-%attr(755,root,root) %{ruby_libarchdir}/[a-s]*.so
-%attr(755,root,root) %{ruby_libarchdir}/[u-z]*.so
-%dir %{ruby_libarchdir}/digest
-%attr(755,root,root) %{ruby_libarchdir}/digest/*.so
-%dir %{ruby_libarchdir}/dl
-%attr(755,root,root) %{ruby_libarchdir}/dl/callback.so
-%dir %{ruby_libarchdir}/enc
-%attr(755,root,root) %{ruby_libarchdir}/enc/*.so
-%dir %{ruby_libarchdir}/enc/trans
-%attr(755,root,root) %{ruby_libarchdir}/enc/trans/*.so
-%dir %{ruby_libarchdir}/io
-%attr(755,root,root) %{ruby_libarchdir}/io/*.so
+%{_mandir}/man1/rdoc.1*
+%{ruby_libdir}/rdoc
+%dir %{gem_dir}/gems/rdoc-%{rdoc_ver}
+%dir %{gem_dir}/gems/rdoc-%{rdoc_ver}/bin
+%attr(755,root,root) %{gem_dir}/gems/rdoc-%{rdoc_ver}/bin/rdoc
+%{gem_dir}/specifications/rdoc-%{rdoc_ver}.gemspec
+%attr(755,root,root) %{gem_dir}/gems/rdoc-%{rdoc_ver}/bin/ri
+
%if %{with batteries}
-%dir %{ruby_libarchdir}/json
-%dir %{ruby_libarchdir}/json/ext
-%attr(755,root,root) %{ruby_libarchdir}/json/ext/*.so
-%endif
-%dir %{ruby_libarchdir}/mathn
-%attr(755,root,root) %{ruby_libarchdir}/mathn/*.so
-%dir %{ruby_libarchdir}/racc
-%attr(755,root,root) %{ruby_libarchdir}/racc/*.so
-%{ruby_libarchdir}/rbconfig.rb
-#%dir %{ruby_libdir}/%{ruby_version}/gems
-%dir %{_datadir}/%{name}/gems
-%dir %{gem_dir}
-%dir %{gem_dir}/specifications
+%files rubygems
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/gem
+%{ruby_libdir}/rubygems
+%{ruby_libdir}/rubygems.rb
+%{ruby_libdir}/ubygems.rb
+
%{gem_dir}/specifications/io-console-*.gemspec
%{gem_dir}/specifications/bigdecimal-*.gemspec
%if %{with batteries}
%dir %{gem_dir}/gems/rake-%{rake_ver}
%dir %{gem_dir}/gems/rake-%{rake_ver}/bin
%attr(755,root,root) %{gem_dir}/gems/rake-%{rake_ver}/bin/rake
-%dir %{gem_dir}/gems/rdoc-%{rdoc_ver}
-%dir %{gem_dir}/gems/rdoc-%{rdoc_ver}/bin
-%attr(755,root,root) %{gem_dir}/gems/rdoc-%{rdoc_ver}/bin/rdoc
-%attr(755,root,root) %{gem_dir}/gems/rdoc-%{rdoc_ver}/bin/ri
%{gem_dir}/specifications/minitest-%{minitest_ver}.gemspec
%{gem_dir}/specifications/rake-%{rake_ver}.gemspec
-%{gem_dir}/specifications/rdoc-%{rdoc_ver}.gemspec
%{gem_dir}/specifications/json-%{json_ver}.gemspec
%endif
+%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}/testrb
+%{ruby_libdir}/bigdecimal
+%{ruby_libdir}/cgi
+%{ruby_libdir}/date
+%{ruby_libdir}/digest
+%{ruby_libdir}/dl
+%{ruby_libdir}/drb
+%{ruby_libdir}/fiddle
+%{ruby_libdir}/io
+%{ruby_libdir}/irb
+%{ruby_libdir}/matrix
+%{ruby_libdir}/minitest
+%{ruby_libdir}/net
+%{ruby_libdir}/openssl
+%{ruby_libdir}/optparse
+%if %{with batteries}
+%{ruby_libdir}/json
+%{ruby_libdir}/rake
+%dir %{ruby_libdir}/tasks
+%endif
+%{ruby_libdir}/psych
+%{ruby_libdir}/racc
+%{ruby_libdir}/rbconfig
+%{ruby_libdir}/rexml
+%{ruby_libdir}/rinda
+%{ruby_libdir}/ripper
+%{ruby_libdir}/rss
+%{ruby_libdir}/shell
+%{ruby_libdir}/syck
+%{ruby_libdir}/test
+%{ruby_libdir}/uri
+%{ruby_libdir}/webrick
+%{ruby_libdir}/xmlrpc
+%{ruby_libdir}/yaml
+%{ruby_libdir}/[A-Za-s]*.rb
+%{ruby_libdir}/tempfile.rb
+%{ruby_libdir}/thread.rb
+%{ruby_libdir}/thwait.rb
+%{ruby_libdir}/time.rb
+%{ruby_libdir}/timeout.rb
+%{ruby_libdir}/tmpdir.rb
+%{ruby_libdir}/tracer.rb
+%{ruby_libdir}/tsort.rb
+%{ruby_libdir}/[u-z]*.rb
+%exclude %{ruby_libdir}/rubygems.rb
+%exclude %{ruby_libdir}/ubygems.rb
+%attr(755,root,root) %{ruby_archdir}/[a-s]*.so
+%attr(755,root,root) %{ruby_archdir}/[u-z]*.so
+%dir %{ruby_archdir}/digest
+%attr(755,root,root) %{ruby_archdir}/digest/*.so
+%dir %{ruby_archdir}/dl
+%attr(755,root,root) %{ruby_archdir}/dl/callback.so
+%dir %{ruby_archdir}/enc
+%attr(755,root,root) %{ruby_archdir}/enc/*.so
+%dir %{ruby_archdir}/enc/trans
+%attr(755,root,root) %{ruby_archdir}/enc/trans/*.so
+%dir %{ruby_archdir}/io
+%attr(755,root,root) %{ruby_archdir}/io/*.so
+%if %{with batteries}
+%dir %{ruby_archdir}/json
+%dir %{ruby_archdir}/json/ext
+%attr(755,root,root) %{ruby_archdir}/json/ext/*.so
+%endif
+%dir %{ruby_archdir}/mathn
+%attr(755,root,root) %{ruby_archdir}/mathn/*.so
+%dir %{ruby_archdir}/racc
+%attr(755,root,root) %{ruby_archdir}/racc/*.so
+%{ruby_archdir}/rbconfig.rb
+
+# parents of gem_dir
+%dir %{_datadir}/%{name}/gems
+#%dir %{_datadir}/%{name}/gems/%{ruby_version}
+%dir %{_datadir}/%{name}/gems/%{ruby_version}/gems
+
+%dir %{gem_dir}
+%dir %{gem_dir}/specifications
%{_mandir}/man1/erb.1*
%{_mandir}/man1/irb.1*
-%{_mandir}/man1/rdoc.1*
%{_mandir}/man1/ri.1*
%{_mandir}/man1/testrb.1*
%if %{with doc}
%files doc-ri
%defattr(644,root,root,755)
-%{_datadir}/ri/%{ruby_ver}/system/*
+%{ruby_ridir}/*
%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