%define subver 1.9 %define rubyapi 1.9.1 %define rubyver 1.9.3 %define patchversion p194 %define rel 2 # This is the local lib/arch and should not be used for packaging. %define ruby_sitelibdir %{_datadir}/ruby/site_ruby/ %define ruby_sitearchdir %{_libdir}/ruby/site_ruby/%{rubyapi} # This is the general location for libs/archs compatible with all # or most of the Ruby versions available in the Fedora repositories. %define ruby_vendorlibdir %{_datadir}/ruby/vendor_ruby %define ruby_vendorarchdir %{_libdir}/ruby/vendor_ruby/%{rubyapi} # 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}/ruby/gems/%{rubyapi} Summary: Object Oriented Script Language Name: ruby Version: %{rubyver}.%{patchversion} Release: %mkrel %rel License: Ruby or GPLv2 Group: Development/Ruby BuildRequires: autoconf BuildRequires: byacc BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: tcl-devel tk-devel BuildRequires: db-devel BuildRequires: gdbm-devel >= 1.8.3 BuildRequires: openssl-devel BuildRequires: zlib-devel BuildRequires: libffi-devel BuildRequires: yaml-devel BuildRequires: rpm-mageia-setup >= 1.158 Obsoletes: ruby-rexml Provides: ruby-rexml # explicit file provides (since such requires are automatically added by find-requires) Provides: /usr/bin/ruby Provides: ruby(abi) = %subver Source0: http://ftp.ruby-lang.org/pub/ruby/%{subver}/ruby-%{rubyver}-%{patchversion}.tar.bz2 Source3: ruby.macros URL: http://www.ruby-lang.org/ # == FEDORA PATCHES BEGINS == # http://redmine.ruby-lang.org/issues/5231 Patch0: ruby-1.9.3-disable-versioned-paths.patch # TODO: Should be submitted upstream? Patch1: ruby-1.9.3-arch-specific-dir.patch # http://redmine.ruby-lang.org/issues/5281 Patch2: ruby-1.9.3-added-site-and-vendor-arch-flags.patch # http://redmine.ruby-lang.org/issues/5465 Patch4: ruby-1.9.3-fix-s390x-build.patch # Fix the uninstaller, so that it doesn't say that gem doesn't exist # when it exists outside of the GEM_HOME (already fixed in the upstream) Patch5: ruby-1.9.3-rubygems-1.8.11-uninstaller.patch # http://redmine.ruby-lang.org/issues/5135 - see comment 29 Patch6: ruby-1.9.3-webrick-test-fix.patch # Already fixed upstream: # https://github.com/ruby/ruby/commit/f212df564a4e1025f9fb019ce727022a97bfff53 Patch7: ruby-1.9.3-bignum-test-fix.patch # Allows to install RubyGems into custom directory, outside of Ruby's tree. # http://redmine.ruby-lang.org/issues/5617 Patch8: ruby-1.9.3-custom-rubygems-location.patch # Add support for installing binary extensions according to FHS. # https://github.com/rubygems/rubygems/issues/210 Patch9: rubygems-1.8.11-binary-extensions.patch # Make mkmf verbose by default Patch12: ruby-1.9.3-mkmf-verbose.patch # == FEDORA PATCHES ENDS == %package doc Summary: Documentation for the powerful language Ruby Group: Development/Ruby BuildArch: noarch %package devel Summary: Development file for the powerful language Ruby Group: Development/Ruby Requires: %{name} = %{version} %package tk Summary: Tk extension for the powerful language Ruby Group: Development/Ruby Requires: %{name} = %{version} %package RubyGems Summary: The Ruby standard for packaging ruby libraries Group: Development/Ruby Requires: ruby(abi) = %{subver} Provides: gem = %{version}-%{release} Provides: ruby(rubygems) = %{version}-%{release} %package rake Summary: Simple ruby build program with capabilities similar to make Group: Development/Ruby Requires: ruby(abi) = %{subver} %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, and extensible. %description doc 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, and extensible. This package contains the Ruby's documentation %description devel 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, and extensible. This package contains the Ruby's devel files. %description tk 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, and extensible. This package contains the Tk extension for Ruby. %description RubyGems RubyGems is the Ruby standard for publishing and managing third party libraries. %description rake Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax. %prep %setup -q -n ruby-%{rubyver}-%{patchversion} %apply_patches %build autoconf CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'` %configure2_5x --enable-shared --disable-rpath --enable-pthread \ --with-sitedir='%{ruby_sitelibdir}' \ --with-sitearchdir='%{ruby_sitearchdir}' \ --with-vendordir='%{ruby_vendorlibdir}' \ --with-vendorarchdir='%{ruby_vendorarchdir}' \ --with-rubygemsdir='%{rubygems_dir}' %make %install %makeinstall_std install-doc install -d %buildroot%{_datadir}/emacs/site-lisp cp -a misc/ruby-mode.el %buildroot%{_datadir}/emacs/site-lisp install -d %buildroot%{_sysconfdir}/emacs/site-start.d cat <%buildroot%{_sysconfdir}/emacs/site-start.d/%{name}.el (autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t) (add-to-list 'auto-mode-alist '("\\\\.rb$" . ruby-mode)) (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode)) EOF # Install the rpm macros mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d %check make test %files %{_bindir}/erb %{_bindir}/irb %{_bindir}/rake %{_bindir}/rdoc %{_bindir}/ri %{_bindir}/ruby %{_bindir}/testrb %{_libdir}/libruby.so.%{subver} %{_libdir}/libruby.so.%{rubyapi} %dir %{_libdir}/ruby %dir %{_libdir}/ruby/%{rubyapi} %{_libdir}/ruby/%{rubyapi}/English.rb %{_libdir}/ruby/%{rubyapi}/abbrev.rb %{_libdir}/ruby/%{rubyapi}/base64.rb %{_libdir}/ruby/%{rubyapi}/benchmark.rb %{_libdir}/ruby/%{rubyapi}/bigdecimal %{_libdir}/ruby/%{rubyapi}/cgi %{_libdir}/ruby/%{rubyapi}/cgi.rb %{_libdir}/ruby/%{rubyapi}/cmath.rb %{_libdir}/ruby/%{rubyapi}/complex.rb %{_libdir}/ruby/%{rubyapi}/csv.rb %{_libdir}/ruby/%{rubyapi}/date %{_libdir}/ruby/%{rubyapi}/date.rb %{_libdir}/ruby/%{rubyapi}/debug.rb %{_libdir}/ruby/%{rubyapi}/delegate.rb %{_libdir}/ruby/%{rubyapi}/digest %{_libdir}/ruby/%{rubyapi}/digest.rb %{_libdir}/ruby/%{rubyapi}/dl %{_libdir}/ruby/%{rubyapi}/dl.rb %{_libdir}/ruby/%{rubyapi}/drb %{_libdir}/ruby/%{rubyapi}/drb.rb %{_libdir}/ruby/%{rubyapi}/e2mmap.rb %{_libdir}/ruby/%{rubyapi}/erb.rb %{_libdir}/ruby/%{rubyapi}/expect.rb %{_libdir}/ruby/%{rubyapi}/fiddle %{_libdir}/ruby/%{rubyapi}/fiddle.rb %{_libdir}/ruby/%{rubyapi}/fileutils.rb %{_libdir}/ruby/%{rubyapi}/find.rb %{_libdir}/ruby/%{rubyapi}/forwardable.rb %{_libdir}/ruby/%{rubyapi}/getoptlong.rb %{_libdir}/ruby/%{rubyapi}/gserver.rb %{_libdir}/ruby/%{rubyapi}/io %{_libdir}/ruby/%{rubyapi}/ipaddr.rb %{_libdir}/ruby/%{rubyapi}/irb %{_libdir}/ruby/%{rubyapi}/irb.rb %{_libdir}/ruby/%{rubyapi}/json %{_libdir}/ruby/%{rubyapi}/json.rb %{_libdir}/ruby/%{rubyapi}/kconv.rb %{_libdir}/ruby/%{rubyapi}/logger.rb %{_libdir}/ruby/%{rubyapi}/mathn.rb %{_libdir}/ruby/%{rubyapi}/matrix %{_libdir}/ruby/%{rubyapi}/matrix.rb %{_libdir}/ruby/%{rubyapi}/minitest %{_libdir}/ruby/%{rubyapi}/mkmf.rb %{_libdir}/ruby/%{rubyapi}/mkmf.rb.0012 %{_libdir}/ruby/%{rubyapi}/monitor.rb %{_libdir}/ruby/%{rubyapi}/mutex_m.rb %{_libdir}/ruby/%{rubyapi}/net %{_libdir}/ruby/%{rubyapi}/observer.rb %{_libdir}/ruby/%{rubyapi}/open-uri.rb %{_libdir}/ruby/%{rubyapi}/open3.rb %{_libdir}/ruby/%{rubyapi}/openssl %{_libdir}/ruby/%{rubyapi}/openssl.rb %{_libdir}/ruby/%{rubyapi}/optparse %{_libdir}/ruby/%{rubyapi}/optparse.rb %{_libdir}/ruby/%{rubyapi}/ostruct.rb %{_libdir}/ruby/%{rubyapi}/pathname.rb %{_libdir}/ruby/%{rubyapi}/pp.rb %{_libdir}/ruby/%{rubyapi}/prettyprint.rb %{_libdir}/ruby/%{rubyapi}/prime.rb %{_libdir}/ruby/%{rubyapi}/profile.rb %{_libdir}/ruby/%{rubyapi}/profiler.rb %{_libdir}/ruby/%{rubyapi}/pstore.rb %{_libdir}/ruby/%{rubyapi}/psych %{_libdir}/ruby/%{rubyapi}/psych.rb %{_libdir}/ruby/%{rubyapi}/racc %{_libdir}/ruby/%{rubyapi}/racc/parser.rb %{_libdir}/ruby/%{rubyapi}/rational.rb %{_libdir}/ruby/%{rubyapi}/rbconfig %{_libdir}/ruby/%{rubyapi}/rdoc %{_libdir}/ruby/%{rubyapi}/rdoc.rb %{_libdir}/ruby/%{rubyapi}/resolv-replace.rb %{_libdir}/ruby/%{rubyapi}/resolv.rb %{_libdir}/ruby/%{rubyapi}/rexml %{_libdir}/ruby/%{rubyapi}/rinda %{_libdir}/ruby/%{rubyapi}/ripper %{_libdir}/ruby/%{rubyapi}/ripper.rb %{_libdir}/ruby/%{rubyapi}/rss %{_libdir}/ruby/%{rubyapi}/rss.rb %{_libdir}/ruby/%{rubyapi}/scanf.rb %{_libdir}/ruby/%{rubyapi}/securerandom.rb %{_libdir}/ruby/%{rubyapi}/set.rb %{_libdir}/ruby/%{rubyapi}/shell %{_libdir}/ruby/%{rubyapi}/shell.rb %{_libdir}/ruby/%{rubyapi}/shellwords.rb %{_libdir}/ruby/%{rubyapi}/singleton.rb %{_libdir}/ruby/%{rubyapi}/socket.rb %{_libdir}/ruby/%{rubyapi}/syck %{_libdir}/ruby/%{rubyapi}/syck.rb %{_libdir}/ruby/%{rubyapi}/sync.rb %{_libdir}/ruby/%{rubyapi}/tempfile.rb %{_libdir}/ruby/%{rubyapi}/test %{_libdir}/ruby/%{rubyapi}/thread.rb %{_libdir}/ruby/%{rubyapi}/thwait.rb %{_libdir}/ruby/%{rubyapi}/time.rb %{_libdir}/ruby/%{rubyapi}/timeout.rb %{_libdir}/ruby/%{rubyapi}/tmpdir.rb %{_libdir}/ruby/%{rubyapi}/tracer.rb %{_libdir}/ruby/%{rubyapi}/tsort.rb %{_libdir}/ruby/%{rubyapi}/un.rb %{_libdir}/ruby/%{rubyapi}/uri %{_libdir}/ruby/%{rubyapi}/uri.rb %{_libdir}/ruby/%{rubyapi}/weakref.rb %{_libdir}/ruby/%{rubyapi}/webrick %{_libdir}/ruby/%{rubyapi}/webrick.rb %{_libdir}/ruby/%{rubyapi}/xmlrpc %{_libdir}/ruby/%{rubyapi}/yaml %{_libdir}/ruby/%{rubyapi}/yaml.rb %dir %{_libdir}/ruby/%{_target} %{_libdir}/ruby/%{_target}/bigdecimal.so %{_libdir}/ruby/%{_target}/continuation.so %{_libdir}/ruby/%{_target}/coverage.so %{_libdir}/ruby/%{_target}/curses.so %{_libdir}/ruby/%{_target}/date_core.so %{_libdir}/ruby/%{_target}/dbm.so %{_libdir}/ruby/%{_target}/digest %{_libdir}/ruby/%{_target}/digest.so %{_libdir}/ruby/%{_target}/dl %{_libdir}/ruby/%{_target}/dl.so %{_libdir}/ruby/%{_target}/enc %{_libdir}/ruby/%{_target}/etc.so %{_libdir}/ruby/%{_target}/fcntl.so %{_libdir}/ruby/%{_target}/fiber.so %{_libdir}/ruby/%{_target}/fiddle.so %{_libdir}/ruby/%{_target}/gdbm.so %{_libdir}/ruby/%{_target}/iconv.so %{_libdir}/ruby/%{_target}/io %{_libdir}/ruby/%{_target}/json %{_libdir}/ruby/%{_target}/mathn %{_libdir}/ruby/%{_target}/nkf.so %{_libdir}/ruby/%{_target}/objspace.so %{_libdir}/ruby/%{_target}/openssl.so %{_libdir}/ruby/%{_target}/pathname.so %{_libdir}/ruby/%{_target}/psych.so %{_libdir}/ruby/%{_target}/pty.so %{_libdir}/ruby/%{_target}/racc %{_libdir}/ruby/%{_target}/rbconfig.rb %{_libdir}/ruby/%{_target}/readline.so %{_libdir}/ruby/%{_target}/ripper.so %{_libdir}/ruby/%{_target}/sdbm.so %{_libdir}/ruby/%{_target}/socket.so %{_libdir}/ruby/%{_target}/stringio.so %{_libdir}/ruby/%{_target}/strscan.so %{_libdir}/ruby/%{_target}/syck.so %{_libdir}/ruby/%{_target}/syslog.so %{_libdir}/ruby/%{_target}/zlib.so %dir %{_datadir}/ruby %{_mandir}/man1/erb.1.* %{_mandir}/man1/irb.1.* %{_mandir}/man1/ri.1.* %{_mandir}/man1/ruby.1.* %{_datadir}/emacs/site-lisp/* %config(noreplace) %{_sysconfdir}/emacs/site-start.d/* %{_sysconfdir}/rpm/macros.d/%{name}.macros %dir %{_libdir}/ruby/site_ruby %dir %{_libdir}/ruby/site_ruby/%{rubyapi} %dir %{_libdir}/ruby/vendor_ruby %dir %{_libdir}/ruby/vendor_ruby/%{rubyapi} %dir %{_datadir}/ruby/site_ruby %dir %{_datadir}/ruby/site_ruby/%{rubyapi} %dir %{_datadir}/ruby/vendor_ruby %dir %{_datadir}/ruby/vendor_ruby/%{rubyapi} %files doc %{_datadir}/ri %files devel %{_includedir}/* %{_libdir}/libruby-static.a %{_libdir}/libruby.so %{_libdir}/pkgconfig/*.pc %files tk %{_libdir}/ruby/%{_target}/tcltklib.so %{_libdir}/ruby/%{_target}/tkutil.so %{_libdir}/ruby/%{rubyapi}/multi-tk.rb %{_libdir}/ruby/%{rubyapi}/remote-tk.rb %{_libdir}/ruby/%{rubyapi}/tcltk.rb %{_libdir}/ruby/%{rubyapi}/tk.rb %{_libdir}/ruby/%{rubyapi}/tkafter.rb %{_libdir}/ruby/%{rubyapi}/tkbgerror.rb %{_libdir}/ruby/%{rubyapi}/tkcanvas.rb %{_libdir}/ruby/%{rubyapi}/tkclass.rb %{_libdir}/ruby/%{rubyapi}/tkconsole.rb %{_libdir}/ruby/%{rubyapi}/tkdialog.rb %{_libdir}/ruby/%{rubyapi}/tkentry.rb %{_libdir}/ruby/%{rubyapi}/tkfont.rb %{_libdir}/ruby/%{rubyapi}/tkmacpkg.rb %{_libdir}/ruby/%{rubyapi}/tkmenubar.rb %{_libdir}/ruby/%{rubyapi}/tkmngfocus.rb %{_libdir}/ruby/%{rubyapi}/tkpalette.rb %{_libdir}/ruby/%{rubyapi}/tkscrollbox.rb %{_libdir}/ruby/%{rubyapi}/tktext.rb %{_libdir}/ruby/%{rubyapi}/tkvirtevent.rb %{_libdir}/ruby/%{rubyapi}/tkwinpkg.rb %{_libdir}/ruby/%{rubyapi}/tk %{_libdir}/ruby/%{rubyapi}/tkextlib %files RubyGems %{_bindir}/gem %dir %{_libdir}/ruby/gems %dir %{_libdir}/ruby/gems/%{rubyapi} %{_libdir}/ruby/gems/%{rubyapi}/cache %{_libdir}/ruby/gems/%{rubyapi}/doc %dir %{_libdir}/ruby/gems/%{rubyapi}/gems %{_libdir}/ruby/gems/%{rubyapi}/gems/rdoc-* %dir %{_libdir}/ruby/gems/%{rubyapi}/specifications %{_libdir}/ruby/gems/%{rubyapi}/specifications/bigdecimal-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/io-console-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/json-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/minitest-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/rdoc-*.gemspec %dir %{rubygems_dir} %{rubygems_dir}/rbconfig %{rubygems_dir}/rubygems %{rubygems_dir}/rubygems.rb %{rubygems_dir}/ubygems.rb %files rake %{_bindir}/rake %{_mandir}/man1/rake.1.* %{_libdir}/ruby/gems/%{rubyapi}/specifications/rake-*.gemspec %{_libdir}/ruby/%{rubyapi}/rake %{_libdir}/ruby/%{rubyapi}/rake.rb