%define subver 1.9 %define rubyapi 1.9.1 %define rubyver 1.9.3 %define patchversion p194 %define rel 3 %define ruby_libdir %{_datadir}/%{name} %define ruby_libarchdir %{_libdir}/%{name} # 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 # 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 # 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 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 --disable-versioned-paths \ --with-rubylibprefix='%{ruby_libdir}' \ --with-archdir='%{ruby_libarchdir}' \ --with-sitedir='%{ruby_sitelibdir}' \ --with-sitearchdir='%{ruby_sitearchdir}' \ --with-vendordir='%{ruby_vendorlibdir}' \ --with-vendorarchdir='%{ruby_vendorarchdir}' \ --with-rubyhdrdir='%{_includedir}' \ --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 %{ruby_libdir} %{ruby_libdir}/*.rb %exclude %{ruby_libdir}/multi-tk.rb %exclude %{ruby_libdir}/remote-tk.rb %exclude %{ruby_libdir}/tcltk.rb %exclude %{ruby_libdir}/tk.rb %exclude %{ruby_libdir}/tkafter.rb %exclude %{ruby_libdir}/tkbgerror.rb %exclude %{ruby_libdir}/tkcanvas.rb %exclude %{ruby_libdir}/tkclass.rb %exclude %{ruby_libdir}/tkconsole.rb %exclude %{ruby_libdir}/tkdialog.rb %exclude %{ruby_libdir}/tkentry.rb %exclude %{ruby_libdir}/tkfont.rb %exclude %{ruby_libdir}/tkmacpkg.rb %exclude %{ruby_libdir}/tkmenubar.rb %exclude %{ruby_libdir}/tkmngfocus.rb %exclude %{ruby_libdir}/tkpalette.rb %exclude %{ruby_libdir}/tkscrollbox.rb %exclude %{ruby_libdir}/tktext.rb %exclude %{ruby_libdir}/tkvirtevent.rb %exclude %{ruby_libdir}/tkwinpkg.rb %{ruby_libdir}/cgi %{ruby_libdir}/date %{ruby_libdir}/digest %{ruby_libdir}/dl %{ruby_libdir}/drb %{ruby_libdir}/fiddle %{ruby_libdir}/matrix %{ruby_libdir}/net %{ruby_libdir}/openssl %{ruby_libdir}/optparse %{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 %dir %{ruby_libarchdir} %{ruby_libarchdir}/continuation.so %{ruby_libarchdir}/coverage.so %{ruby_libarchdir}/curses.so %{ruby_libarchdir}/date_core.so %{ruby_libarchdir}/dbm.so %dir %{ruby_libarchdir}/digest %{ruby_libarchdir}/digest.so %{ruby_libarchdir}/digest/*.so %dir %{ruby_libarchdir}/dl %{ruby_libarchdir}/dl.so %{ruby_libarchdir}/dl/*.so %dir %{ruby_libarchdir}/enc %{ruby_libarchdir}/enc/*.so %{ruby_libarchdir}/etc.so %{ruby_libarchdir}/fcntl.so %{ruby_libarchdir}/fiber.so %{ruby_libarchdir}/fiddle.so %{ruby_libarchdir}/gdbm.so %{ruby_libarchdir}/iconv.so %dir %{ruby_libarchdir}/io %{ruby_libarchdir}/io/nonblock.so %{ruby_libarchdir}/io/wait.so %dir %{ruby_libarchdir}/mathn %{ruby_libarchdir}/mathn/complex.so %{ruby_libarchdir}/mathn/rational.so %{ruby_libarchdir}/nkf.so %{ruby_libarchdir}/objspace.so %{ruby_libarchdir}/openssl.so %{ruby_libarchdir}/pathname.so %{ruby_libarchdir}/psych.so %{ruby_libarchdir}/pty.so %dir %{ruby_libarchdir}/racc %{ruby_libarchdir}/racc/*.so %{ruby_libarchdir}/rbconfig.rb %{ruby_libarchdir}/readline.so %{ruby_libarchdir}/ripper.so %{ruby_libarchdir}/sdbm.so %{ruby_libarchdir}/socket.so %{ruby_libarchdir}/stringio.so %{ruby_libarchdir}/strscan.so %{ruby_libarchdir}/syck.so %{ruby_libarchdir}/syslog.so %{ruby_libarchdir}/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 %{_datadir}/ruby/site_ruby %{_libdir}/ruby/site_ruby %{_datadir}/ruby/vendor_ruby %{_libdir}/ruby/vendor_ruby %files doc %{_datadir}/ri %files devel %{_includedir}/* %{_libdir}/libruby-static.a %{_libdir}/libruby.so %{_libdir}/pkgconfig/*.pc %files tk %{ruby_libarchdir}/tcltklib.so %{ruby_libarchdir}/tkutil.so %{ruby_libdir}/multi-tk.rb %{ruby_libdir}/remote-tk.rb %{ruby_libdir}/tcltk.rb %{ruby_libdir}/tk.rb %{ruby_libdir}/tkafter.rb %{ruby_libdir}/tkbgerror.rb %{ruby_libdir}/tkcanvas.rb %{ruby_libdir}/tkclass.rb %{ruby_libdir}/tkconsole.rb %{ruby_libdir}/tkdialog.rb %{ruby_libdir}/tkentry.rb %{ruby_libdir}/tkfont.rb %{ruby_libdir}/tkmacpkg.rb %{ruby_libdir}/tkmenubar.rb %{ruby_libdir}/tkmngfocus.rb %{ruby_libdir}/tkpalette.rb %{ruby_libdir}/tkscrollbox.rb %{ruby_libdir}/tktext.rb %{ruby_libdir}/tkvirtevent.rb %{ruby_libdir}/tkwinpkg.rb %{ruby_libdir}/tk %{ruby_libdir}/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}/gems/rake-* %{_libdir}/ruby/gems/%{rubyapi}/specifications/rake-*.gemspec %{_libdir}/ruby/rake %{_libdir}/ruby/rake.rb