# - replace ri with fastri
# - 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 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_version 1.9
Summary(zh_CN.UTF-8): ruby - 一种快速高效的面向对象脚本编程语言
Name: ruby
Version: %{basever}.%{patchlevel}
-Release: 0.13
+# 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_version}/%{name}-%{basever}-p%{patchlevel}.tar.bz2
# Source0-md5: a810d64e2255179d2f334eb61fb8519c
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
# This is the local lib/arch and should not be used for packaging.
%define sitedir site_ruby
%define ruby_sitedir %{_prefix}/local/share/%{name}/%{sitedir}
-%define ruby_sitearchdir %{_prefix}/local/%{_lib}/%{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 vendordir vendor_ruby
%define ruby_vendordir %{_datadir}/%{name}/%{vendordir}
-%define ruby_vendorarchdir %{_libdir}/%{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_vendorarchdir%{_libdir}/%{name}/%{vendordir}/%{ruby_version}/%{_arch}-linux
%define legacy_siteloadpath %{legacy_sitelibdir}\\0%{legacy_sitearchdir}\\0%{legacy_sitedir}
-%define legacy_vendorloadpath %{legacy_vendorlibdir}\\0%{legacy_vendorarchdir}
+%define legacy_vendorloadpath %{legacy_vendorarchdir}
%define legacy_loadpath %{legacy_archdir}
%define legacy_loadpaths %{legacy_siteloadpath}\\0%{legacy_vendorloadpath}\\0%{legacy_loadpath}
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
+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.
+# 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 rubygems
+RubyGems is the Ruby standard for publishing and managing third party
+libraries.
+
%prep
%if %{with bootstrap}
%setup -q -n %{name}-%{basever}-p%{patchlevel} -a1 -a2 -a3 -a100
--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}/tasks \
- $RPM_BUILD_ROOT%{ruby_vendorarchdir}/%{ruby_version} \
+ $RPM_BUILD_ROOT{%{ruby_vendorarchdir},%{ruby_ridir}} \
$RPM_BUILD_ROOT{%{legacy_archdir},%{legacy_sitelibdir},%{legacy_sitearchdir},%{legacy_vendorarchdir}} \
%{__make} install %{?with_doc:install-doc} \
%{__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} $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.*.*.*
%endif
%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/%{vendordir}
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/%{vendordir}
%dir %{ruby_archdir}
%dir %{ruby_vendorlibdir}
%dir %{ruby_vendorarchdir}
-%dir %{ruby_vendorarchdir}/%{ruby_version}
-#%dir %{_datadir}/ri
-#%dir %{_datadir}/ri/%{ruby_version}
-#%dir %{_datadir}/ri/%{ruby_version}/system
+%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
%attr(755,root,root) %{ruby_archdir}/t*.so
%endif
+%files rdoc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rdoc
+%attr(755,root,root) %{_bindir}/ri
+%{_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}
+%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
+%{gem_dir}/specifications/minitest-%{minitest_ver}.gemspec
+%{gem_dir}/specifications/rake-%{rake_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}/rdoc
-%attr(755,root,root) %{_bindir}/ri
%attr(755,root,root) %{_bindir}/testrb
%{ruby_libdir}/bigdecimal
%{ruby_libdir}/cgi
%if %{with batteries}
%{ruby_libdir}/json
%{ruby_libdir}/rake
-%{ruby_libdir}/rubygems
%dir %{ruby_libdir}/tasks
%endif
%{ruby_libdir}/psych
%{ruby_libdir}/racc
%{ruby_libdir}/rbconfig
-%{ruby_libdir}/rdoc
%{ruby_libdir}/rexml
%{ruby_libdir}/rinda
%{ruby_libdir}/ripper
%{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
%dir %{gem_dir}
%dir %{gem_dir}/specifications
-%{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
%{_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_version}/system/*
+%{ruby_ridir}/*
%endif
%files examples