# - 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)
-# - fix requires/provides 'ruby(abi) = '
-# - nil this macro: %ruby_mod_ver_requires_eq "Requires: ruby-modules(ver) = "
-# - fix tk build
-# - %ruby_version is empty and rpm error then
-# - vendor packages get installed to /usr/share/ruby/vendor_ruby/PACKAGE, which
-# will be installed fine on ruby < 2.0, but not usable as path not in include
-# path, how to force vendor packages built with ruby 2.0 pull ruby 2.0?
+# - vendor *noarch* packages get installed to /usr/share/ruby/vendor_ruby/PACKAGE, which
+# will be installed fine on ruby < 2.0, but not usable as dir not in included
+# in load_path, how to force vendor packages built with ruby 2.0 pull ruby 2.0?
# for packages with gem deps it's simple: ruby-listen-2.7.1-0.2.noarch marks ruby-modules-2.0.0.451-0.17.x86_64 (cap /usr/share/gems/specifications)
+# add that dir to legacy loadpath?
#
# 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_with tk # build Tk bindings (tcl8.6 is not supported)
%bcond_without batteries # Don't include rubygems, json, rake, minitest
%bcond_without default_ruby # use this Ruby as default system Ruby
%bcond_with bootstrap # build bootstrap version
-%define rel 0.19
+%define rel 1
%define ruby_version 2.0
%define basever 2.0.0
-%define patchlevel 481
+%define patchlevel 643
%define ruby_suffix %{!?with_default_ruby:%{ruby_version}}
%define doc_version 2_0_0
# 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/2.0/%{oname}-%{basever}-p%{patchlevel}.tar.bz2
-# Source0-md5: ea406a8d415a1a5d8365596d4288f3da
+Source0: https://ftp.ruby-lang.org/pub/ruby/2.0/%{oname}-%{basever}-p%{patchlevel}.tar.bz2
+# Source0-md5: 1390888cac6cd175e6f164eff378cdde
Source1: http://www.ruby-doc.org/download/%{oname}-doc-bundle.tar.gz
# Source1-md5: ad1af0043be98ba1a4f6d0185df63876
Source2: http://www.ruby-doc.org/downloads/%{oname}_%{doc_version}_stdlib_rdocs.tgz
Patch0: %{oname}-lib64.patch
Patch1: %{oname}-ffs.patch
Patch2: fix-bison-invocation.patch
-# http://redmine.ruby-lang.org/issues/5231
-#Patch3: disable-versioned-paths.patch
-# TODO: Should be submitted upstream?
-#Patch4: arch-specific-dir.patch
-# http://redmine.ruby-lang.org/issues/5281
-#Patch5: site-and-vendor-arch-flags.patch
-# Make mkmf verbose by default
-Patch6: mkmf-verbose.patch
-Patch7: strip-ccache.patch
-Patch8: duplicated-paths.patch
-Patch9: DESTDIR.patch
-Patch10: empty-ruby-version.patch
-Patch11: rubygems-2.0.0-binary-extensions.patch
-Patch12: custom-rubygems-location.patch
+Patch3: mkmf-verbose.patch
+Patch4: strip-ccache.patch
+Patch5: duplicated-paths.patch
+Patch7: empty-ruby-version.patch
+Patch8: rubygems-2.0.0-binary-extensions.patch
+Patch9: custom-rubygems-location.patch
+Patch10: %{oname}-posixsh.patch
+Patch11: x32-asm.patch
URL: http://www.ruby-lang.org/
BuildRequires: autoconf >= 2.60
BuildRequires: automake
Obsoletes: ruby-REXML <= 2.4.0-2
Obsoletes: ruby-doc < 1.8.4
Obsoletes: ruby-fastthread <= 0.6.3
-Conflicts: rpm-build-macros < 1.692
+Conflicts: rpm-build-macros < 1.695
Conflicts: ruby-activesupport < 2.3.11-2
Conflicts: ruby-activesupport2 < 2.3.11-2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%endif
# FIXME later
Provides: ruby(abi) = %{ruby_version}
+%requires_ge_to openssl openssl-devel
%description modules
Ruby standard modules and utilities:
License: GPL v2 and Ruby and MIT
Group: Development/Libraries
Requires: %{name}-modules = 1:%{basever}.%{patchlevel}-%{rel}
+Requires: %{name}-irb >= %{irb_ver}
+Requires: %{name}-json >= %{json_ver}
Obsoletes: rdoc <= 0.9.0
%if "%{_rpmversion}" >= "5"
BuildArch: noarch
%patch0 -p1
%patch1 -p1
%patch2 -p1
-#%patch3 -p1
-#%patch4 -p1
-#%patch5 -p1
-%patch6 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
-%patch12 -p1
# must be regenerated with new bison
%{__rm} parse.{c,h}
-o -name 'ruby.1' -o -name '*.html' -o -name '*.tcl' ')' \
| xargs %{__sed} -i 's,/usr/local/bin/,%{_bindir}/,'
+# no configure option to disable, so just rm
+%{!?with_tk:rm -rf ext/tk}
+
%build
rubygems_ver=$(awk '/VERSION =/ && $1 == "VERSION" {print $3}' lib/rubygems.rb | xargs)
if [ $rubygems_ver != %{rubygems_ver} ]; then
%{__make} install %{?with_doc:install-doc -j1} \
DESTDIR=$RPM_BUILD_ROOT
+# Version is empty if --with-ruby-version is specified.
+# http://bugs.ruby-lang.org/issues/7807
+sed -i -e 's/Version: \${ruby_version}/Version: %{ruby_version}/' $RPM_BUILD_ROOT%{_pkgconfigdir}/%{oname}-%{ruby_version}.pc
+
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{basever}.%{patchlevel}
cp -Rf sample/* $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{basever}.%{patchlevel}
cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/rdoc%{ruby_suffix}.1
# NOTE: when making symlinks, do not symlink paths that could be directories,
# as there may came files from other packages as well. actually, unlikely as
# the links to got system dir and only ruby may package there (other distro
-# packages should go to vendo dirs)
+# packages should go to vendor dirs)
install -d $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/lib
mv $RPM_BUILD_ROOT%{ruby_libdir}/rake* $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/lib
ln -s %{gem_dir}/gems/rake-%{rake_ver}/lib/rake $RPM_BUILD_ROOT%{ruby_libdir}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libruby.so
%{_includedir}/%{oname}-%{ruby_version}
-%{_pkgconfigdir}/ruby-%{ruby_version}.pc
+%{_pkgconfigdir}/%{oname}-%{ruby_version}.pc
%{ruby_libdir}/mkmf.rb
%files static
%files rubygems
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/gem%{ruby_suffix}
-%dir %{rubygems_dir}
%{rubygems_dir}/rubygems
%{rubygems_dir}/rubygems.rb
%{rubygems_dir}/ubygems.rb
%attr(755,root,root) %{_bindir}/rake%{ruby_suffix}
%{_mandir}/man1/rake%{ruby_suffix}.1*
%{ruby_libdir}/rake
+%{ruby_libdir}/rake.rb
%dir %{gem_dir}/gems/rake-%{rake_ver}
%{gem_dir}/gems/rake-%{rake_ver}/lib
%dir %{gem_dir}/gems/rake-%{rake_ver}/bin
%{ruby_libdir}/webrick
%{ruby_libdir}/xmlrpc
%{ruby_libdir}/yaml
-%{ruby_libdir}/[A-Za-s]*.rb
+
+%{ruby_libdir}/English.rb
+%{ruby_libdir}/abbrev.rb
+%{ruby_libdir}/base64.rb
+%{ruby_libdir}/benchmark.rb
+%{ruby_libdir}/cgi.rb
+%{ruby_libdir}/cmath.rb
+%{ruby_libdir}/complex.rb
+%{ruby_libdir}/csv.rb
+%{ruby_libdir}/date.rb
+%{ruby_libdir}/debug.rb
+%{ruby_libdir}/delegate.rb
+%{ruby_libdir}/digest.rb
+%{ruby_libdir}/dl.rb
+%{ruby_libdir}/drb.rb
+%{ruby_libdir}/e2mmap.rb
+%{ruby_libdir}/erb.rb
+%{ruby_libdir}/expect.rb
+%{ruby_libdir}/fiddle.rb
+%{ruby_libdir}/fileutils.rb
+%{ruby_libdir}/find.rb
+%{ruby_libdir}/forwardable.rb
+%{ruby_libdir}/getoptlong.rb
+%{ruby_libdir}/gserver.rb
+%{ruby_libdir}/ipaddr.rb
+%{ruby_libdir}/json.rb
+%{ruby_libdir}/kconv.rb
+%{ruby_libdir}/logger.rb
+%{ruby_libdir}/mathn.rb
+%{ruby_libdir}/matrix.rb
+%{ruby_libdir}/monitor.rb
+%{ruby_libdir}/mutex_m.rb
+%{ruby_libdir}/observer.rb
+%{ruby_libdir}/open-uri.rb
+%{ruby_libdir}/open3.rb
+%{ruby_libdir}/openssl.rb
+%{ruby_libdir}/optparse.rb
+%{ruby_libdir}/ostruct.rb
+%{ruby_libdir}/pathname.rb
+%{ruby_libdir}/pp.rb
+%{ruby_libdir}/prettyprint.rb
+%{ruby_libdir}/prime.rb
+%{ruby_libdir}/profile.rb
+%{ruby_libdir}/profiler.rb
+%{ruby_libdir}/pstore.rb
+%{ruby_libdir}/psych.rb
+%{ruby_libdir}/rational.rb
+%{ruby_libdir}/rdoc.rb
+%{ruby_libdir}/resolv-replace.rb
+%{ruby_libdir}/resolv.rb
+%{ruby_libdir}/ripper.rb
+%{ruby_libdir}/rss.rb
+%{ruby_libdir}/scanf.rb
+%{ruby_libdir}/securerandom.rb
+%{ruby_libdir}/set.rb
+%{ruby_libdir}/shell.rb
+%{ruby_libdir}/shellwords.rb
+%{ruby_libdir}/singleton.rb
+%{ruby_libdir}/socket.rb
+%{ruby_libdir}/sync.rb
%{ruby_libdir}/tempfile.rb
%{ruby_libdir}/thread.rb
%{ruby_libdir}/thwait.rb
%{ruby_libdir}/tmpdir.rb
%{ruby_libdir}/tracer.rb
%{ruby_libdir}/tsort.rb
-%{ruby_libdir}/[u-z]*.rb
+%{ruby_libdir}/un.rb
+%{ruby_libdir}/uri.rb
+%{ruby_libdir}/weakref.rb
+%{ruby_libdir}/webrick.rb
+%{ruby_libdir}/xmlrpc.rb
+%{ruby_libdir}/yaml.rb
+
%if %{with batteries}
%exclude %{ruby_libdir}/rubygems.rb
%exclude %{ruby_libdir}/ubygems.rb
%endif
%exclude %{ruby_libdir}/irb.rb
%exclude %{ruby_libdir}/mkmf.rb
-%attr(755,root,root) %{ruby_archdir}/[a-s]*.so
-%attr(755,root,root) %{ruby_archdir}/[u-z]*.so
+%exclude %{ruby_libdir}/rake.rb
+
+%{ruby_archdir}/rbconfig.rb
+%attr(755,root,root) %{ruby_archdir}/bigdecimal.so
+%attr(755,root,root) %{ruby_archdir}/continuation.so
+%attr(755,root,root) %{ruby_archdir}/coverage.so
+%attr(755,root,root) %{ruby_archdir}/curses.so
+%attr(755,root,root) %{ruby_archdir}/date_core.so
+%attr(755,root,root) %{ruby_archdir}/dbm.so
+%attr(755,root,root) %{ruby_archdir}/digest.so
+%attr(755,root,root) %{ruby_archdir}/dl.so
+%attr(755,root,root) %{ruby_archdir}/etc.so
+%attr(755,root,root) %{ruby_archdir}/fcntl.so
+%attr(755,root,root) %{ruby_archdir}/fiber.so
+%attr(755,root,root) %{ruby_archdir}/fiddle.so
+%attr(755,root,root) %{ruby_archdir}/gdbm.so
+%attr(755,root,root) %{ruby_archdir}/nkf.so
+%attr(755,root,root) %{ruby_archdir}/objspace.so
+%attr(755,root,root) %{ruby_archdir}/openssl.so
+%attr(755,root,root) %{ruby_archdir}/pathname.so
+%attr(755,root,root) %{ruby_archdir}/psych.so
+%attr(755,root,root) %{ruby_archdir}/pty.so
+%attr(755,root,root) %{ruby_archdir}/readline.so
+%attr(755,root,root) %{ruby_archdir}/ripper.so
+%attr(755,root,root) %{ruby_archdir}/sdbm.so
+%attr(755,root,root) %{ruby_archdir}/socket.so
+%attr(755,root,root) %{ruby_archdir}/stringio.so
+%attr(755,root,root) %{ruby_archdir}/strscan.so
+%attr(755,root,root) %{ruby_archdir}/syslog.so
+%attr(755,root,root) %{ruby_archdir}/zlib.so
+
%dir %{ruby_archdir}/digest
%attr(755,root,root) %{ruby_archdir}/digest/*.so
%dir %{ruby_archdir}/dl
%attr(755,root,root) %{ruby_archdir}/mathn/*.so
%dir %{ruby_archdir}/racc
%attr(755,root,root) %{ruby_archdir}/racc/*.so
-%{ruby_archdir}/rbconfig.rb
# bigdecimal
%{gem_dir}/specifications/bigdecimal-%{bigdecimal_ver}.gemspec